• 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.

MSFS Blender Tutorial Animated Jetway HERE!

Part 4 light animation can be downloaded at https://www.flightdeckmagazin.com

It is easy, so I write a summary here:

1. Make a spot light in Blender
2. Choose the color you like
3. Check Symmetrie true
4. Roation Speed = 60
5. Make the Head of the jetway parent to the light
6. Give the Light a name, vor example Rotating Light.

Export like usual.

01.png


The Jetway has some variables and one can be used. “JETWAY MOVING” is true, if the jetways moves and false if not. To use this variable, we need to include "Asobo\Misc\SimObjects.xml" into the Behaviors section of the xml-file. But this should be done earlier to use the Hood-Animations.

<Behaviors>
<Include ModelBehaviorFile="Asobo\Misc\SimObjects.xml"/>
…...

The only new part will be the Component Rotating Light. It is possible to give it another name. But in the Node=”” must be the correct name of the Spot Light.

<Component ID="Rotating_Light" Node="Rotating_Light">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:JETWAY MOVING,bool)</VISIBILITY_CODE>
</UseTemplate>
</Component>

Bool means, the variable can be true or false. If JETWAY MOVING is true, the light is visible, if false, it is not visible.
 
Truly thank you for this! Jetways have been the stumbling block for many scenery developers using Blender. Your article is extremely helpful!
 
Hello, thank you for this great tutorial.
I did everything as in the tutorial (Part1 and Part 2), the compilation runs without errors, but in the simulator, the jetway are invisible.
Maybe someone can help me to solve this?
jetway1.png

jetway2.png

XML:
<?xml version="1.0" ?>



    <ModelInfo version="1.1" guid="{d6990b64-a618-41ad-af9e-5c2e81bf6b79}">

        <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>

            <RotationSpeed>3</RotationSpeed>

        </IKChain>

        <IKConstraint>

            <Node>Rotation_Base</Node>

            <Heading/>

        </IKConstraint>

        <IKConstraint>

            <Node>EmptyPitch</Node>

            <Bank min="-12.6" max="9.3"/>

        </IKConstraint>

        <IKConstraint>

            <Node>Empty01</Node>

            <X min="1.00" max="7.00"/>

        </IKConstraint>

        <IKConstraint>

            <Node>Empty02</Node>

            <X min="1.00" max="7"/>

        </IKConstraint>

        <IKChain Name="IK_SecondaryHandle">

            <Start>Pivot</Start>

            <End>Contact</End>

            <TranslationSpeed>0.4</TranslationSpeed>

            <RotationSpeed>30</RotationSpeed>

        </IKChain>

        <IKConstraint>

            <Node>Pivot</Node>

            <Heading/>

        </IKConstraint>

        <IKChain Name="IK_WheelsGroundLock">

            <Start>SliderTop</Start>

            <End>GroundEmpty</End>

            <TranslationSpeed>10</TranslationSpeed>

            <RotationSpeed>90</RotationSpeed>

        </IKChain>

        <IKConstraint>

            <Node>SliderTop</Node>

            <Y min="4.80" max="4.80"/>

        </IKConstraint>

        <IKConstraint>

            <Node>GroundEmpty</Node>

            <Y min="-4.80" max="-4.80"/>

            <X min="-10.0" max="20.0"/>

        </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>

                </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>

                </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>

                </UseTemplate>

                <UseTemplate Name="ASOBO_Jetway_Hood_Top_Vertical">

                    <ANIM_NAME>Link_Vertical_Top</ANIM_NAME>

                    <PERCENT_PER_SECOND>100</PERCENT_PER_SECOND>

                </UseTemplate>

                <UseTemplate Name="ASOBO_Jetway_Wheel_Roll">

                    <ANIM_NAME>Wheel_Rotation</ANIM_NAME>

                    <WHEEL_RADIUS>0.65</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>

                    <SPEED>30</SPEED>

                    <SMOOTH_TIME_FACTOR>0.3</SMOOTH_TIME_FACTOR>

                </UseTemplate>

            </Component>

        </Behaviors>

    </ModelInfo>
 
Last edited:
Try to see the red 179 errors only (disable the other with clicking on the warnings and messages. Than filter by the name of your model.
 
There will be a mistake in the xml file. For example missing /> or other sign. You could post the file I could have a look on it.
 
There will be a mistake in the xml file. For example missing /> or other sign. You could post the file I could have a look on it.
Thank you !!!
XML:
<?xml version="1.0" encoding="utf-8" ?>
    <ModelInfo version="1.1" guid="{d6990b64-a618-41ad-af9e-5c2e81bf6b79}">
        <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>
            <RotationSpeed>3</RotationSpeed>
        </IKChain>
        <IKConstraint>
            <Node>Rotation_Base</Node>
            <Heading/>
        </IKConstraint>
        <IKConstraint>
            <Node>EmptyPitch</Node>
            <Bank min="-12.6" max="9.3"/>
        </IKConstraint>
        <IKConstraint>
            <Node>Empty01</Node>
            <X min="1.00" max="7.00"/>
        </IKConstraint>
        <IKConstraint>
            <Node>Empty02</Node>
            <X min="1.00" max="7"/>
        </IKConstraint>
        <IKChain Name="IK_SecondaryHandle">
            <Start>Pivot</Start>
            <End>Contact</End>
            <TranslationSpeed>0.4</TranslationSpeed>
            <RotationSpeed>30</RotationSpeed>
        </IKChain>
        <IKConstraint>
            <Node>Pivot</Node>
            <Heading/>
        </IKConstraint>
        <IKChain Name="IK_WheelsGroundLock">
            <Start>SliderTop</Start>
            <End>GroundEmpty</End>
            <TranslationSpeed>10</TranslationSpeed>
            <RotationSpeed>90</RotationSpeed>
        </IKChain>
        <IKConstraint>
            <Node>SliderTop</Node>
            <Y min="4.80" max="4.80"/>
        </IKConstraint>
        <IKConstraint>
            <Node>GroundEmpty</Node>
            <Y min="-4.80" max="-4.80"/>
            <X min="-10.0" max="20.0"/>
        </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>
                </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>
                </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>
                </UseTemplate>
                <UseTemplate Name="ASOBO_Jetway_Hood_Top_Vertical">
                    <ANIM_NAME>Link_Vertical_Top</ANIM_NAME>
                    <PERCENT_PER_SECOND>100</PERCENT_PER_SECOND>
                </UseTemplate>
                <UseTemplate Name="ASOBO_Jetway_Wheel_Roll">
                    <ANIM_NAME>Wheel_Rotation</ANIM_NAME>
                    <WHEEL_RADIUS>0.65</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>
                    <SPEED>30</SPEED>
                    <SMOOTH_TIME_FACTOR>0.3</SMOOTH_TIME_FACTOR>
                </UseTemplate>
            </Component>
        </Behaviors>
    </ModelInfo>
 

Attachments

  • SimObjects.zip
    24 KB · Views: 183
Not sure, seems nothing wrong. I'm using

<IKConstraint>
<Node>Pivot</Node>
<Pitch/>
<Bank/>
<Heading/>
</IKConstraint>

<IKConstraint>
<Node>Slider_Top</Node>
<Y min="4.70" max="4.70"/>
</IKConstraint>

<IKConstraint>
<Node>Ground_Empty</Node>
<Y min="-4.7 m" max="-4.7 m"/>
<X/>
<Bank/>
</IKConstraint>

With <X/> it is free to move on this axis as needed. And pitch and bank in Pivot helps to have the same upright position of the hood for connecting to the aircraft.

And I am using LODs which are named in the xml. This is the only difference I could see. Maybe there is a mistake in your model because the error is from loading the model. Because there is no model name in the xml, the message is only with the name of the xml file. I would use LODs in the xml and than the message would be better to understand.

Be aware FS2020 use the distance to the node before in the chain if distances are calculated. So you must set slidertop parent to emptyground without inverse option and than move it to the down position.
 
I opened the gtlf file. The names are all different from the xml file. Empty01 in xml, Empty_01 in the model. The same for other nodes.
A model can only be loaded if the names are in both files the same.
 
Hello and thank you for this great tutorial.

I can't animate part 3.
Losco Nosciuto came up with a very nice result, can he explain how he did it? or make a tutorial?
At what moment to animate the part A?
It stays straight and does not follow the bones.
I managed to animate the whole jetway, it approaches and connects to the plane but the "Bellows" does not unfold correctly and the top is all twisted.
If anyone can help me with this part 3 it would be great.
Thanks to all.
André
 
Sometimes doing it perfect is too much. I will upload a new version of the tutorial 3 tomorrow and also post a picture here how to do it without any deformation and without weight painting. But now I'm too tired.
 
Hello and thank you.
I really appreciate your work, sharing has become rare in our community.
It is comforting to see that there are still people like you.
Sincerely.
 
So busy, so a short summary:

1. The hood should only use 4 bones each side for the bending part. Maybe like this:
Unbenannt.png

The two top bones are not on the picture, but they are also needed. If I used more than these 4 bones to make the bending more smooth, the hood was always deformed after export from Blender. Even if I made weight painting and it looks perfect in Blender. The result was always not pretty enough. The hood should be around 3.15 m width. If it is smaller, the doors of the A320 will go through the hood. But with 4 bones the hood looks perfect.

2. Make the animations only with the bones first to watch later the movement of the meshes.

3. The hood and the part which is connecting to the fuselage have different materials and are 2 objects. BUT when I use two different materials, I could join them in Blender to get one object before weight painting.

4. If the hood now is one object and it is aligned perfect on all axis, it is possible to add the bones as parent with automatic weights. Before doing this, activate in Weight Paint the option to normalize automatic, so that the sum for every vertex will be 1.

5. Add for the 2 top bones manually weights. Mask with select only the first row of vertices which are part of the main hood and the whole part which is from the other material. Check the hood is moving like you want.

6. Select in Edit mode the material of the part, which is touching the fuselage and seperate it from the mesh. Now you have 2 objects like before, but the vertices in the connection area have the same weight painting and will move together. This way there will be no gap between the two objects during animation and they are still have the armature as parent with all vertices perfect normalized.

7. All animations start with 1, so I do now use 1 to 18 and not 0 to 17 for the top bones now.

8. The top and bending bone animations are working together. To get the door nearer to the fuselage at the cockpit side, the bending here (left side) must be more than on the right side. I do not understand how it exactly is controlled by the simulator, so it needs a little bit try and error before the animations fits perfect to the airplane fuselage.
 
Thank you Peter.
If I can get back to work today, I will try this method. Have a nice day.
Sincerely
 
I opened the gtlf file. The names are all different from the xml file. Empty01 in xml, Empty_01 in the model. The same for other nodes.
A model can only be loaded if the names are in both files the same.
Thank you !!!!!!!!!!!!!!! I fix names and now everything works !!!!!!!!!!!!!
 
Original post here. See below for edit:
Hi!
I'm using the same method of empties for the jetway and armature for the hood, but I have a problem. All the animations of the hood armature are synced together in msfs, so the left and right side of the hood do not curve separately.
When I try using empties and small boxes for the hood I can see everything working fine with left and right side curving correctly and differently, so I assume I must be doing something wrong causing the NLA tracks of the armature to mix together during export.

Empties animating correctly:
1635357421646.png


Armature not animating correctly. Every animation track is synced together and operating at the same time:
1635357491722.png


May I ask which version of blender and exporter you're using?


EDIT: Partially solved!

I solved this issue by exporting with the standard blender gltf format (not the blender to msfs exporter) and unticked the box "Always Sample Animations".
This stops the tracks from blending together. This can't currently be unticked in the blender2msfs2 exporter, but I was able to disable by default by editing the __init__.py file in the \exporter\ folder in the blender2msfs2 addon.
It looks like it can be properly unticked in the FBW blender exporter too.


1635360525582.png


Edit again:
Version of blender2msfs with checkbox added: https://github.com/tml1024/Blender2MSFS2/issues/5
 
Last edited:
Hi to all.
I'm reading the guide (@Peter Hornfeck Thanks) to try and build one. I haven't started yet but I have a doubt. In the airport I am creating, the jetways are fixed to the ground and can only lift and extend but don't rotate. From what I understand from the tutorial there is no way to avoid this movement, it's right? If it were possible how should I do?
 
Last edited:
Hi to all.
I'm reading the guide (@Peter Hornfeck Thanks) to try and build one. I haven't started yet but I have a doubt. In the airport I am creating, the jetways are fixed to the ground and can only lift and extend but don't rotate. From what I understand from the tutorial there is no way to avoid this movement, it's right? If it were possible how should I do?
You decide which joints can extend/rotate in the xml file. You can check out my ENBR scenery at flightsim .to to see two alternative jetway setups. One lifts and extends while the other lifts and slides sideways.
The issue with this is that you can't completely lock the ground legs to the ground. Only in height. So you have to be strategic in where you connect them to the jetway.
 
You decide which joints can extend/rotate in the xml file. You can check out my ENBR scenery at flightsim .to to see two alternative jetway setups. One lifts and extends while the other lifts and slides sideways.
The issue with this is that you can't completely lock the ground legs to the ground. Only in height. So you have to be strategic in where you connect them to the jetway.
Thanks. I go to see :)

ICAO is not new to me, I also think I have already downloaded it
 
Original post here. See below for edit:
Hi!
I'm using the same method of empties for the jetway and armature for the hood, but I have a problem. All the animations of the hood armature are synced together in msfs, so the left and right side of the hood do not curve separately.
When I try using empties and small boxes for the hood I can see everything working fine with left and right side curving correctly and differently, so I assume I must be doing something wrong causing the NLA tracks of the armature to mix together during export.

Empties animating correctly:
View attachment 77743

Armature not animating correctly. Every animation track is synced together and operating at the same time:
View attachment 77744

May I ask which version of blender and exporter you're using?


EDIT: Partially solved!

I solved this issue by exporting with the standard blender gltf format (not the blender to msfs exporter) and unticked the box "Always Sample Animations".
This stops the tracks from blending together. This can't currently be unticked in the blender2msfs2 exporter, but I was able to disable by default by editing the __init__.py file in the \exporter\ folder in the blender2msfs2 addon.
It looks like it can be properly unticked in the FBW blender exporter too.


View attachment 77746

Edit again:
Version of blender2msfs with checkbox added: https://github.com/tml1024/Blender2MSFS2/issues/5
Hi,

I used this new exporter, but I ran into an issue with it where unticking the box would cause the wheel animation to not work anymore. The Hood works fine.

If I tick the box again the wheel animation works fine, then the hood doesn't work.

Did you have similar issues, Any ideas?
 
Back
Top