[MSFS 2024] Model Attachments - Sub Model Merging - Blender plugin does not have this functionality?

Both the Model Attachment section and Sub Model Merging have the warning that the Blender plugin does not have this functionality. Should us Blendarians be worried?

What does this statement pertain to?

1 Like

I am not sure. This related to the Asobo UniqueID functionality not being present in the Blender Plug-i for FS-2020. However it is now there, and as a matter of fact, I have been using Model Attachments with Blender for aeons now.
I think this is just a DOC issue.

Is there any tutorial how to do that in Blender?
I have never used it because the documentation said it wont work in Blender.
But I think it is a great tool especially with 2024 agressive LOD system.

Thanks!

1 Like

The UniqueID functionality is enabled by default I think.
All you have to do is export your models. Use collections as usual. Then simply follow the SDK on how to setup the XML files.
Here is my usage of submodel merging for Interior model, as an example:

	<LODS>
		<!-- Highest LOD -->
		<!-- minimum display size in % (should be bounding sphere vertical screen size, sphere will often be slightly larger than you expect) -->
		<!-- default minSize is 0 -->
		<LOD minSize="50" ModelFile="MN_FN333_INT.gltf">
			<MergeModel>MN_FN333_INT_L0.gltf</MergeModel>
		</LOD>
		
		<LOD minSize="3" ModelFile="MN_FN333_INT.gltf">
			<MergeModel>MN_FN333_INT_L1.gltf</MergeModel>
		</LOD>	
		
		<LOD minSize="0" ModelFile="MN_FN333_INT.gltf"/>
		<!--LOD minSize="0" ModelFile="MN_FN333_INT_L2.gltf"/-->
	</LODS>

This is controlled by this model.cfg:

withExterior_showInterior=true
withExterior_showInterior_hideFirstLod=true
withInterior_showExterior=true

[models]
normal=MN_FN333_EXT.xml
interior=MN_FN333_INT.xml

MN_FN333_INT is a “common” interior model.

  • Contains the cabin.

INT_L0 is only visible in interior view

  • Contains all interactables, instruments, and tiny details

INT_L2 only on exterior.

  • Contains only pilot attachpoints and passenger models
2 Likes

Yes Unique ID is part of the attachment and sub model merging functionality. However I am trying to understand how it is used in a Blender context. The SDK says it’s not a function of the Blender Plugin. So if we must use this functionality for the “aggressive LOD” feature, we can’t?

Are We Blendarians second class again?

The attachments and sub model merging parts of the SDK are just copy paste form 2020. And it’s still a Beta feature?

Unique ID is a manual process as stated in the SDK. GO to the object properties panel and check the unique id - then on export you also check (enabled by default) the export unique ID.

The 2020 code does seem to ignore that as there is no export uniqueid in the function that exports the gltf like in 2024.

    def gather_node_hook(self, gltf2_object, blender_object, export_settings):
        msfs_parameters = bpy.context.scene.msfs_multi_exporter_settings
        if not msfs_parameters.enable_msfs_extension:
            return
        
        if msfs_parameters.remove_lod_prefix:
            MSFS2024_NodeUtils.removeLodPrefix(gltf2_object)

        AsoboUniqueId.export(gltf2_object, blender_object)    <------------- this line is missing in 2020
        MSFS2024_LightExtension.export(gltf2_object, blender_object)
        AsoboSoftBodyMesh.export(gltf2_object, blender_object)
        return

But what does your blend file look like - is it a separate blend file of just the sub model with it positioned at 0,0,0 - or is it part of the main model in your blend file and you have a collection set up for the sub model with an empty to give it a position to merge too.

And how is it different from Attachments?

I can only speak for submodel merging, not model attachments, as I have not used them.

I keep all in a single blender file.
The submodel is in its own collection. There are several objects immediately behind the collection. Even if their position is not at 0,0,0 they do not get translated around, and appear in MSFS exactly as they do on the blender scene.
My model is a bit disordered, and you may indeed want to put everything under an empty or a master object (like the main fuselage, or cabin objects).

However, nothing keeps you from putting your submodels on different blend files if you prefer so.

1 Like

So … this
Reset Node Origin
Remove LOD prefix
Merge nodes

If I looked closer I would see the answer.

Only in multi exporter - not in basic export - So everyone should learn the multi exporter in Blender.

Thanks! Basically what I was looking for is an option where I can for example place dummy objects in the scene and tell to MSFS that on these location render a submodel.
For example I have a building, and on several places on the wall I want to place an another model referencing with its GUID. The position and the scale of the dummy is respected accordingly.
Is it possible?

To be hones I thought this should be the option to do that:

image

We have no SDK documentation on how this all works in Blender - My whole point of this thread is to understand submodel merging, attachments, unique ids - new export translation functionality and new dynamic liveries.

sub model merging and attachments were beta features in 2020, now I believe they are required workflows with the new 2024 sim LODs and career modes requirements.

2020
Monolithic LODs
Basic Liveries
sub model merging
unique IDs

2024
Monolithic LODs
sub model merging LODs
attachments LODs
Basic Liveries
Dynamic Liveries
unique IDs LODs
navigation graphs
presets
common models
attachment models

I agree, somebody should shed some light on this topic.
I have seen the simprop container which is also a tool similar that I described above but I am afraid that assembling models in the editor will never be so precise if I do it in blender directly. In blender I have thousands of aligning methods, scaling rotating switching between views, ortho and perspective. In the editor sometimes a simple object row placement is very hard.

Hello,

These options are the same available in 3dsmax to allow you to export your models in a certain way depending on what is used for:

Flatten nodes equals Merge nodes in Blender.

The Reset Node Origin allow you to export your model with it’s root at (0, 0, 0).

The submodel export is not an option in Blender because we don’t need it to make it work, as long as you separate your objects in different collection even if they are skinned to the same rig, your export will be correct for the sim.

The submodel export is not an option in Blender because we don’t need it to make it work, as long as you separate your objects in different collection even if they are skinned to the same rig, your export will be correct for the sim.

Is that also true for exporting gltfs to use for model attachments in blender?

Yes, it is. We will update the docs to give more information about it.

Yasmine