Extra Data Nodes - BadDogSkyrim/PyNifly GitHub Wiki
Extra data nodes are imported along with the nif. These nodes may be at the top level or the Shape level. Custom Properties on the shape hold the special data about the node.
Nodes handled correctly:
- BSBehaviorGraphExtraData - Attaches animations to the nif.
- NiStringExtraData - Used in a wide variety of ways. Essentially a name/value pair.
- BSClothExtraData - Physics for cloth and hair in Fallout 4. The value is a blob of data. Just copy the Blender object as needed.
- BSInvMarker - Contains a transform for viewing the mesh in the player's inventory.
- BSXFlags - Contains a set of flags defining how the game should handle the mesh. See "BSX Flags" below.
- BSFurnitureMarkerNode - Anchors interactions with furniture animations.
Because each of these are are their own node in the nif file, they are represented as Empty shapes in Blender.
- The name indicates the type of extra data node. The exporter looks for the name/value pairs in the custom properties rather than at the name itself, so you can rename these objects freely (except BSFurnitureMarkerNode, which has to have that name with any suffix).
- The *_Name custom property captures the name of the value
- The *_Value property captures the value
- If at the top level, they are put under the single collection that holds the entire import
- If under a shape, their parent is set to the shape.
NOTE that if the extra data is under a shape, it will be exported with the shape. If it's at the top level you have to select it explicitly for it to be included in the export.
BSX Flags
ANIMATED = 1
HAVOC = 1 << 1
RAGDOLL = 1 << 2
COMPLEX = 1 << 3
ADDON = 1 << 4
EDITOR_MARKER = 1 << 5
DYNAMIC = 1 << 6
ARTICULATED = 1 << 7
NEEDS_XFORM_UPDATES = 1 << 8
EXTERNAL_EMIT = 1 << 9
MAGIC_SHADER_PARTICLES = 1 << 10
LIGHTS = 1 << 11
BREAKABLE = 1 << 12
Furniture Animation Type
SIT = 1
SLEEP = 2
LEAN = 4
Furniture Entry Points
FRONT = 1
BEHIND = 1 << 1
RIGHT = 1 << 2
LEFT = 1 << 3
UP = 1 << 4