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

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

  1. cActUsjUiCe

    cActUsjUiCe Developer

    Joined:
    Sep 21, 2017
    Messages:
    826
    Likes Received:
    2,727
    If you have specific questions or run into a roadblock, just let me know
     
    • Like Like x 1
  2. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Gosh, I didn't think I'd be spending so much of my weekend setting up the lenses on my signals!

    Now for the gory details:

    Well, instead of using timelines to animate the "On-ness" parameter of the dynamic instanced meshes on my lenses, I'm going to try doing the animation all in the signalview blueprint using my own custom timers.

    My rationale for this is that using timelines would have required spawning a new actor for each lens of each signal on the system, whereas with my method, they can still just be components of the signalview. It remains to be seen if that's still too many dynamically instanced materials, but I would very much like to see them ramp-up and fade while turning on and off, particularly with the dual flashing reds of a timed signal. We'll see. Any thoughts on this, cActUsjUiCe ?

    Oh, and the editor crashed twice this weekend, removing a bunch of track proxies, and the signals I'd put down (not very many, thankfully.) Using a backup version of my TS_x0_y1 tile, I got my rail network and proxies all back in, at least!

    Does anybody know what tile the signal meshes reside in? The ribbon info for the signals were still there. I may have been able to re-attach the signalviews to them somehow, but I found it easier to re-lay those sections.

    And of course, I'll backup everything again, right now!
     
  3. RobertSchulz

    RobertSchulz Well-Known Member

    Joined:
    Oct 10, 2023
    Messages:
    1,863
    Likes Received:
    2,621
    Signals should either reside in the TT or TS tiles (definitely not in LT and I highly doubt they could ever be assigned to ST), but I guess they should always be in track scenery tiles rather than track or even scenery tiles (if the latter of these would possible at all).

    Also could just be a visual bug that signals persist even after being deleted (had something similar as well) and then the yet persisting information vanishes when restarting the Editor.

    Anyway, try to avoid glueing things together by yourself and if something appears to be off or broken and it isn't too much work to redo, then its best to invest time in redoing sections from scratch and set all signals (and in case even lay tracks) completely new I think.
     
    • Like Like x 1
  4. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Well, my understanding of signals and junctions has developed by leaps and bounds this week. A few days ago I was bugging cActUsjUiCe for a way to read the setting on the junction ahead to use in my signal aspects, when I didn't even know that I hadn't even started to set my junctions up properly! (sorry, cActUsjUiCe)

    For anyone making the move from simply having rail ribbons connected in junctions to having proper, game-recognized and interactable junctions with associated levers and such, try making a child blueprint of TSW5 PC Editor/TrainSimWorld5Mod/TS2Prototype/Content/Core/RailNetwork/Junctions/BP_JunctionLever_Template. I think you'll find that it's a sound foundation to build on!

    And for another tip, I've puzzled out that you need to have your junction in a row in a data table (with row structure of JunctionLever_Struct, I think, I've found the one in core content works) for manual switches to stay that way, and for the junction's event graph to fire anything off, as far as I can tell. Once you add a new data table, and add a row for each junction, you should specify that data table (and row) in the details of your junction actor. Automatic junctions will presumably be set up slightly differently.

    With any luck I should have the signals showing switch indications by the end of the weekend, either with custom events, or casting, or some other method.

    Now I'm going to sit back and have a beer. This is not typical behaviour for me, but it's been an unusually hellish week for me at work. Cheers!
     
    • Like Like x 2
  5. cActUsjUiCe

    cActUsjUiCe Developer

    Joined:
    Sep 21, 2017
    Messages:
    826
    Likes Received:
    2,727
    Signals reside in the TS tiles, but i'd back up your TT tiles as well just in case things get corrupted again
     
  6. cActUsjUiCe

    cActUsjUiCe Developer

    Joined:
    Sep 21, 2017
    Messages:
    826
    Likes Received:
    2,727
    So you're working on flashing lights? I'll explain it as best as I can. It's not intuitive at all because there's so many components. This is by no means a comprehensive guide but it should get you on the right track.
    • Create an enumeration somewhere in your folder structure and give it a name like "LampColor". Create individual entries for each color the signals in your project will be capable of displaying. signalcolorenum.png
    • Set up your Signal Lens Base blueprint. This will have a parent class of Blueprintable Static Mesh Component. This base is the parent for all your actual lenses used on the signal heads. At a minimum it should have:
      • a function named "SetColor" with just a single input of your "LampColor" enumeration.
      • a boolean variable named "Flashing"
      • a Material Instance Dynamic variable
      • a function named "SetColorAndFlash" with two inputs. One of your "LampColor" enumeration and one of the "Flashing" boolean. Wire it up like this photo: setcolorandflash.png
    • Set up a signal lens blueprint. This will have a parent class of your previously created Signal Lens Base. It's set up with a variable named "Material Index" and just has an event that fires off every time fhe "SetColor" function in the Signal Lens Base is called. It looks like this: lensblueprint.png
    • Inside your actual signal head blueprint, add components for your signal lenses. This will be the signal lens blueprint configured above. You'll need one for each light on your signal head. Then click into each lens component you added and set the material to be that of the appropriate color. The DLCs come with material instances that you should be able to reference.
    • Also inside your signal head blueprint, you need to make a function called something like "SetLamps". This gets fired off whenever the Signal Head Base's "SetAspect" function gets called. setlamps.png
    • You'll also need a Signal Head Base blueprint that acts as the parent for all of your actual signal head blueprints. The signal head base has functions like "SetAspect" and can do other things as needed. It's parent class is just "actor". The SetAspect function just has a single input for the Aspect Class you're trying to set on the signal. setaspect.png
    There are other things too like programming the Material Instances/Material Functions but I'm not very good at that, so I can't speak intelligently to it. Hopefully this helps.
     
    • Helpful Helpful x 3
  7. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Thanks for the signal setup and colour tips, cActUsjUiCe! Knowing me, I'll probably try to do it a vastly different way, and then sheepishly* emulate your setup when mine fails spectacularly.

    Well, besides figuring out some stuff about signals and junctions, and getting the down-escalators moving again at Eglinton Station, I've managed a guest appearance of a 6-car '38 London Tube Stock formation, which will be ready to do test timetable runs to Davisville, once I sit down with it to have a long talk about electrification requirements. :)
    ScreenHunter_208 Mar. 09 19.00.jpg
    I'm digging that family resemblance!


    *EDIT: I mean "sheepishly" in the humbled, hat-in-hand sense.
     
    Last edited: Mar 10, 2025
    • Like Like x 4
  8. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Well, the 38 Stock had all kinds of fourth rail requirements, so I put it aside and tried out an M3 from the LIRR, which had no such complaints. And now I've had a couple successful runs of my test service! Passenger loading isn't working yet, so this one's just a go-to from Eglinton to Davisville. Maybe it's just a small bit of progress in the grand scheme of things, but it's something I've been anxious to see :)

    The video below starts with a brief look at the top side of Eglinton, before we venture down to see what awaits us at the platform. A brief reminder that the roads and buildings at street level are missing, but I basically just need to re-import those assets. I was so excited to capture this video, I didn't even have time to fix up those signals or bake the lighting in the tunnel again!


    Want to see how my route looks in its current state, with a train running on it for Mario Day? Let's-a go!
     
    • Like Like x 9
  9. lieneda#6024

    lieneda#6024 New Member

    Joined:
    Mar 27, 2023
    Messages:
    4
    Likes Received:
    2
    Looks beautiful.
     
  10. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Thank you very much! To my critical eyes, it's hard not to see everything that still needs doing, but I'm glad you like it so far! I've made a little progress since then, but perhaps not enough to share just yet.
     
    Last edited: Apr 5, 2025
  11. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Well, I may not be able to do much more on the route for the next couple weeks or so (due to other areas of my life unexpectedly needing urgent attention,) so I thought I'd make a post with a few small updates.

    First, here is a nice shot of the eastside platform at Eglinton, showing an analogue clock blueprint with the parent class of "/Game/Core/BlueprintResources/Clock/Analogue/BP_ClockAnalogue_01", which I will rework a bit to match reference photos I have. A useful blueprint class to be sure! Also note the track switch blades are correctly lit, now that I've got the skylight turned off in the station.
    ScreenHunter_209 Mar. 16 17.07.jpg

    Next, A little more work has been put in, leading up to the tunnel entrance south of Davisville, still a ways to go here...:
    ScreenHunter_221 Apr. 06 14.00.jpg

    Lastly, Here you can see some of the iconic fire-watch towers in Davisville yard, as seen across Yonge Street from Mt. Pleasant Cemetery. They're maybe a little oversized and missing some details, but I think they already give a good impression: ScreenHunter_223 Apr. 06 14.38.jpg

    Well, that might have to be it for a little while. Hopefully not too long though. I wouldn't worry, I don't think it's anything that will jeopardize my route. In any case, I want to say thanks to everyone that's helped me out so far, and continued good luck to everyone on their amazing projects!
     
    Last edited: Apr 6, 2025
    • Like Like x 7
  12. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Hello all!

    I know it's been a while since my last post, and I certainly wish I had better news with which to present you.

    It's not easy for me to say this, but the project has been put on indefinite pause because my housing situation has become uncertain, and I'm facing the much more pressing issue of keeping a roof over my, and my mother's heads. I'm not sure what the future of the route will be.

    I'm up to putting the plugin in it's current state somewhere online to preserve it in some form, if anyone has some easy suggestions. I've never used "the cloud," for instance, and I'm not sure how much it would cost to preserve 5 GB of data. I'm open to all and any suggestions that would be cheap, and easy to implement. I don't think I'd have a problem with other people taking a poke at it either, as it was always supposed to release as free. I do hope to put out a somewhat definitive version.... eventually. If all goes well.

    There's just no way I've got time to try to pack or cook the plugin, or even trim out any fat.

    I have my reference material backed up in a couple locations on my computer, which I certainly hope will survive all of this.

    I'll have a look at any suggestions you all have, but this may be my last post for a while. If I do get the WIP plugin put online somewhere, I'll try to get the word out. Wish us luck! I feel we'll need it.
     
    • Like Like x 3
  13. Tomas9970

    Tomas9970 Well-Known Member

    Joined:
    Oct 7, 2018
    Messages:
    1,050
    Likes Received:
    1,057
    Wish you luck with whatever you need to deal with and as for the storage, Google Drive gives 15GB free for every account so you can just upload a 5 gig ZIP file.

    As for the references, if they are too large to upload, get a pair of flash drives (from reputable brand) and copy the files on both of them. That's a cheap option and the data should survive unless you leave them for like 10 years without plugging into anything.
     
    • Helpful Helpful x 1
  14. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Just popping by to let you all know the project's not dead yet, and my housing situation is no longer in question!

    One major change is that I've decided to allow one dependency for my route: DTG's (delightful, IMHO) Liverpool Lime Street - Crewe. This will allow me to use the passengers, which should look fairly accuate, though based 3 years later, and in the mother country as opposed to the colonies :)

    Also, this could in theory allow for periodic (and period accurate) AI steam freight services on the beltline bridge, as the player drives their Gloucester to and fro in Davisville yard beneath. Even if they're not the 4-4-2s Canadian National operated at the time, I rather like the idea.

    With that said, don't expect much in the way of progress for at least a month or so, as things are still getting settled.
     
    • Like Like x 1
  15. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Just now getting back to things, but got a little bit done on Davisville Yard this morning.

    These iconic but ancient fire-watch towers may (?) have been removed since I moved out of Toronto, since they don't show up in any recent satellite photos. The modelling is still incomplete and scale is still maybe a bit big (I have only my eye to go by,) but with the help of Google Earth Pro's Historic Imagery feature, I think I've got them all in their proper locations now! I counted 11. Anybody know if I missed any?
    ScreenHunter_229 Jul. 01 10.28.jpg

    Happy Canada Day! :)
     
    • Like Like x 2
  16. CFTFC

    CFTFC Well-Known Member

    Joined:
    Apr 18, 2020
    Messages:
    213
    Likes Received:
    267
    [​IMG]
    Happy Canada Day
     
    • Like Like x 1
  17. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Here is the G-1, if you couldn't tell. I've got it to show up in-game as part of a proper formation, as opposed to being just a static or skeletal mesh! That makes it easier to overlook the improper origin, orientation/alignment and lack of texturing (or skeleton.)

    ScreenHunter_229 Jul. 06 20.18.jpg

    All I had to do was take the view component out of the RVM where I had put it for some reason, and put it in the RVV!
    Great way to start the work week, if you ask me! Just need to tidy up the folder structure for the model next, before things get out of hand.
     
    • Like Like x 1
  18. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Nothing groundbreaking to report, but I remembered that this "junction lever template" BP which can be found in "Game/Core/RailNetwork/Junctions/" has a few VHID components, so I can use a child BP made from it as an example of how working VHIDs are meant to be set up:
    ScreenHunter_229 Jul. 23 19.06.jpg

    If I find myself with a spare moment this weekend, I'm going to see if I can get a simple door to slide open and closed, which should also serve as a test of my rigging and animation skills. No promises, but as always I'll keep everyone up to date whenever I make some real progress.
     
    • Like Like x 2
  19. Daunfr59

    Daunfr59 Well-Known Member

    Joined:
    Dec 8, 2016
    Messages:
    137
    Likes Received:
    292
    On the subject of VHID's I have been messing about trying to setup a Simugraph and RVM (both from scratch) for my GWR steam loco and have just realised the following.

    In the RVM each cab control has a "lever" object of the appropriate type (Simple Lever, Irregular levers and so on which use a Blueprint.) These are set up so that the output (which can be between 0 and 1 -or -1 +1 for a Reverser) is mapped to the "real" output (1 =100% throttle etc.) They also have named outputs such as Combined Brake and are presumably used to input the current settings into the Simugraph. These objects include a "box" to set a link to a "Slave" VHID in some way although these are all blank in the Child RVM I'm studying.

    The same controls Regulator , Reverser, appear in the RVV but in this blueprint they are VHID objects.

    You may already know this but I thought it might be helpful.

    Good to see you are still making progress with your project.
     
    • Helpful Helpful x 2
  20. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Good news: I tried unifying the Gloucester model (well, the interior) in it's current state, and seeing if I could import the model as a skeletal mesh, and test the textures and normal maps etc. to see if they looked okay in game. I think they do:

    ScreenHunter_233 Jul. 27 19.09.jpg

    Might want some more variation in the materials, but I'm pretty sure I won't try Substance Painter, as I don't want to further encourage Adobe's software-as-a-service pricing models. It helps that these subways cars are meant to look fresh-off-the-boat.

    Bad news: Just as I was getting back into the swing of things, I had to go and injure my finger at work, so I'll have to wait another week or two before I can right click with the mouse comfortably, though I can use my ring finger for that now, if I'm careful. Trying to do as little on the computer as I can until it heals, to be honest. Hunt-and-peck typing, that sort of thing.

    I can probably rig the Gloucster up with the appropriate bones and animation given enough time, and I have most of my audio assets lined up. The truly hard part looks like it's going to be getting the VHID components and oh-so-mysterious Simugraph hooked up to everything, much as I suspected. I'll keep you guys posted!
     
    • Like Like x 3
  21. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    Using the mouse is still a bit tricky until my finger heals, but I've managed to do a bit of work on framing the windows, as you can see: (the refence drawing on the right shows the cross-section of the right side of the frame.)
    ScreenHunter_238 Aug. 17 22.22.jpg
     
    • Like Like x 6
  22. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    I spent the past day or so of working out the basics of the rigging setup, including the blender to PC Editor workflow.

    One hot tip: make sure that in your fbx export in blender, you set the export settings to "Forward: -Y" and "Up: Z", and under the Armature tab, set the "Primary Bone Axis" to "X" and "Secondary Bone Axis" to "-Y. This should make things match up when you import them to the PC Editor. you might need to change the scale to .01 depending on how the blender file's units are set up.

    I'm using the LIRR_M3a's skeleton as a reference for the hierarchy. The bones presumably need to be parented correctly, the orientation of all the bones should all be identical, pointed forward, as far as I can tell.

    Here's a video of me showing off a couple of properly set-up and weighted bones:



    and here's a video of me just showing off:



    sorry if those are kind of grey looking; it might be my monitor's HDR settings.
     
    • Like Like x 1
  23. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    One last update to end the weekend. I have my Rail Vehicle (G1-A) lying flat now (as you can see.) The culprit was a jumble of Simugraph nodes I had in my Simulation Asset as a placeholder. I still don't know why it was hovering about a meter above the rails, but for now I just moved the model components' location down in the RVV to compensate. Next up, couplers, and then eventually a semi-permanently coupled A-B pair (hopefully.)

    ScreenHunter_247 Aug. 23 19.59.jpg

    It being so hot today, I then had to take a break and do some typographical gymnastics for the Beltline bridge south of Davisville. Mine's at the top :)

    ScreenHunter_247 Aug. 24 23.18.jpg

    Now I'll try not to bug everybody for a few days, at least until Dovetail reveals to us all whatever "expect the unexpected" means! (Not anything about my plugin, unfortunately.)
     
    • Like Like x 1
  24. pwilson79

    pwilson79 Well-Known Member

    Joined:
    Apr 18, 2021
    Messages:
    298
    Likes Received:
    477
    I think this warrants an update. I just worked out how to write text onto a texture, and then put that texture into a dynamic material instance during runtime. This lets me put the train number on my subway car, lets the numbering react to shadow and light exactly the same as the rest of the material, and shouldn't impact the performance during gameplay in any meaningful way.

    ScreenHunter_247 Aug. 26 15.00.jpg
    Not sure if that's the way we're supposed to do it. I'm also not sure how to make DTG's numbering system pick an entry and spit it out; right now I'm just setting 5098 as the default, to have something show up.

    Meow! (hopefully this doesn't count as vandalism!)
    ScreenHunter_248 Aug. 26 15.40.jpg

    edit: That's supposed to be a cat. (Give me a break, it's like 30 Celcius here!)

    I followed a 10-year-old youtube video I found here:
     
    Last edited: Aug 27, 2025 at 3:39 AM
    • Like Like x 2

Share This Page