Creation Sharing Diary Of Creating A Route - Toronto Subway Opening Day

Discussion in 'PC Editor Discussion' started by pwilson79, Nov 5, 2023.

  1. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    237
    Likes Received:
    557
    Sorry you didn't have any luck.
    I don't understand why it is looking for a VHID in the "driveable RVM". My RVM doesn't have any VHID's as they are all in the RVV
    and the only things that are close (in the RVM) are the three Interaction Environments (Driver, Fireman (Conductor) and Engine).

    You say you've put a throttle in but is that in the RVM or RVV ?
    Perhaps it will help if I include photos of the RVM and RVV setups with emphasis on the Regulator which is the steam equivalent of throttle.

    First the RVM where the regulator is an Irregular Lever Component (which allows you to set up detents etc). You will also see the interaction Environments but all the controls are simply levers or push buttons.
    The output from these levers is passed to the Simugraph in the Event Graph of the RVM.

    RVM_Components.jpg


    Secondly the RVV . This where the Regulator VHID is and it is linked to the bone in the Cab Skelton on the right hand side (Details panel)
    It is also linked to the Irregular Lever in the RVM (lower down in the Details panel and not in photo).

    The Event graph of the RVV passes the output of the VHID's to the Cab Animation Blueprint so the relevant bones move when you operate the controls. As far as I know the Simulation is not interested in the visible loco (RVV) and is driving the "invisible" RVM during the game .


    RVVComponents.jpg

    I think you have to work on each control in your RVM and RVV side by side before you can get anything working in the Editor . It looks like your simulation is looking for something from the RVM to tell it what to do (perhaps the RVM races off at full throttle to the end of the track and derails !!? ). The scenario manager says the train has derailed but is not being driven !!

    If you think I can help (now or in the future) with the set up of the RVM / RVV / Simugraph "trinity" let me know as I'm happy to do that.
    I said to someone on another thread that I was considering a tutorial but, as you know, all these things take time.

    Sorry if this has turned into a bit of a "lecture" (not my intention) and hope you manage to get to the bottom of what's going on.
    Good luck!
     
  2. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Don't worry about the "lecture," your advice is quite helpful and I really appreciate the help! I think you may be right about double-checking the VHIDs are set up and where they should be. We'll my break's over, back to work for me!
     
  3. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Terrific news!

    My G-1 Gloucester AB set can now successfully be towed by an M3 set!

    This is perhaps not as impressive as it would be if they were already drive-able, but this is the first time I have been able to see them moving on the line! Keen observers will spot this is a slightly less detailed exterior than I've shown previously, but that was before I unified the object as a skeletal mesh, for which I used an earlier version of the file. Also, yes, the couplers are nowhere near each other and the wheels are a bit wonky when the train is turning. Those, too, are a Work In Progress.

    Now I feel like I should get back to modelling the details, particularly the undercarriage and bogies. Once I get buffers figured out, I should be able to rig and animate the pantograph security gates between the cars so that they compress and expand! Onward to bigger and brighter things, eh?

    Have a look!:

     
    Last edited: Jan 31, 2026
    • Like Like x 1
  4. olaf99NL

    olaf99NL Active Member

    Joined:
    Jul 13, 2025
    Messages:
    45
    Likes Received:
    112
    Hello

    In your blueprint you will need to have something, as a child of the platform component, that has directionality so the AI knows where to face in the waiting area; I used a simple arrow component.)

    I have the same problem. I have tryed adding a arrow but nothing happend. Dit you add some code to it?
    Schermafbeelding 2026-01-31 110602.png
    I use a NavMeshBoundsVolume.

    I hope you can help me.
     
  5. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Sorry for not getting back to you sooner, just needed to get some sleep. There shouldn't be any code required for it to work. I'm still waking up, but give me a couple hours and I'll see if I can spot what I did differently.
     
  6. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Okay, I think I've spotted the issue. Looking at my setup, the arrow component needs to be added to the waiting area specifically:

    ScreenHunter_301 Jan. 31 10.28.jpg

    The easiest way to do this of course would be to just drag and drop the Arrow component on your PlatformWaitArea. This is what got it working for me; I forget if you need to rotate the PlatformWaitArea or Arrow to adjust the direction the passengers face, but one of those two should work.

    That should do it!
     
  7. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    That's better! Now the wheels and bogies are properly animated. Also, the gap between cars is fixed.

    There's still something not quite right about the couplers I think, because when I try to add another G1 pair to the back of the consist, it reverts to going into convulsions when I try to drive it. Still, getting the wheel and bogie animation working was a job and a half, in-and-of itself, so I might leave it at that for the weekend.

     
    • Like Like x 1
  8. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    IDK, LOL

    ScreenHunter_302 Feb. 01 18.06.jpg
     
  9. olaf99NL

    olaf99NL Active Member

    Joined:
    Jul 13, 2025
    Messages:
    45
    Likes Received:
    112
    Sorry but for some reason I dit not get a email notification of your reply. In my forum settings everything is turned on.

    I have now moved the arrow as you show but it still does not work. I have tryed multiple rotations but it still does not work.
    I have seen that DTG don't use a arrow and the wait area x points to the track.

    I dit also a rebuild from the NavMeshBoundsVolume.

    Maybe you can have a look at your rotations?
     
  10. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Well that's definitely what got it working for me, and it's how mine is currently set up. To tell the truth, I'm a bit reluctant to poke around inside of the setup now, for fear of breaking it, but I'll have a look this weekend and try to see if there's anything else to suggest.
     
  11. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Well I've been experimenting with an AI driven 4-car train of just Gloucesters, since I've barely begun the Simugraph, and while taking an external view while in the passenger seat, I may have spotted a clue as to what has been launching me into the sky when I stand up.

    ScreenHunter_303 Feb. 04 19.08.jpg

    In fact, it was kind of hard to miss!
     
    • Like Like x 3
  12. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Yup! It was a scale problem.

    Root bone of the LIRR M3-A Skeleton:

    ScreenHunter_304 Feb. 05 19.16.jpg

    Root bone of my TTC G1-A Skeleton:

    ScreenHunter_305 Feb. 05 19.16.jpg
    notice anything different? :)

    P.S.: This seems to be yet another issue relating to exporting from Blender to UE4. There seems to be a work-around.

    P.P.S.: In Blender, you set your project's Scene Unit Scale to 0.01, and then scale everything in your scene by 100. Your skeleton will now be scaled to "1" when you export your skeletal mesh, instead of "100." Time to use this meme again:
    brain hurts.jpg
     
    Last edited: Feb 6, 2026
    • Like Like x 3
  13. olaf99NL

    olaf99NL Active Member

    Joined:
    Jul 13, 2025
    Messages:
    45
    Likes Received:
    112
    Hello

    Funny error almost look like a modelrailway. :) Is the scaling problem also for meshes? At the moment I have no problem with blender import.

    I have also tryed putting the arrow on de the track but it still does not work.
    Schermafbeelding 2026-02-06 181443.png
     
  14. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    That scaling error is a bit funny, isn't it? It shouldn't be a problem for static meshes, but once you try to import a skeletal mesh, you will probably have to change the scene unit scale to 0.01, unless you want giant passengers. (It's because of the seat node being part of the skeleton, from what I can tell.) Probably better to have a normal-sized skeleton, in any case.
     
    • Like Like x 1
  15. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    I hope everyone had a good weekend!

    Just wanted to show off the lighting, which I'm pretty happy with. One of the more iconic features of the Gloucester were the 44 (!) incandescent dome lights in the interior. The material for the light fixtures required subsurface translucency for the frosted areas, but I kept the material as simple as I could otherwise.

    I've noticed a wee bit of frame lag, even with the lights set to static, but I think that's because there are 44 per car! I don't think I could get satisfactory results with an emissive material either, since I want to use them for the direct lighting as well, given how nice the result is. I'll probably have to rig up the RVV to turn them off based on camera distance, and use something drastically simpler; sort of a programmatic LOD for lights.

    Started putting in more of the seats, too.

    ScreenHunter_311 Feb. 16 17.27.jpg ScreenHunter_313 Feb. 16 17.28.jpg

    *EDIT: Well, 44 give-or-take a few.
     

    Attached Files:

    Last edited: Feb 17, 2026
    • Like Like x 4
  16. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Hello, I am door :)


    ScreenHunter_314 Feb. 21 13.12.jpg
     
    • Like Like x 2
  17. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    I thought I was doing so well to set up the door VHID, then I tried hooking up the animation. At first I added my animation sequence to a montage, and played it back with a bit of blueprint in the RVV that detects changes in the VHID output. This worked fairly well, and in fact I may have to go back to doing that, since even though I later noticed my Animation BluePrint (Parent class is RailVehicleAnimInstance) has detail settings for Virtual HIDSequence Entries, they aren't working in my setup.

    Here is the animation sequence in question, which appears 100% correct on the face of it:

    ScreenHunter_315 Feb. 22 14.09.jpg

    And here is the Animation BluePrint when I try to assign it to a Virtual HIDSequence Entry. This is how it ends up in-game, too:

    ScreenHunter_314 Feb. 22 14.09.jpg
    What the heck is even going on here?

    So, two steps forwards, one step back. What else is new?

    P.S. I get the same result with or without the default slot set up in the animgraph
     
    Last edited: Feb 22, 2026
  18. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Fixed!! The animation just had to be set to additive. This is why I wish they could provide us all with one or two fleshed-out, uncooked examples to work from.

    Oh well, onwards and upwards!
     
    • Like Like x 1
  19. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    I spent the weekend adding some more details to my version of the British Thomson-Houston pillar-type combined throttle handle and deadman-plunger used on the G1 cars. Anyone who's tried the excellent 38-Stock DLC for the Bakerloo line will be familiar with the controls found in the Gloucester's cab. Also thought I'd provide you with the first screenshot taken from a "Driving" position, though none of the controls are hooked up yet.

    ScreenHunter_318 Mar. 01 20.34.jpg ScreenHunter_320 Mar. 01 20.40.jpg

    At first I thought the knob was a tad big, then I remembered that the cab is the size of a broom closet. The throttle should be done by the end of the week or so, then it's on to the reverser and brake, which are simpler shapes. It seems the PC Editor and Blender are competing to see which can eat up more of my free time. The things we do for love and/or money, eh?
     
  20. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    I want to thank Daunfr59 for sharing his method of animating bones directly from the RVV. Here's my implementation, lowering the arm of the master controller by 10 degrees over the course of half a second: ScreenHunter_321 Mar. 07 21.23.jpg ScreenHunter_322 Mar. 07 21.33.jpg ScreenHunter_323 Mar. 07 21.34.jpg

    I found it a bit tricky to get a reference to my animation instance, to cast to; but I got there in the end :) I hope everyone else is making good progress as well!

    P.S.: Almost forgot, the blueprint above goes in the RVV, but you will also need something in your Animation Blueprint to actually move the bone, such as this:
    ScreenHunter_326 Mar. 07 23.37.jpg
     
    Last edited: Mar 8, 2026
    • Like Like x 3
  21. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    237
    Likes Received:
    557
    Glad I was able to help.

    I used an event Begin Play in the RVV event Graph with the same nodes as you and promote the Anim Instance Return Value to a Variable.

    You only need to do this once and then the ABP Variable can be dragged whenever needed for whatever control you're setting up.
    As a steam loco. my Cab has lots of levers to animate.

    RVV_EventGraph_GetABP.png

    Are you using a similar "On Output Changed" event in the RVM to pass the change in the control setting into the Simugraph (that's the way I did it.)

    Congratulations and good luck !
     
  22. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Well, to answer truthfully, I haven't touched the Simugraph since a couple weeks ago, when I removed the extra two axles that were causing the derailing. I need to set up the 3rd rail contact shoes, make sure I'm using the right kind of motors, and work out the power bus and get the master controller hooked up as well, so I'm leaving the bulk of that for this weekend.

    In other news, I worked out that the way to "disable" a VHID so it doesn't show up for the player to be interacted with (such as the power lever, if the deadman knob is up,) is to set the VHID component's collision to "No Collision." Turning off tick or even "deactivating" the component didn't seem to do anything at all. This is good to know, since I'll want to be doing this with the driver's tip-up seat as well, when it is in the up position. It's easy enough to set collision back to "Query Only" afterwards.
     
    Last edited: Mar 11, 2026
  23. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    237
    Likes Received:
    557
    Thanks - that could well be useful
     
  24. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Small update, I've got control of the motors, with my RMV switching loads in and out in the Simulation Asset, using an array of Simulation Node Reference Structures. I'm using this method because if I manage to somehow learn the values of the loads in this diagram, I can accurately model each power setting: 1000001155.jpg Or at least I can if I can work out why it appears progressively heavier load are getting switched in, in the parallel operation range.

    A "powerful" image:

    ScreenHunter_327 Mar. 15 13.48.jpg

    Also, I've got a Train HUD Widget in as you can see, but right now it's just an unmodified generic one.

    P.S.: I haven't started in on the brakes yet.
     
  25. olaf99NL

    olaf99NL Active Member

    Joined:
    Jul 13, 2025
    Messages:
    45
    Likes Received:
    112
    Hello

    It keeps looking better. My wish is also to make trains but I focus now on my route first. I wish also that DTG shared some uncompiled blueprints so that we can see how it was done.

    And my passengers problem is now solved to. Thanks to SAHILGODXD that commented on my video. I had to rotate the platformcomponent itself with the x-axis to the track now it worked. There is no arrow component needed.
    [​IMG]
     
  26. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Your station is looking very good as well! I could have sworn I tried rotating the platformcomponent, and that my passengers were still facing the wrong way. Weird. At least we've both got our passengers behaving themselves now!
     
  27. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Well I think it's true what they say; Audio makes up half the game. To that end, I've got passenger door, controller lever, air compressor, motor-generator set, and an early implementation of traction motor sound to show off today!



    I was going to use a premade TractionMotor blueprint, but try as I might, I couldn't find a parent class for them in the game core classes. So I'm doing it myself in Blueprint in the RVV. No audio occlusion set up yet. Or any brakes, for that matter!
     
    • Like Like x 3
  28. olaf99NL

    olaf99NL Active Member

    Joined:
    Jul 13, 2025
    Messages:
    45
    Likes Received:
    112
    Hello
    Looks good.
    I was wondering if you might be following a specific Unreal tutorial to know all this. I know there are unreal tutorials but they all assume that you build your own game entirely from scratch. I wish DTG could share some raw blueprint files so that we can look at it.
     
  29. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Well it's a combination of having dabbled in various programming languages since the mid 80s, and having also dabbled with UE4 before, having toyed with the idea of creating my own game, back around 2016 or so. (It was going to be a dynamically generated backrooms-type post-robot-apocolypse maze survival thing.)

    Most of the blueprints you will want to use are in the "Core" directory. That way your content will work with just the base game. Then, you make a child of that blueprint to put in your plugin directory and use as a starting point. Above all else, have a look at the DLC blueprints such as the rvm and rvv by making child blueprints from them. You'll get a feel for what components you may need for what you're doing, and how they may be interconnected.
     
  30. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    To expand on my earlier advice, in my experience a lot of blueprint programming, or any kind of programming really, boils down to trying every possible method you can come up with of achieving your desired result; such as casting to another blueprint or getting vhid animations to play correctly, until you finally hit on a setup that works.

    Don't be afraid to use lots of Print String nodes and Branch nodes (blueprints' equivalent to an if-then statement) to determine if you're getting the right values or meeting the right conditions; they can always be removed afterwards.

    Since I'm just now getting familiar with interfacing with the Simugraph (enough to flip switches and read output values) I should probably make a separate post outlining the basics of that. It's actually not terribly hard to get going once you know the method. I can throw something together tomorrow after work, unless anyone beats me to it!
     
  31. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    237
    Likes Received:
    557
    You're right.
    Simugraph isn't impossible to deal with but in many of the nodes there are lots of variables you can set and it can be tricky to get the controls /nodes functioning exactly how you want them.
    With Steam / Air nodes even slight variations in orifice size and things like that can have a big effect on the vehicle performance.

    I had hoped to do a tutorial setting out roughly how to go about creating a custom vehicle but lots of pressures on time at the moment.
    I'm sure your explanation would be most appreciated.
     
  32. olaf99NL

    olaf99NL Active Member

    Joined:
    Jul 13, 2025
    Messages:
    45
    Likes Received:
    112
    Hello

    Thank you. I also have some experience with programming but that is in visual basic and assembler. A few months back I have made a wagon that works. It is just a simple one without special functions. And I have made a start with a loco. It is just a simple test loco and the 3D mesh is just a placeholder. But I am stuck on the programming part. And I have opened some DLC RVV and RVM to look what is needed. But sadly I can not see how they program it.

    So it will be great if anybody can share info how to set things up. Not only for me but that would also be fantastic for the entire community.

    [​IMG]
    [​IMG]
    [​IMG]
     
  33. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    • Like Like x 2
  34. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    237
    Likes Received:
    557
    May I just add one or two points (or 3!) which may help.

    You select a node by dragging it from the list on the RHS into the main window. You can only use nodes which are there and I believe DTG said there are no plans to add further functionality.

    There is a VALIDATE button at the top of the window. I found if you press this after setting up your nodes nothing happens (if everything's fine) but the Editor will crash if you've made a mistake ! This is a subtle way of telling you your setup has an error.

    In the Windows menu at the top you can find a Parameters window which lists which parameters can be set as Inputs. Outputs or Watch.
    If you can't set one as Input then you won't be able to interact with that from the RVM.

    The Watch setting is used by the Simulation Debugger which is another story.
     
    • Like Like x 2
    • Helpful Helpful x 1
  35. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    I've got a holiday long weekend, so I thought I'd take another look at weatherglass.
    ScreenHunter_337 Apr. 04 15.35.jpg

    Now don't get too excited - the WeatherGlass Material isn't actually set up yet! This is just a mock-up using the pre-rendered "T_Droplets_N" normal map from the core assets. I just wanted to check I had my material inputs configured correctly. As far as I can tell, I believe I have parameters DynNormalTex and DynDropletsTex set up properly in my material, but I think the weatherglass component in my RVV is missing something because, well, no droplets. (And yes, I did use ts2.dbg.SetPrecipitation, I set it to 0.5.)

    I don't have a wiper set up yet, but does the weatherglass component actually need one? Yet again, this is another area where an uncooked asset would help immensely. There's a cooked material function or two I wish I could crack open as well, but maybe it's just a normal or mask problem I haven't chased down yet. Maybe I should go get some fresh air and get my grocery shopping done.

    I'll keep everyone posted of course.

    EDIT: HOLY CROW IT WORKS!!

    I had the material index set to the correct one for the LOD model, not the base Skeletal Mesh. Once I changed it to the right slot and drove out of the tunnel, slowly but surely, raindrops started building up. I thought I might be imagining it at first, but no; it's working!

    Didn't think I'd be breaking this .gif out again so soon, but...
    200.gif

    Once I model the wipers, I'll have to work out how to generate a Wipers Mask (a type of vertex displacement mask, I believe) unless the Weatherglass system generates it on its own. If I have any sense, I'll leave that for another day.

    Here's a look at the material:

    ScreenHunter_339 Apr. 04 16.46.jpg

    and the groceries can wait, I've got ramen.
     
    Last edited: Apr 5, 2026
    • Like Like x 2
  36. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    Hi all!

    Well, I've been working this week on getting the windshield wiper set up. I managed it in the end! Still some tweaking to do on the mask, but it's enough for me to see everything is now mapping correctly.

    For anyone else working on wipers, the green channel is the one to put your wipe gradient in (think "intensity = time.") The other channels should be all white, except for the red which has some weird interlaced moiré-pattern-y thing going on. No idea what it does (maybe make the edge of the wiper appear to be wet?) so I just made it all red in the same area. The wiper mask and world-space normal textures I think need to be 512X512, or at least that's what it took for the weatherglass regions to line up with my windows properly.

    In terms of the setup, I ended up giving the wiper component a whole lever component to play with, and the player enables and disables the wiper component with a switch. This lets it park itself correctly and everything, without fuss.

    I'm leaving the wiper and weatherglass as-is for now, lest I risk allowing "perfect" to become the enemy of "good."

    the result:
     
    Last edited: Apr 12, 2026 at 8:33 PM
    • Like Like x 1
  37. trainfan#6965

    trainfan#6965 Well-Known Member

    Joined:
    Dec 17, 2024
    Messages:
    637
    Likes Received:
    708
    just blank.
     
  38. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    414
    Likes Received:
    563
    If you mean the end of the message, there's a YouTube video there; sometimes using a different browser will show it. I don't always see them either. Not sure why that happens.
     
  39. trainfan#6965

    trainfan#6965 Well-Known Member

    Joined:
    Dec 17, 2024
    Messages:
    637
    Likes Received:
    708
    Saw it
     

Share This Page