Not signed in (Sign In)

Discussion Tag Cloud

Categories

Vanilla 1.1.9 is a product of Lussumo. More Information: Documentation, Community Support.

    •  
      CommentAuthorYedrimas
    • CommentTimeDec 29th 2015 edited
     
    This tutorial requires :
    - A 3D model for the rail
    - A 3D model for the trains
    (Optional : A 3D model for the bogies)
    No scripting skills

    Tutorial :
    Video

    Hide the parts of the ride that are used to life the train, and the brake section.
    Make sure the brake section is set to Complete stop (Waiting time can be 0)
    Add a trigger at the begening of the brake section. Name it as you wish (It has to be named).

    Once it's done, you'll need to duplicate your coaster.
    To do that, click in the [Coaster] tab, [Import Coaster].

    Select the current park and then pick your ride.
    Rename it like (trackname_skin).
    Remove all trains from this coaster, [Coaster Properties...] [Trains] [Number of Trains] : 0
    Freeze this one.

    Making the coaster

    Let's get back to the original coaster.
    Attach the "Owner.nlvm" script to it.
    [Coaster Properties...] [Scripts] [Add] [Class path (target the folder containing all the scrips)] [Script class(Owner.nlvm)]
    Leave Private Virtual Machine unchecked


    Making the trains

    Create a new Nl2sco
    [Scenery] [NL2SCO Editor...] [New...]
    Put it in the directory where the scripts are.
    Set your 3D model and add the script Car.nlvm
    Leave Private Virtual Machine unchecked

    That's all. (For the bogies, it's exactly the same, but you'll need to attach Bogie.nlvm)

    If you have different models for your car, repeat the process, just replace the model with the new one.

    You can force a car to be in a special position (if you have a special model for the "Zero car"). To to that, name the object with the desired position.



    Making the rail

    Create a new Nl2sco
    [Scenery] [NL2SCO Editor...] [New...]
    Put it in the directory where the scripts are.
    Set your 3D model to check if the size match your hidden brake.


    Run the tool provided. It may seems complicated, but don't worry it's not :)
    Let's just focus on the Step 1 part.


    Click on Load and select the 3D model of your rail.
    Set the number of cars and bogies depending on how much you need.

    Click on Go !
    This will create a copy of your model with everything that the script will need.
    (This has been tested with :
    Cinema4D
    Blender
    Sketchup)
    If you're using something else, just import your model in Sketchup or Blender which are free, and export it. Then run the tool on it.



    Replace in the Nl2sco, the 3D model with the new one. An arrow will appear on it.
    If the arrows are not correctly aligned with the rail, import your model in Sketchup or Blender which are free, make a 90° rotation and export the model.
    Run the tool on the new model.


    Never edit the model created by this tool, only edit your own, and run the tool again.

    This is almost the end !

    Now focus on the second part of the tool



    See here a demonstration.

    Click on Go !, save the script where all other scripts are and attach it to the NL2SCO you created for your fail.
    [NL2SCO Editor...] [Scripts] [Add] [Script class(RailScript.nlvm)]

    To add multiple DropTrack Sections, modify the name of the script (ex : RailScript2.nlvm) inside the tool

    Optional part : Adding more than 1 DropTrack Section

    It's pretty easy. Create another Nl2SCO using the same (or you can change) 3D model that you used for your first DropTrack Section.
    In the tool, when creating the rail, in the Script Name field, put something else than RailScript (like RailScript2).
    Attach the resulting script. Done.

    Don't forget to reload your NL2SCO if you change something on it (like the model or when you attach a script.)


    Downloads :

    Example package
    RAR file containing the scrips + the generator

    Additional information :

    Adding a camera : Soon

    If you have any problem/question feel free to ask !
    •  
      CommentAuthorPearman
    • CommentTimeDec 29th 2015
     
    Amazing. Thanks for this detailed tutorial. I think I'm going to try this soon :D
    •  
      CommentAuthormcrc.2305
    • CommentTimeDec 30th 2015
     
    amazing tutorial, is there any way you can do this without custom trains and rails
    •  
      CommentAuthorYedrimas
    • CommentTimeDec 30th 2015 edited
     
    Posted By: mcrc.2305amazing tutorial, is there any way you can do this without custom trains and rails

    No sorry :/
  1.  
    Awesome tutorial, thanks for sharing. I've added it to the NL2 Resource Thread. It made me exceed character limit on the first post, lol, good thing I made place holders.
    • CommentAuthorBullero
    • CommentTimeJan 24th 2016 edited
     
    Wow, this is exactly what I'm looking for: I'm trying to make something like this launchpad from XCOM: Enemy Unknown in my next project and this makes it possible! The track needs to rotate 135 degrees along the y-axis and tilt the track to a 30 degree angle (90 degrees like the video seems to be overkill ^^) so the coaster can be launched up. If someone could help me out, I would be very happy!

    The coaster is called 'XCOM' and uses 3 car models to form a wingrider train. This is what i've done:

    1) Made the track with 4 triggers called 'Trigger1' for detaching the cars, 'Trigger2' to start the movement of the track, 'Trigger3' to attach the car and 'Trigger4' to reset the track to it's initial position.
    2) Made three cubes .nl2sco files named 'car0','car1' and 'car2'
    3) Made a fake track nl2sco file named 'rail'
    3) Made scripts for the cars (If i'm correct I don't need bogies for my wingrider trains as the bogies are attached to the cars itself) by using the template and adjusting them like this (Of course I didn't change the rest of the script):

    Modify public class car0 extends Script implements TrackTriggerListener
    private final int Target = 0;
    private final String TargetObject = "car0";
    private final String ReleaseTrain = "Trigger1";
    private final String AttatchTrain = "Trigger3";
    private final String CoasterName = "XCOM";
    private final String SceneObjectName = "rail";

    And for the second car:
    Modify public class car1 extends Script implements TrackTriggerListener
    private final int Target = 1;
    private final String TargetObject = "car1";
    private final String ReleaseTrain = "Trigger1";
    private final String AttatchTrain = "Trigger3";
    private final String CoasterName = "XCOM";
    private final String SceneObjectName = "rail";

    same procedure for the third car.

    4) I've attached the scripts to the three wingriders .nl2sco files.

    Now I'm stuck on how to continue. If someone could explain the final steps to me that would be amazing!
    Thanks in advance!
    •  
      CommentAuthorYedrimas
    • CommentTimeJan 24th 2016 edited
     
    "Modify" is not a part of the script.
    Modify public class car0 extends Script implements TrackTriggerListener


    The last step is to move your fake rail, if you know how to script you should probably do it yourself.
    If not you can use Models Animator.

    The first script in model animator should look to something like this :


    The first rotation should target the whole model (platform + fake rail)
    Then the second one, only the rail (you don't want the platform to tilt I guess ^^)

    The second one is the same, but with -135 and -30.
    The can obviously change the easing (see them on this website)

    Hope this answer your question.
    If you need more help, feel free to ask and post pictures (or even your park in PM). :)
    • CommentAuthorMrRC
    • CommentTimeJan 28th 2016 edited
     
    @ Yedrimas :
    Where do i have to place the Cubes (Bogie and Car) ?

    I assume on top of the Fake Rail ??

    I assume in the Wireframe coaster right ?
    •  
      CommentAuthorYedrimas
    • CommentTimeJan 30th 2016
     
    The cubes must be part of the 3D model of your fake rail.

    The fake rail must be aligned with the wireframe.
    • CommentAuthorMrRC
    • CommentTimeJan 30th 2016 edited
     
    OK i will try that.


    Edit :

    That didn't work out .... :-(

    Where do i have to place the Cubes ? In the Station or at the loaction of the Fake_Rail ?

    Error message :

    Exception: NullPointerException
    at public bool Bogie0.onInit() in line 37
    at public final void com.nolimitscoaster.Script.run()

    Line 37 :

    t = coaster.getTrainAt(0);
    •  
      CommentAuthorYedrimas
    • CommentTimeJan 30th 2016
     
    Can you PM the package so I can see precisely what's happening ? :)
    • CommentAuthorBullero
    • CommentTimeFeb 24th 2016
     

    Hello Yedrimas,

    The XCOM launch platform is working! A few weeks ago I asked some questions. Did you have a chance to look at them? Please let me know if you can / want to take a look at it. No problem if you don't, just let me know.

    Thanks in advance!

    •  
      CommentAuthorYedrimas
    • CommentTimeFeb 24th 2016 edited
     
    Sorry I didn't see them,

    • I don't really undertsand what's happening, could you send me the package / video ?

    • So, it's possible to have 2 freefall with the script, but some tiny modification make this works.

      Bellow those lines
      private final String ReleaseTrain = "";
      private final String AttatchTrain = "";


      Copy and paste them, just change "ReleaseTrain" with whatever you want, like "ReleaseTrain2", same for AttatchTrain.

      Do the same with private TrackTrigger PositionTrigger;
      private TrackTrigger SetBackTrigger;


      Let's say you'll had only one more freefall with those names :

      ReleaseTrain2
      AttatchTrain2
      PositionTrigger2
      SetBackTrigger2

      PositionTrigger = coaster.getTrackTrigger(ReleaseTrain);
      PositionTrigger.addTrackTriggerListener(this);
      SetBackTrigger = coaster.getTrackTrigger(AttatchTrain);
      SetBackTrigger.addTrackTriggerListener(this);


      Just after this, add this :
      PositionTrigger2 = coaster.getTrackTrigger(ReleaseTrain2);
      PositionTrigger2.addTrackTriggerListener(this);
      SetBackTrigger2 = coaster.getTrackTrigger(AttatchTrain2);
      SetBackTrigger2.addTrackTriggerListener(this);


      Exactly the same, but with the new names.
      It's almost done.

      if(trigger == PositionTrigger){CoasterState = WaitingForStop;}
      if(trigger == SetBackTrigger){CoasterState = SetBack;}


      After this, add :
      if(trigger == PositionTrigger2){CoasterState = WaitingForStop;}
      if(trigger == SetBackTrigger2){CoasterState = SetBack;}


      This should work, repeat this if you want to add others freefall.

      Don't forget to add those triggers to your track ^^

  2.  
    Thanks for posting this, I've been trying to make a Alton Towers Th13teen recreation for a while but been struggling with the drop part! I saw this and was very happy however the tutorial was lacking detail to follow, maybe if you have some spear time you could make a video tutorial, or someone else will to do this could do it? Thanks!
    •  
      CommentAuthorRickPlays
    • CommentTimeJul 22nd 2016
     
    Hello Yedrimas,

    I have a problem. The Car don't move with the Rail and only reattatch when the wireframecar activates the trigger at the end.
    The movement from the Rail works fine and the Car is released and attachts just fine only the movement from the Car don't work.

    Hope you can help. :)
    Thanks!
    •  
      CommentAuthorYedrimas
    • CommentTimeJul 22nd 2016 edited
     
    Are the cubes mooving with the rail ?

    To check that, edit one script (car or boggie), change the "false" to "true" line 39 (boggie) or line 41 (car).


    Is Private virtual machine enabled on the scripts ? (This should'nt change the behaviour anyway, but still it's better to keep it enabled)

    •  
      CommentAuthorRickPlays
    • CommentTimeJul 22nd 2016
     
    I deleted the visible command for the Car and Bogie because of this Error message;
    Bild

    The Car-Cube moves with the wireframecar to the release Trigger and then waits until the wireframecar is at the attatch Trigger. The Rail moves fine.
    •  
      CommentAuthorYedrimas
    • CommentTimeJul 22nd 2016
     
    Check if you named the object correctly :

    This name is in the script as SceneObjectName
    private final String SceneObjectName = "rail";



    Check if the cubes in the 3D model are correctlty named.
    This name is in the script as TargetObject .
    private final String TargetObject = "Car0";
    •  
      CommentAuthorRickPlays
    • CommentTimeJul 22nd 2016
     
    All is named correctly.
    •  
      CommentAuthorYedrimas
    • CommentTimeJul 22nd 2016
     
    Hmmm.. Can you send me the package ?
    •  
      CommentAuthorYedrimas
    • CommentTimeSep 3rd 2016 edited
     
    This tutorial has been updated :

    Removed the model animator part to avoid bugs.
    Multiple trains.
    Multiple droptrack sections.
    Only 1 trigger to make the script work.
    Added a video tutorial.
    Added an example package.
    No more script editing.
    Faster and easier

    Same post here
    • CommentAuthorLyle
    • CommentTimeSep 6th 2016
     
    AWESOME!!!! drop section? not up... alike Thirteen in Alton..