• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS20 Custom Jetways

Hi @Devinci, I’ve animated a jetway but can’t get it into the sim, I used your template and followed the instructions for input/output directories but the scenery just won’t compile, any ideas? Cheers
Hi, it has been a while since I touched the sim but did you check the GUID values you may need to generate new ones.
 
Hi, it has been a while since I touched the sim but did you check the GUID values you may need to generate new ones.
I did change the values, I’ll have a look again at the xml, but looking at the console it gets an error when generating as asset group for simibjecgs, not sure if there’s a fault in my paths or the sim object itself.
 
Okay so I've got it working, had to really closely look at all .xmls to make sure all file paths are correct, now I can see my jetway as a SimObject
 
It works in sim now and moves accordingly, though I still have one little issue, the red part moves together with the upper actuator, which makes it sink into the ground, which is odd, I have my bones assigned just like the ones in the sample file. Maybe you've got some ideas about this guys? @Franzlhuber @copilot8 @Devinci

1615559798391.png


unknown.png
 
The wheels do stay on the ground though?
You've got a skin modifier applied to the mesh. Is there any reason for it? Otherwise delete it and try it without.
 
The wheels do stay on the ground though? You've got a skin modifier applied to the mesh. Is there any reason for it? Otherwise delete it and try it without.

Yes, the jetway sample has Skin on the wheel base, it’s tied to Bone07, WheelOrient and WheeRotation, so I set weighs to vertices so that they don’t interfere (eg wheel orient does not rotate the wheels and vice vers), just like in the sample file. Not yet sure why the wheels stay on the ground and the actuator moves, it’s a single object patented to Bone08.
 
Right, but because the sample has tires, wheel axis and actuator all tied together in one mesh, weirdly. Since you have separated meshes, the skin modifier in your jwy_wheel_carcass seems unnecessary and propably causes the problem. All I can say for sure is, that my jetway has bascially the same parenting like yours but my actuator has no skin and it works.
 
Right, but because the sample has tires, wheel axis and actuator all tied together in one mesh, weirdly. Since you have separated meshes, the skin modifier in your jwy_wheel_carcass seems unnecessary and propably causes the problem. All I can say for sure is, that my jetway has bascially the same parenting like yours but my actuator has no skin and it works.
May I see your setup please? My mesh is all in one, just like the sample, that’s why it has the skin on it, otherwise the whole thing rotates
 
Right, but because the sample has tires, wheel axis and actuator all tied together in one mesh, weirdly. Since you have separated meshes, the skin modifier in your jwy_wheel_carcass seems unnecessary and propably causes the problem. All I can say for sure is, that my jetway has bascially the same parenting like yours but my actuator has no skin and it works.
So I've fixed it, I replaced Bone07 with Bone08 in the skin properties, same vertex weight of 0, works perfect now. This is the third time that the jetway sample file is configured wrong. Thank you for your help!
 
Last edited:
Nevermind, seems like you have figured it yourself. Just for the record, that's how my setup looks like.



-----------------------

Anyway, you seem to be up to the mark with 3ds max animations. Have you or anyone else figured how to master the stairway/ladder problem?
That's kind of the holy grail for me.
 
Nevermind, seems like you have figured it yourself. Just for the record, that's how my setup looks like.



-----------------------

Anyway, you seem to be up to the mark with 3ds max animations. Have you or anyone else figured how to master the stairway/ladder problem?
That's kind of the holy grail for me.
Wish I had the patience to do this but for now I've just folded my stair to save time.
 
@copilot8 @pyreegue @Franzlhuber I've managed to get all the animations to work inside MSFS except the wheel rotation and wheel orientation.
I've tried both using and removing the skin modifier. My wheels and actuators are all separate objects.
The original animation keys for the point helpers are still present and have not been modified, so the wheels work fine in 3DSMax but not in MSFS.
Any ideas?

P.S: I got the jetway to (mostly) work by importing my objects into the sample Jetway.max, parenting the objects to the relevant bones, adjusting the positions of the bones and helpers, and then removing Asobo's jetway objects.
Why reinvent the wheel right? If I get this last bit to work I'm going to attempt to put together a video tutorial when I get the time.



Screenshot 2021-04-11 003908.jpg
 
Looks correct.
Have you added the jetway as a Simobject?


Ah, I see you have ended up with the packagetool making a bgl. You need to define your model as a simobject in the PackageSources before building the scenery, so that it becomes a simobject instead of scenery.

So just to stop some potential confusion, the following is a quick how-to, just incase something went wrong when you tried to make it:
Go to the sample Jetway in the SDK sample folder for reference; and you'll want an identical folder structure from the SimObjects folder in your own project's PackageSources folder before building. (Ignore the data folder).
View attachment 65486

with a model, soundai, and texture folder, and a sim.cfg.
"MyCompany_Jetway" can be replaced with your jetway name, just make sure to update the sim.cfg.
Make sure the animations defined in the (your jetway's model name).xml in the model folder is correct like before.
Your model should be a .gtlf and .bin in that folder with the same name as the .xml.
The model.cfg should point to the correct .xml name.
View attachment 65487
Make sure you have the following Asset Group in the PackageDefinitions folder.

Where 3 instances of "MyCompany_Jetway" is replaced by whatever you called it before.
If you build the scenery with that, then the Jetway should show up in your package as a SimObject. The fspackagetool will point out mistakes.
If done correctly, you should end up with this in the final package:
View attachment 65488
Where all the .xml files are in the model folder still, and the model retains it's form as a .gltf and a .bin.

If that works, boot up the sim and devmode's scenery editor and add the Jetway to a gate by clicking on the gate in the scenery window, then add an object type "Jetway" from the objects window, and select your model by name to add.

Just FYI, I'm not an expert either; I just got mine working this way only a week ago. I really hope this works for you!
 

I had indeed forgotten that (don't know how as I read the whole thread 3 times), but that doesn't seem to be it.
I edited/added the missing lines to the .xml and tried with and without the skin modifier, rebuilding the package as a Simobject each time.
The jetway attaches to the aircraft correctly each time, with correct hood animation, but no wheel rotation or orientation. :(
 
If it a
I had indeed forgotten that (don't know how as I read the whole thread 3 times), but that doesn't seem to be it.
I edited/added the missing lines to the .xml and tried with and without the skin modifier, rebuilding the package as a Simobject each time.
The jetway attaches to the aircraft correctly each time, with correct hood animation, but no wheel rotation or orientation. :(
If it all works in 3ds but not in sim the only reason I see is errors within the xml file.
 
I think you may be on to something.
Taking a second look at the XML, I see that I added the <UseTemplate> section as you pointed out, but now I feel like it is added to the wrong <Component>. Perhaps it should be separate from <Component ID="Hood"> and in some section called <Component ID="Wheel">? (However there is no "hood" component in the exported file anyway 🤔).

Here is the code:



XML:
<?xml version="1.0" encoding="utf-8" ?>
<ModelInfo version="1.1" guid="{69b064b2-89b6-4af7-960a-ff5584f71208}">
    <LODS>
        <LOD MinSize="0" ModelFile="TVSA_Jetway.gltf"/>
    </LODS>
    
    <Animation name="Link_Deployment_L" guid="f993fae1-e8b1-47b5-940d-5cb1b624f0cc" type="Standard"/>
    <Animation name="Link_Deployment_R" guid="b09319d2-ec96-445e-9395-ea6ef3182542" type="Standard"/>
    <Animation name="Link_Bend_L" guid="6AE01FE9-9BFD-4234-9932-36D4B8D65B5F" type="Standard"/>
    <Animation name="Link_Bend_R" guid="D06BC1D3-4F30-4E0F-90E0-32199272D27B" type="Standard"/>
    <Animation name="Link_Horizontal_Top" guid="344B7B33-23CA-4A80-8C2A-9303E2F08189" type="Standard"/>
    <Animation name="Link_Vertical_Top" guid="335BBE27-3C59-4D0D-B6E0-9B793BA03387" type="Standard"/>
    <Animation name="Wheel_Rotation" guid="3510798D-EE26-4264-A532-0E81959618BB" type="Standard"/>
    <Animation name="Wheel_Orientation" guid="B4E328E8-6D7B-4EE8-AE90-9B88F69D4545" type="Standard"/>
    
    <IKChain Name="IK_MainHandle">
        <Start>Rotation_Base</Start>
        <End>Pivot</End>
        <TranslationSpeed>0.4</TranslationSpeed> <!-- Meters per second for each Node compared to its parent -->
        <RotationSpeed>3</RotationSpeed> <!-- Degrees per second for each Node compared to its parent -->
    </IKChain>
    
    <IKChain Name="IK_SecondaryHandle">
        <Start>Bone05</Start>
        <End>Contact</End>
        <TranslationSpeed>0.4</TranslationSpeed>
        <RotationSpeed>30</RotationSpeed>
    </IKChain>
    
    <IKChain Name="IK_WheelsGroundLock">
        <Start>Bone07</Start>
        <End>Bone09</End>
        <TranslationSpeed>10</TranslationSpeed>
        <RotationSpeed>90</RotationSpeed>
    </IKChain>
    
    <IKConstraint>
        <Node>Rotation_Base</Node>
        <Bank min="-12.6" max="9.3"/>
        <Heading/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone01</Node>
        <X min="2.218" max="7.4"/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone02</Node>
        <X min="0" max="5.567"/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone03</Node>
        <X min="0" max="5.597"/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone04</Node>
        <X min="0" max="6.134"/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone05</Node>
        <Pitch/>
        <Bank/>
        <Heading/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone07</Node>
        <!-- <Bank min="-104.2" max="-48.2"/> -->
    </IKConstraint>
    <IKConstraint>
        <Node>Bone08</Node>
        <X min="0.6" max="6"/>
    </IKConstraint>
    <IKConstraint>
        <Node>Bone09</Node>
    </IKConstraint>
    
    <Behaviors>
        <Include ModelBehaviorFile="Asobo\Misc\SimObjects.xml"/>
        
        <Component ID="Hood">
            <UseTemplate Name="ASOBO_Jetway_Hood_Left_Bend">
                <ANIM_NAME>Link_Bend_L</ANIM_NAME>
                <PERCENT_PER_SECOND>50</PERCENT_PER_SECOND> <!-- Speed of the animation -->
            </UseTemplate>
            <UseTemplate Name="ASOBO_Jetway_Hood_Left_Deployment">
                <ANIM_NAME>Link_Deployment_L</ANIM_NAME>
                <DEGREE_PER_SECOND>20</DEGREE_PER_SECOND>
                <MIN_ANGLE>0</MIN_ANGLE>
                <MAX_ANGLE>45</MAX_ANGLE>
            </UseTemplate>
            <UseTemplate Name="ASOBO_Jetway_Hood_Right_Bend">
                <ANIM_NAME>Link_Bend_R</ANIM_NAME>
                <PERCENT_PER_SECOND>50</PERCENT_PER_SECOND> <!-- Speed of the animation -->
            </UseTemplate>
            <UseTemplate Name="ASOBO_Jetway_Hood_Right_Deployment">
                <ANIM_NAME>Link_Deployment_R</ANIM_NAME>
                <DEGREE_PER_SECOND>20</DEGREE_PER_SECOND>
                <MIN_ANGLE>0</MIN_ANGLE>
                <MAX_ANGLE>45</MAX_ANGLE>
            </UseTemplate>
            <UseTemplate Name="ASOBO_Jetway_Hood_Top_Horizontal">
                <ANIM_NAME>Link_Horizontal_Top</ANIM_NAME>
                <PERCENT_PER_SECOND>100</PERCENT_PER_SECOND> <!-- Speed of the animation -->
            </UseTemplate>
            <UseTemplate Name="ASOBO_Jetway_Hood_Top_Vertical">
                <ANIM_NAME>Link_Vertical_Top</ANIM_NAME>
                <PERCENT_PER_SECOND>100</PERCENT_PER_SECOND> <!-- Speed of the animation -->
            </UseTemplate>
            
            <UseTemplate Name="ASOBO_Jetway_Wheel_Roll">
                <ANIM_NAME>Wheel_Rotation</ANIM_NAME>
                <WHEEL_RADIUS>0.41</WHEEL_RADIUS>
            </UseTemplate>
            <UseTemplate Name="ASOBO_Jetway_Wheel_Orientation">
                <ANIM_NAME>Wheel_Orientation</ANIM_NAME>
                <MIN_ANGLE>-90</MIN_ANGLE>
                <MAX_ANGLE>90</MAX_ANGLE>
                <MIN_TO_MAX>1</MIN_TO_MAX> <!-- 1 if the anim starts at min and ends at max -->
                <SPEED>30</SPEED> <!-- degrees per sec -->
                <SMOOTH_TIME_FACTOR>0.3</SMOOTH_TIME_FACTOR>
            </UseTemplate>
            
        </Component>
            
    </Behaviors>
</ModelInfo>
 
Back
Top