-
Notifications
You must be signed in to change notification settings - Fork 2
Import Conversion Notes
Skeletal animations are supported, experimentally. A model needs to be loaded with all of its animations in the same import run. If the animation exists in a separate egg file, this means that the model file and all of its animation files will need to be selected in the file selector dialog.
Animations are not automatically bound to their corresponding armature, except if they have the exact same name and the "Auto bind" option has been checked. To see an imported animation, you will need to select the armature, go to the Dope Sheet window, bring up the Action Editor, and select the appropriate action.
By default, external references are imported as Empty with a "file" game property, which is a special property that is translated back into the appropriate syntax by YABEE.
If the optional checkbox titled "Load external instances" is ticked, each of the referenced files will be loaded as a separate scene, grouped, and instanced to the Empty using the DupliGroup functionality in Blender (2.79). These are ignored by YABEE, so the external references are preserved.
Beware that the required syntax for external references is rather restrictive. This is what an external reference generated by YABEE looks like, which is supported:
<Group> something {
<Transform> { ... }
<Instance> { <File> { filename.egg } }
}
The format used by flt2egg is also supported, with the transform exclusively inside the instance:
<Group> something {
<Instance> {
<Transform> { ... }
<File> { filename.egg }
}
}
If you have files containing external references in a different configuration, please create an issue on GitHub and attach the model in question.
Recursive references are not supported at present.
The importer attempts to create a completely accurate representation of the model in Blender. This means that it will only avoid importing a custom set of normal data if it can prove that Blender would generate the same normals.
In many cases it will not be able to prove this, so it may unnecessarily create Split Normals Data for your mesh. This may make the normals of the mesh look funny in Blender after editing or animation.
To disable this, select the Mesh data tab, and under "Geometry Data", click "Clear Custom Split Normals Data". You may also want to disable "Auto Smooth" if desired.
When Blender imports the texture files as defined in the egg file, it will create a corresponding material for the texture. Materials are created as the importer iterates through the <Polygon>
nodes, meaning:
If you have a <Polygon>
with two or more assigned <TRef>
s, it will create a new material with those aggregated textures.
<Texture> lambert3SG {
foo.png
...
}
<Texture> lambert2SG {
bar.png
...
}
...
<Polygon> {
<Normal> { -1 0 0 }
<TRef> { lambert3SG }
<TRef> { lambert2SG }
<VertexRef> { 0 3 9 6 <Ref> { pCubeShape2.verts } }
}
Will create a new material named lambert3SG_lambert2SG
that provides the registered texture paths foo.png and bar.png
<Tag>
nodes will automatically be translated into StringProperties, with the key becoming the property name and the value as it's default value.
For example,
<Group> example {
<Tag> foo { bar }
}
Will give the example
group a StringProperty named foo
with the value bar
. Note that Blender does not support multiple properties with the same keyword.
<ObjectType>
s will be imported with ObjectType[n]
with the keyword, starting from n=1.
For example,
<Group> example {
<ObjectType> { dual }
<ObjectType> { collide }
}
Will give the example
group a StringProperty named ObjectType1
with value dual
and another StringProperty named ObjectType2
with value collide
. The delimiter resets for each node.
Notice: Egg exporters will not automatically translate this back to an <ObjectType>
!