pyffi.formats.nif
— NetImmerse/Gamebryo (.nif and .kf)¶
Implementation¶
-
class
pyffi.formats.nif.
NifFormat
[source]¶ Bases:
pyffi.object_models.xml.FileFormat
This class contains the generated classes from the xml.
-
ARCHIVE_CLASSES
= [<class 'pyffi.formats.bsa.BsaFormat'>]¶
-
class
ATextureRenderData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._ATextureRenderData
,object
-
class
AVObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Used in NiDefaultAVObjectPalette.
-
property
av_object
¶ Object reference.
-
property
name
¶ Object name.
-
property
-
class
AbstractAdditionalGeometryData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
class
AdditionalDataBlock
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
block_offsets
¶ Unknown
-
property
block_size
¶ Size of Block
-
property
data
¶ Unknown
-
property
data_sizes
¶ Unknown
-
property
has_data
¶ Has data
-
property
num_blocks
¶ Unknown
-
property
num_data
¶ Unknown
-
property
-
class
AdditionalDataInfo
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
block_index
¶ Unsure. The block in which this channel is stored? Usually there is only one block, and so this is zero.
-
property
channel_offset
¶ Offset (in bytes) of this channel. Sum of all num channel bytes per element of all preceeding block infos.
-
property
data_type
¶ Type of data in this channel
-
property
num_channel_bytes
¶ Total number of bytes of this channel (num vertices times num bytes per element)
-
property
num_channel_bytes_per_element
¶ Number of bytes per element of this channel
-
property
num_total_bytes_per_element
¶ Number of bytes per element in all channels together. Sum of num channel bytes per element over all block infos.
-
property
unknown_byte_1
¶ Unknown, usually equal to 2.
-
property
-
class
AlphaFormat
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing how transparency is handled in a texture.
-
ALPHA_BINARY
= 1¶
-
ALPHA_DEFAULT
= 3¶
-
ALPHA_NONE
= 0¶
-
ALPHA_SMOOTH
= 2¶
-
-
class
AnimationType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Animation type used on this position. This specifies the function of this position.
-
Lean
= 4¶
-
Sit
= 1¶
-
Sleep
= 2¶
-
-
class
ApplyMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing the apply mode of a texture.
-
APPLY_DECAL
= 1¶
-
APPLY_HILIGHT
= 3¶
-
APPLY_HILIGHT2
= 4¶
-
APPLY_MODULATE
= 2¶
-
APPLY_REPLACE
= 0¶
-
-
class
ArkTexture
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A texture reference used by NiArkTextureExtraData.
-
property
texture_name
¶
-
property
texturing_property
¶
-
property
unknown_bytes
¶
-
property
unknown_int_3
¶
-
property
unknown_int_4
¶
-
property
-
class
AvoidNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Morrowind specific?
-
class
BSAnimNotes
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Bethesda-specific node.
-
property
unknown_short_1
¶ Unknown
-
property
-
class
BSBehaviorGraphExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Links a nif with a Havok Behavior .hkx animation file
-
property
behaviour_graph_file
¶ Name of the hkx file.
-
property
controls_base_skeleton
¶ Unknown, has to do with blending appended bones onto an actor.
-
property
-
class
BSBlastNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
-
class
BSBoneLODExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown
-
property
bone_l_o_d_count
¶ Number of bone entries
-
property
bone_l_o_d_info
¶ Bone Entry
-
property
-
class
BSBound
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._BSBound
,object
-
class
BSDamageStage
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
-
class
BSDebrisNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
-
class
BSDecalPlacementVectorExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Bethesda-specific node. (for dynamic decal projection?)
-
property
num_vector_blocks
¶ Number of groups
-
property
unknown_float_1
¶ Unknown
-
property
vector_blocks
¶ Number of Blocks
-
property
-
class
BSDismemberBodyPartType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Biped bodypart data used for visibility control of triangles. Options are Fallout 3, except where marked for Skyrim (uses SBP prefix)Skyrim BP names are listed only for vanilla names, different creatures have different defnitions for naming.
-
BP_BRAIN
= 13¶
-
BP_HEAD
= 1¶
-
BP_HEAD2
= 2¶
-
BP_LEFTARM
= 3¶
-
BP_LEFTARM2
= 4¶
-
BP_LEFTLEG
= 7¶
-
BP_LEFTLEG2
= 8¶
-
BP_LEFTLEG3
= 9¶
-
BP_RIGHTARM
= 5¶
-
BP_RIGHTARM2
= 6¶
-
BP_RIGHTLEG
= 10¶
-
BP_RIGHTLEG2
= 11¶
-
BP_RIGHTLEG3
= 12¶
-
BP_SECTIONCAP_BRAIN
= 113¶
-
BP_SECTIONCAP_HEAD
= 101¶
-
BP_SECTIONCAP_HEAD2
= 102¶
-
BP_SECTIONCAP_LEFTARM
= 103¶
-
BP_SECTIONCAP_LEFTARM2
= 104¶
-
BP_SECTIONCAP_LEFTLEG
= 107¶
-
BP_SECTIONCAP_LEFTLEG2
= 108¶
-
BP_SECTIONCAP_LEFTLEG3
= 109¶
-
BP_SECTIONCAP_RIGHTARM
= 105¶
-
BP_SECTIONCAP_RIGHTARM2
= 106¶
-
BP_SECTIONCAP_RIGHTLEG
= 110¶
-
BP_SECTIONCAP_RIGHTLEG2
= 111¶
-
BP_SECTIONCAP_RIGHTLEG3
= 112¶
-
BP_TORSO
= 0¶
-
BP_TORSOCAP_BRAIN
= 213¶
-
BP_TORSOCAP_HEAD
= 201¶
-
BP_TORSOCAP_HEAD2
= 202¶
-
BP_TORSOCAP_LEFTARM
= 203¶
-
BP_TORSOCAP_LEFTARM2
= 204¶
-
BP_TORSOCAP_LEFTLEG
= 207¶
-
BP_TORSOCAP_LEFTLEG2
= 208¶
-
BP_TORSOCAP_LEFTLEG3
= 209¶
-
BP_TORSOCAP_RIGHTARM
= 205¶
-
BP_TORSOCAP_RIGHTARM2
= 206¶
-
BP_TORSOCAP_RIGHTLEG
= 210¶
-
BP_TORSOCAP_RIGHTLEG2
= 211¶
-
BP_TORSOCAP_RIGHTLEG3
= 212¶
-
BP_TORSOSECTION_BRAIN
= 13000¶
-
BP_TORSOSECTION_HEAD
= 1000¶
-
BP_TORSOSECTION_HEAD2
= 2000¶
-
BP_TORSOSECTION_LEFTARM
= 3000¶
-
BP_TORSOSECTION_LEFTARM2
= 4000¶
-
BP_TORSOSECTION_LEFTLEG
= 7000¶
-
BP_TORSOSECTION_LEFTLEG2
= 8000¶
-
BP_TORSOSECTION_LEFTLEG3
= 9000¶
-
BP_TORSOSECTION_RIGHTARM
= 5000¶
-
BP_TORSOSECTION_RIGHTARM2
= 6000¶
-
BP_TORSOSECTION_RIGHTLEG
= 10000¶
-
BP_TORSOSECTION_RIGHTLEG2
= 11000¶
-
BP_TORSOSECTION_RIGHTLEG3
= 12000¶
-
SBP_130_HEAD
= 130¶
-
SBP_131_HAIR
= 131¶
-
SBP_141_LONGHAIR
= 141¶
-
SBP_142_CIRCLET
= 142¶
-
SBP_143_EARS
= 143¶
-
SBP_150_DECAPITATEDHEAD
= 150¶
-
SBP_230_HEAD
= 230¶
-
SBP_30_HEAD
= 30¶
-
SBP_31_HAIR
= 31¶
-
SBP_32_BODY
= 32¶
-
SBP_33_HANDS
= 33¶
-
SBP_34_FOREARMS
= 34¶
-
SBP_35_AMULET
= 35¶
-
SBP_36_RING
= 36¶
-
SBP_37_FEET
= 37¶
-
SBP_38_CALVES
= 38¶
-
SBP_39_SHIELD
= 39¶
-
SBP_40_TAIL
= 40¶
-
SBP_41_LONGHAIR
= 41¶
-
SBP_42_CIRCLET
= 42¶
-
SBP_43_EARS
= 43¶
-
SBP_44_DRAGON_BLOODHEAD_OR_MOD_MOUTH
= 44¶
-
SBP_45_DRAGON_BLOODWINGL_OR_MOD_NECK
= 45¶
-
SBP_46_DRAGON_BLOODWINGR_OR_MOD_CHEST_PRIMARY
= 46¶
-
SBP_47_DRAGON_BLOODTAIL_OR_MOD_BACK
= 47¶
-
SBP_48_MOD_MISC1
= 48¶
-
SBP_49_MOD_PELVIS_PRIMARY
= 49¶
-
SBP_50_DECAPITATEDHEAD
= 50¶
-
SBP_51_DECAPITATE
= 51¶
-
SBP_52_MOD_PELVIS_SECONDARY
= 52¶
-
SBP_53_MOD_LEG_RIGHT
= 53¶
-
SBP_54_MOD_LEG_LEFT
= 54¶
-
SBP_55_MOD_FACE_JEWELRY
= 55¶
-
SBP_56_MOD_CHEST_SECONDARY
= 56¶
-
SBP_57_MOD_SHOULDER
= 57¶
-
SBP_58_MOD_ARM_LEFT
= 58¶
-
SBP_59_MOD_ARM_RIGHT
= 59¶
-
SBP_60_MOD_MISC2
= 60¶
-
SBP_61_FX01
= 61¶
-
-
class
BSDismemberSkinInstance
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._BSDismemberSkinInstance
,object
-
class
BSDistantTreeShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node.
-
class
BSEffectShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Skyrim non-PP shader model, used primarily for transparency effects, often as decal.
-
property
emissive_color
¶ Emissive color
-
property
emissive_multiple
¶ Multiplier for Emissive Color (RGB part)
-
property
falloff_start_angle
¶ At this cosine of angle falloff will be equal to Falloff Start Opacity
-
property
falloff_start_opacity
¶ Alpha falloff multiplier at start angle
-
property
falloff_stop_angle
¶ At this cosine of angle falloff will be equal to Falloff Stop Opacity
-
property
falloff_stop_opacity
¶ Alpha falloff multiplier at end angle
-
property
greyscale_texture
¶ Points to an external texture, used as palette for SLSF1_Greyscale_To_PaletteColor/SLSF1_Greyscale_To_PaletteAlpha.
-
property
shader_flags_1
¶
-
property
shader_flags_2
¶
-
property
soft_falloff_depth
¶
-
property
source_texture
¶ points to an external texture.
-
property
texture_clamp_mode
¶ How to handle texture borders.
-
property
uv_offset
¶ Offset UVs
-
property
uv_scale
¶ Offset UV Scale to repeat tiling textures
-
property
-
class
BSEffectShaderPropertyColorController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
This controller is used to animate colors in BSEffectShaderProperty.
-
property
type_of_controlled_color
¶ Which color in BSEffectShaderProperty to animate:
-
property
-
class
BSEffectShaderPropertyFloatController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
This controller is used to animate float variables in BSEffectShaderProperty.
-
property
type_of_controlled_variable
¶ Which float variable in BSEffectShaderProperty to animate:
-
property
-
class
BSFadeNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-specific fade node.
-
class
BSFrustumFOVController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Bethesda-specific node.
-
property
interpolator
¶ Frustrum field of view animation interpolater and data.
-
property
-
class
BSFurnitureMarker
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown. Marks furniture sitting positions?
-
property
num_positions
¶ Number of positions.
-
property
positions
¶ Unknown. Probably has something to do with the furniture positions?
-
property
-
class
BSFurnitureMarkerNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSFurnitureMarker
Furniture Marker for actors
-
class
BSInvMarker
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Orientation marker for Skyrim’s inventory view.How to show the nif in the player’s inventory.Typically attached to the root node of the nif tree.If not present, then Skyrim will still show the nif in inventory,using the default values.Name should be ‘INV’ (without the quotes).For rotations, a short of “4712” appears as “4.712” but “959” appears as “0.959” meshesweaponsdaedricdaedricbowskinned.nif
-
property
rotation_x
¶
-
property
rotation_y
¶
-
property
rotation_z
¶
-
property
zoom
¶ Zoom factor.
-
property
-
class
BSKeyframeController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyframeController
An extended keyframe controller.
-
property
data_2
¶ A link to more keyframe data.
-
property
-
class
BSLODTriShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriBasedGeom
A variation on NiTriShape, for visibility control over vertex groups.
-
property
level_0_size
¶ Unknown
-
property
level_1_size
¶ Unknown
-
property
level_2_size
¶ Unknown
-
property
-
class
BSLagBoneController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
A controller that trails a bone behind an actor.
-
property
linear_rotation
¶ How the bone lags rotation
-
property
linear_velocity
¶ How long it takes to rotate about an actor back to rest position.
-
property
maximum_distance
¶ How far bone will tail an actor.
-
property
-
class
BSLeafAnimNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Unknown, related to trees.
-
class
BSLightingShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Skyrim PP shader for assigning material/shader/texture.
-
property
alpha
¶ The material’s opacity (1=non-transparent).
-
property
emissive_color
¶ Glow color and alpha
-
property
emissive_multiple
¶ Multiplied emissive colors
-
property
environment_map_scale
¶ Scales the intensity of the environment/cube map. (0-1)
-
property
eye_cubemap_scale
¶ Eye cubemap scale
-
property
glossiness
¶ The material’s specular power, or glossiness (0-999).
-
property
hair_tint_color
¶ Tints the base texture. Overridden by game settings.
-
property
left_eye_reflection_center
¶ Offset to set center for left eye cubemap
-
property
lighting_effect_1
¶ Controls strength for envmap/backlight/rim/softlight lighting effect?
-
property
lighting_effect_2
¶ Controls strength for envmap/backlight/rim/softlight lighting effect?
-
property
max_passes
¶ Max Passes
-
property
parallax_envmap_strength
¶ How strong the environment/cube map is. (0-??)
-
property
parallax_inner_layer_texture_scale
¶ Scales the inner parallax layer texture.
-
property
parallax_inner_layer_thickness
¶ How far from the surface the inner layer appears to be.
-
property
parallax_refraction_scale
¶ Depth of inner parallax layer effect.
-
property
refraction_strength
¶ The amount of distortion. Not based on physically accurate refractive index (0=none) (0-1)
-
property
right_eye_reflection_center
¶ Offset to set center for right eye cubemap
-
property
scale
¶ Scale
-
property
shader_flags_1
¶ Skyrim Shader Flags for setting render/shader options.
-
property
shader_flags_2
¶ Skyrim Shader Flags for setting render/shader options.
-
property
skin_tint_color
¶ Tints the base texture. Overridden by game settings.
-
property
sparkle_parameters
¶ Unknown/unused? CK lists “snow material” when used.
-
property
specular_color
¶ Adds a colored highlight.
-
property
specular_strength
¶ Brightness of specular highlight. (0=not visible) (0-999)
-
property
texture_clamp_mode
¶ How to handle texture borders.
-
property
texture_set
¶ Texture Set, can have override in an esm/esp
-
property
uv_offset
¶ Offset UVs
-
property
uv_scale
¶ Offset UV Scale to repeat tiling textures, see above.
-
property
-
class
BSLightingShaderPropertyColorController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
This controller is used to animate colors in BSLightingShaderProperty.
-
property
type_of_controlled_color
¶ Which color in BSLightingShaderProperty to animate:
-
property
-
class
BSLightingShaderPropertyFloatController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
This controller is used to animate float variables in BSLightingShaderProperty.
-
property
type_of_controlled_variable
¶ Which float variable in BSLightingShaderProperty to animate:
-
property
-
class
BSLightingShaderPropertyShaderType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Values for configuring the shader type in a BSLightingShaderProperty
-
Default
= 0¶
-
Heightmap
= 3¶
-
WorldMap1
= 9¶
-
WorldMap2
= 13¶
-
WorldMap3
= 15¶
-
WorldMap4
= 18¶
-
-
class
BSMasterParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
max_emitter_objects
¶ Unknown
-
property
num_particle_systems
¶ Unknown
-
property
particle_systems
¶ Unknown
-
property
-
class
BSMaterialEmittanceMultController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Bethesda-Specific node.
-
class
BSMultiBound
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Bethesda-specific node.
-
property
data
¶ Unknown.
-
property
-
class
BSMultiBoundAABB
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSMultiBoundData
Bethesda-specific node.
-
property
extent
¶ Extent of the AABB in all directions
-
property
position
¶ Position of the AABB’s center
-
property
-
class
BSMultiBoundData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Abstract base type for bounding data.
-
class
BSMultiBoundNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-specific node.
-
property
multi_bound
¶ Unknown.
-
property
unknown_int
¶ Unknown
-
property
-
class
BSMultiBoundOBB
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSMultiBoundData
Oriented bounding box.
-
property
center
¶ Center of the box.
-
property
rotation
¶ Rotation of the bounding box.
-
property
size
¶ Size of the box along each axis.
-
property
-
class
BSMultiBoundSphere
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSMultiBoundData
Bethesda-specific node.
-
property
radius
¶ Radius
-
property
unknown_int_1
¶ Unknown Flag
-
property
unknown_int_2
¶ Unknown Flag
-
property
unknown_int_3
¶ Unknown Flag
-
property
-
class
BSNiAlphaPropertyTestRefController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAlphaController
Unkown
-
class
BSOrderedNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
alpha_sort_bound
¶ Unknown
-
property
is_static_bound
¶ Unknown
-
property
-
class
BSPSysArrayEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysVolumeEmitter
Particle emitter that uses a node, its children and subchildren to emit from. Emission will be evenly spread along points from nodes leading to their direct parents/children only.
-
class
BSPSysHavokUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
modifier
¶ Unknown
-
property
nodes
¶ Group of target NiNodes?
-
property
num_nodes
¶ Unknown
-
property
-
class
BSPSysInheritVelocityModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_float_3
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
-
class
BSPSysLODModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
uknown_float_1
¶ Unknown
-
property
uknown_float_2
¶ Unknown
-
property
uknown_float_3
¶ Unknown
-
property
uknown_float_4
¶ Unknown
-
property
-
class
BSPSysMultiTargetEmitterCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
Particle system (multi?) emitter controller.
-
property
data
¶ This controller’s data
-
property
unknown_int_1
¶ Unknown
-
property
unknown_short_1
¶ Unknown
-
property
visibility_interpolator
¶ Links to a bool interpolator. Controls emitter’s visibility status?
-
property
-
class
BSPSysRecycleBoundModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_float_3
¶ Unknown
-
property
unknown_float_4
¶ Unknown
-
property
unknown_float_5
¶ Unknown
-
property
unknown_float_6
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
-
class
BSPSysScaleModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
floats
¶ Unknown
-
property
num_floats
¶
-
property
-
class
BSPSysSimpleColorModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Bethesda-Specific Particle node.
-
property
color_1_end_percent
¶ Unknown
-
property
color_1_start_percent
¶ Unknown
-
property
color_2_end_percent
¶ Unknown
-
property
color_2_start_percent
¶ Unknown
-
property
colors
¶ Colors
-
property
fade_in_percent
¶ Unknown
-
property
fade_out_percent
¶ Unknown
-
property
-
class
BSPSysStripUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Bethesda-Specific (mesh?) Particle System Modifier.
-
property
update_delta_time
¶ Unknown
-
property
-
class
BSPSysSubTexModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Similar to a Flip Controller, this handles particle texture animation on a single texture atlas
-
property
end_frame
¶ Ending frame/position on atlas
-
property
frame_count
¶ Unknown
-
property
frame_count_fudge
¶ Unknown
-
property
loop_start_frame
¶ Frame to start looping
-
property
loop_start_frame_fudge
¶
-
property
start_frame
¶ Starting frame/position on atlas
-
property
start_frame_fudge
¶ Random chance to start on a different frame?
-
property
-
class
BSPackedAdditionalDataBlock
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
atom_sizes
¶ The sum of all of these equal num total bytes per element, so this probably describes how each data element breaks down into smaller chunks (i.e. atoms).
-
property
block_offsets
¶ Block offsets in the data? Usually equal to zero.
-
property
data
¶ Unknown
-
property
has_data
¶ Has data
-
property
num_atoms
¶ Number of atoms?
-
property
num_blocks
¶ Number of blocks? Usually equal to one.
-
property
num_total_bytes
¶ Total number of bytes (over all channels and all elements, equals num total bytes per element times num vertices).
-
property
num_total_bytes_per_element
¶ Unsure, but this seems to correspond again to the number of total bytes per element.
-
property
unknown_int_1
¶
-
property
-
class
BSPackedAdditionalGeometryData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.AbstractAdditionalGeometryData
-
property
block_infos
¶ Number of additional data blocks
-
property
blocks
¶ Number of additional data blocks
-
property
num_block_infos
¶ Information about additional data blocks
-
property
num_blocks
¶ Number of additional data blocks. Usually there is exactly one block.
-
property
num_vertices
¶
-
property
-
class
BSParentVelocityModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle modifier that adds a blend of object space translation and rotation to particles born in world space.
-
property
damping
¶ Amount of blending?
-
property
-
class
BSPartFlag
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
pf_editor_visible
¶
-
property
pf_start_net_boneset
¶
-
property
reserved_bits_1
¶
-
property
-
class
BSProceduralLightningController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Skyrim, Paired with dummy TriShapes, this controller generates lightning shapes for special effects.First interpolator controls Generation.
-
property
byte_1
¶ Unknown
-
property
byte_2
¶ Unknown
-
property
byte_3
¶ Unknown
-
property
distance_weight
¶ How far lightning will stretch to.
-
property
float_2
¶ Unknown
-
property
float_5
¶ Unknown
-
property
fork
¶ Influences forking behavior
-
property
interpolator_10
¶ Unknown, unsure if this is actually another interpolator link.
-
property
interpolator_2_mutation
¶ References interpolator for Mutation of strips
-
property
interpolator_3
¶ Unknown
-
property
interpolator_4
¶ Unknown
-
property
interpolator_5
¶ Unknown
-
property
interpolator_6
¶ Unknown
-
property
interpolator_7
¶ Unknown
-
property
interpolator_8
¶ Unknown
-
property
interpolator_9_arc_offset
¶ References interpolator for Amplitutde control. 0=straight, 50=wide
-
property
strip_width
¶ How wide the bolt will be
-
property
unknown_short_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
unknown_short_3
¶ Unknown
-
property
-
class
BSRefractionFirePeriodController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Bethesda-specific node.
-
property
interpolator
¶ Link to Interpolator.
-
property
-
class
BSRefractionStrengthController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Bethesda-Specific node.
-
class
BSRotAccumTransfInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTransformInterpolator
-
class
BSSegment
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Bethesda-specific node.
-
property
flags
¶ Geometry present in the segment
-
property
internal_index
¶ Index multiplied by 1536 (0x0600)
-
property
unknown_byte_1
¶ Unknown
-
property
-
class
BSSegmentFlags
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
bsseg_water
¶
-
property
reserved_bits_0
¶
-
property
-
class
BSSegmentedTriShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriShape
Bethesda-specific node.
-
property
num_segments
¶ Number of segments in the square grid
-
property
segment
¶ Configuration of each segment
-
property
-
class
BSShaderFlags
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
sf_alpha_texture
¶
-
property
sf_decal_single_pass
¶
-
property
sf_dynamic_alpha
¶
-
property
sf_dynamic_decal_single_pass
¶
-
property
sf_empty
¶
-
property
sf_environment_mapping
¶
-
property
sf_external_emittance
¶
-
property
sf_eye_environment_mapping
¶
-
property
sf_face_gen
¶
-
property
sf_fire_refraction
¶
-
property
sf_hair
¶
-
property
sf_localmap_hide_secret
¶
-
property
sf_low_detail
¶
-
property
sf_multiple_textures
¶
-
property
sf_non_projective_shadows
¶
-
property
sf_parallax_occulsion
¶
-
property
sf_parallax_shader_index_15
¶
-
property
sf_refraction
¶
-
property
sf_remappable_textures
¶
-
property
sf_shadow_frustum
¶
-
property
sf_shadow_map
¶
-
property
sf_single_pass
¶
-
property
sf_skinned
¶
-
property
sf_specular
¶
-
property
sf_tree_billboard
¶
-
property
sf_unknown_1
¶
-
property
sf_unknown_2
¶
-
property
sf_unknown_3
¶
-
property
sf_unknown_4
¶
-
property
sf_vertex_alpha
¶
-
property
sf_window_environment_mapping
¶
-
property
sf_z_buffer_test
¶
-
property
-
class
BSShaderFlags2
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
sf_2_1_st_light_is_point_light
¶
-
property
sf_2_2_nd_light
¶
-
property
sf_2_3_rd_light
¶
-
property
sf_2_alpha_decal
¶
-
property
sf_2_billboard_and_envmap_light_fade
¶
-
property
sf_2_envmap_light_fade
¶
-
property
sf_2_fit_slope
¶
-
property
sf_2_lod_building
¶
-
property
sf_2_lod_landscape
¶
-
property
sf_2_no_fade
¶
-
property
sf_2_no_lod_land_blend
¶
-
property
sf_2_no_transparecny_multisampling
¶
-
property
sf_2_premult_alpha
¶
-
property
sf_2_refraction_tint
¶
-
property
sf_2_show_in_local_map
¶
-
property
sf_2_skip_normal_maps
¶
-
property
sf_2_uniform_scale
¶
-
property
sf_2_unknown_1
¶
-
property
sf_2_unknown_10
¶
-
property
sf_2_unknown_2
¶
-
property
sf_2_unknown_3
¶
-
property
sf_2_unknown_4
¶
-
property
sf_2_unknown_5
¶
-
property
sf_2_unknown_6
¶
-
property
sf_2_unknown_7
¶
-
property
sf_2_unknown_8
¶
-
property
sf_2_unknown_9
¶
-
property
sf_2_vats_selection
¶
-
property
sf_2_vertex_colors
¶
-
property
sf_2_vertex_lighting
¶
-
property
sf_2_wireframe
¶
-
property
sf_2_z_buffer_write
¶
-
property
-
class
BSShaderLightingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific property.
-
property
texture_clamp_mode
¶ How to handle texture borders.
-
property
-
class
BSShaderNoLightingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderLightingProperty
Bethesda-specific property.
-
property
falloff_start_angle
¶ At this cosine of angle falloff will be equal to Falloff Start Opacity
-
property
falloff_start_opacity
¶ Alpha falloff multiplier at start angle
-
property
falloff_stop_angle
¶ At this cosine of angle falloff will be equal to Falloff Stop Opacity
-
property
falloff_stop_opacity
¶ Alpha falloff multiplier at end angle
-
property
file_name
¶ The texture glow map.
-
property
-
class
BSShaderPPLightingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderLightingProperty
Bethesda-specific Shade node.
-
property
emissive_color
¶ Glow color and alpha
-
property
refraction_fire_period
¶ Rate of texture movement for refraction shader.
-
property
refraction_strength
¶ The amount of distortion. Not based on physically accurate refractive index (0=none) (0-1)
-
property
texture_set
¶ Texture Set
-
property
unknown_float_4
¶ Unknown
-
property
unknown_float_5
¶ Unknown
-
property
-
class
BSShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Bethesda-specific Property node
-
property
environment_map_scale
¶ Scales the intensity of the environment/cube map.
-
property
shader_flags
¶ Shader Property Flags
-
property
shader_flags_2
¶ Shader Property Flags 2
-
property
shader_type
¶ Unknown (Set to 0x21 for NoLighting, 0x11 for Water)
-
property
smooth
¶ smooth yes
- Type
Unknown.0
- Type
smooth no1
-
property
-
class
BSShaderTextureSet
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Bethesda-specific Texture Set.
-
property
num_textures
¶ Number of Textures
-
property
textures
¶ Normal/Gloss2: Glow(SLSF2_Glow_Map)/Skin/Hair/Rim light(SLSF2_Rim_Lighting)3: Height/Parallax4: Environment5: Environment Mask6: Subsurface for Multilayer Parallax7: Back Lighting Map (SLSF2_Back_Lighting)
- Type
Textures.0
- Type
Diffuse1
-
property
-
class
BSShaderType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The type of animation interpolation (blending) that will be used on the associated key frames.
-
SHADER_DEFAULT
= 1¶
-
SHADER_LIGHTING30
= 29¶
-
SHADER_NOLIGHTING
= 33¶
-
SHADER_SKIN
= 14¶
-
SHADER_SKY
= 10¶
-
SHADER_TALL_GRASS
= 0¶
-
SHADER_TILE
= 32¶
-
SHADER_WATER
= 17¶
-
-
class
BSSkyShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Skyrim Sky shader block.
-
property
shader_flags_1
¶
-
property
shader_flags_2
¶
-
property
sky_object_type
¶ Sky Object Type
-
property
source_texture
¶ points to an external texture.
-
property
uv_offset
¶ Offset UVs. Seems to be unused, but it fits with the other Skyrim shader properties.
-
property
uv_scale
¶ Offset UV Scale to repeat tiling textures, see above.
-
property
-
class
BSStripPSysData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysData
Bethesda-Specific (mesh?) Particle System Data.
-
property
unknown_byte_6
¶ Unknown
-
property
unknown_float_8
¶ Unknown
-
property
unknown_int_7
¶ Unknown
-
property
unknown_short_5
¶ Unknown
-
property
-
class
BSStripParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleSystem
Bethesda-Specific (mesh?) Particle System.
-
class
BSTreadTransfInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpolator
Bethesda-specific node.
-
property
data
¶ Unknown float data.
-
property
num_tread_transforms
¶ Unknown.
-
property
tread_transforms
¶ Unknown.
-
property
-
class
BSTreadTransform
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Bethesda-specific node.
-
property
name
¶ Name of affected node?
-
property
transform_1
¶ Transform data.
-
property
transform_2
¶ Transform data.
-
property
-
class
BSTreadTransformData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Bethesda-specific node.
-
property
rotation
¶ Rotation.
-
property
scale
¶ Scale (usually float_min).
-
property
translation
¶ Translation.
-
property
-
class
BSTreeNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Node for handling Trees, Switches branch configurations for variation?
-
property
bones
¶ Unknown
-
property
bones_1
¶ Unknown
-
property
num_bones_1
¶ Unknown
-
property
num_bones_2
¶ Unknown
-
property
-
class
BSValueNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node. Found on fxFire effects
-
property
unknown_byte
¶ Unknown
-
property
value
¶ Value
-
property
-
class
BSWArray
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Bethesda-specific node.
-
property
items
¶ Unknown
-
property
num_items
¶ Unknown
-
property
-
class
BSWaterShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Skyrim water shader property, different from “WaterShaderProperty” seen in Fallout.
-
property
shader_flags_1
¶
-
property
shader_flags_2
¶
-
property
unknown_short_3
¶ Unknown, flag?
-
property
uv_offset
¶ Offset UVs. Seems to be unused, but it fits with the other Skyrim shader properties.
-
property
uv_scale
¶ Offset UV Scale to repeat tiling textures, see above.
-
property
water_direction
¶ A bitflag, only the first/second bit controls water flow positive or negative along UVs.
-
property
water_shader_flags
¶ Defines attributes for the water shader (will use SkyrimWaterShaderFlags)
-
property
-
class
BSWindModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle Modifier that uses the wind value from the gamedata to alter the path of particles.
-
property
strength
¶ The amount of force wind will have on particles.
-
property
-
class
BSXFlags
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiIntegerExtraData
Controls animation and collision. Integer holds flags:Bit 0 : enable havok, bAnimated(Skyrim)Bit 1 : enable collision, bHavok(Skyrim)Bit 2 : is skeleton nif?, bRagdoll(Skyrim)Bit 3 : enable animation, bComplex(Skyrim)Bit 4 : FlameNodes present, bAddon(Skyrim)Bit 5 : EditorMarkers presentBit 6 : bDynamic(Skyrim)Bit 7 : bArticulated(Skyrim)Bit 8 : bIKTarget(Skyrim)Bit 9 : Unknown(Skyrim)
-
class
BallAndSocketDescriptor
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
unknown_4_bytes
¶ Unknown
-
property
unknown_floats_1
¶ Unknown
-
property
unknown_floats_2
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
-
class
BillboardMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines the way the billboard will react to the camera.Billboard mode is stored in lowest 3 bits although Oblivion vanilla nifs uses values higher than 7.
-
ALWAYS_FACE_CAMERA
= 0¶
-
ALWAYS_FACE_CENTER
= 3¶
-
BSROTATE_ABOUT_UP
= 5¶
-
RIGID_FACE_CAMERA
= 2¶
-
RIGID_FACE_CENTER
= 4¶
-
ROTATE_ABOUT_UP
= 1¶
-
ROTATE_ABOUT_UP2
= 9¶
-
-
BlockTypeIndex
¶ alias of
pyffi.object_models.common.UShort
-
class
BodyPartList
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Body part list for DismemberSkinInstance
-
property
body_part
¶ Body Part Index
-
property
part_flag
¶ Flags related to the Body Partition
-
property
-
class
BoneLOD
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Stores Bone Level of Detail info in a BSBoneLODExtraData
-
property
bone_name
¶ The bones name
-
property
distance
¶ Distance to cull?
-
property
-
class
BoundVolumeType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
BASE_BV
= 4294967295¶
-
BOX_BV
= 1¶
-
CAPSULE_BV
= 2¶
-
HALFSPACE_BV
= 5¶
-
SPHERE_BV
= 0¶
-
UNION_BV
= 4¶
-
-
class
BoundingBox
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Bounding box.
-
property
radius
¶ Radius, per direction.
-
property
rotation
¶ Rotation matrix.
-
property
translation
¶ Translation vector.
-
property
unknown_int
¶ Usually 1.
-
property
-
class
BoundingVolume
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
box
¶ Box
-
property
capsule
¶ Capsule
-
property
collision_type
¶ Type of collision data.
-
property
half_space
¶ Half Space
-
property
sphere
¶ Sphere
-
property
union
¶ Union
-
property
-
class
BoxBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Box Bounding Volume
-
property
axis
¶ Axis
-
property
center
¶ Center
-
property
extent
¶ Extent
-
property
-
class
ByteArray
(**kwargs)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
Array (list) of bytes. Implemented as basic type to speed up reading and also to prevent data to be dumped by __str__.
-
class
ByteColor3
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A color without alpha (red, green, blue).
-
property
b
¶ Blue color component.
-
property
g
¶ Green color component.
-
property
r
¶ Red color component.
-
property
-
class
ByteColor4
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A color with alpha (red, green, blue, alpha).
-
property
a
¶ Alpha color component.
-
property
b
¶ Blue color component.
-
property
g
¶ Green color component.
-
property
r
¶ Red color component.
-
property
-
class
ByteMatrix
(**kwargs)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
Matrix of bytes. Implemented as basic type to speed up reading and to prevent data being dumped by __str__.
-
class
CStreamableAssetData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
root
¶
-
property
unknown_bytes
¶
-
property
-
class
CapsuleBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Capsule Bounding Volume
-
property
center
¶ Center
-
property
origin
¶ Origin
-
property
unknown_float_1
¶ Unknown.
-
property
unknown_float_2
¶ Unknown.
-
property
-
class
ChannelConvention
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
CC_COMPRESSED
= 4¶
-
CC_EMPTY
= 5¶
-
CC_FIXED
= 0¶
-
CC_INDEX
= 3¶
-
-
class
ChannelData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Channel data
-
property
bits_per_channel
¶ Bits per channel
-
property
convention
¶ Data Storage Convention
-
property
type
¶ Channel Type
-
property
unknown_byte_1
¶ Unknown
-
property
-
class
ChannelType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
CHNL_ALPHA
= 3¶
-
CHNL_BLUE
= 2¶
-
CHNL_COMPRESSED
= 4¶
-
CHNL_EMPTY
= 19¶
-
CHNL_GREEN
= 1¶
-
CHNL_INDEX
= 16¶
-
CHNL_RED
= 0¶
-
-
class
CloningBehavior
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Sets how objects are to be cloned.
-
CLONING_BLANK_COPY
= 2¶
-
CLONING_COPY
= 1¶
-
CLONING_SHARE
= 0¶
-
-
class
CollisionMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
CM_NOTEST
= 3¶
-
CM_USE_ABV
= 2¶
-
CM_USE_NIBOUND
= 4¶
-
CM_USE_OBB
= 0¶
-
CM_USE_TRI
= 1¶
-
-
class
Color3
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A color without alpha (red, green, blue).
-
property
b
¶ Blue color component.
-
property
g
¶ Green color component.
-
property
r
¶ Red color component.
-
property
-
class
Color4
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A color with alpha (red, green, blue, alpha).
-
property
a
¶ Alpha.
-
property
b
¶ Blue component.
-
property
g
¶ Green component.
-
property
r
¶ Red component.
-
property
-
class
ComponentFormat
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The data format of components.
-
F_FLOAT16_1
= 66097¶
-
F_FLOAT16_2
= 131634¶
-
F_FLOAT16_3
= 197171¶
-
F_FLOAT16_4
= 262708¶
-
F_FLOAT32_1
= 66613¶
-
F_FLOAT32_2
= 132150¶
-
F_FLOAT32_3
= 197687¶
-
F_FLOAT32_4
= 263224¶
-
F_INT16_1
= 66065¶
-
F_INT16_2
= 131602¶
-
F_INT16_3
= 197139¶
-
F_INT16_4
= 262676¶
-
F_INT32_1
= 66593¶
-
F_INT32_2
= 132130¶
-
F_INT32_3
= 197667¶
-
F_INT32_4
= 263204¶
-
F_INT8_1
= 65793¶
-
F_INT8_2
= 131330¶
-
F_INT8_3
= 196867¶
-
F_INT8_4
= 262404¶
-
F_NORMINT16_1
= 66073¶
-
F_NORMINT16_2
= 131610¶
-
F_NORMINT16_3
= 197147¶
-
F_NORMINT16_4
= 262684¶
-
F_NORMINT32_1
= 66601¶
-
F_NORMINT32_2
= 132138¶
-
F_NORMINT32_3
= 197675¶
-
F_NORMINT32_4
= 263212¶
-
F_NORMINT8_1
= 65801¶
-
F_NORMINT8_2
= 131338¶
-
F_NORMINT8_3
= 196875¶
-
F_NORMINT8_4
= 262412¶
-
F_NORMINT_10_10_10_2
= 66621¶
-
F_NORMINT_10_10_10_L1
= 66618¶
-
F_NORMINT_11_11_10
= 66619¶
-
F_NORMUINT16_1
= 66077¶
-
F_NORMUINT16_2
= 131614¶
-
F_NORMUINT16_3
= 197151¶
-
F_NORMUINT16_4
= 262688¶
-
F_NORMUINT32_1
= 66605¶
-
F_NORMUINT32_2
= 132142¶
-
F_NORMUINT32_3
= 197679¶
-
F_NORMUINT32_4
= 263216¶
-
F_NORMUINT8_1
= 65805¶
-
F_NORMUINT8_2
= 131342¶
-
F_NORMUINT8_3
= 196879¶
-
F_NORMUINT8_4
= 262416¶
-
F_NORMUINT8_4_BGRA
= 262460¶
-
F_UINT16_1
= 66069¶
-
F_UINT16_2
= 131606¶
-
F_UINT16_3
= 197143¶
-
F_UINT16_4
= 262680¶
-
F_UINT32_1
= 66597¶
-
F_UINT32_2
= 132134¶
-
F_UINT32_3
= 197671¶
-
F_UINT32_4
= 263208¶
-
F_UINT8_1
= 65797¶
-
F_UINT8_2
= 131334¶
-
F_UINT8_3
= 196871¶
-
F_UINT8_4
= 262408¶
-
F_UINT_10_10_10_2
= 66622¶
-
F_UINT_10_10_10_L1
= 66617¶
-
F_UNKNOWN
= 0¶
-
-
class
ConsistencyType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Used by NiGeometryData to control the volatility of the mesh. While they appear to be flags they behave as an enum.
-
CT_MUTABLE
= 0¶
-
CT_STATIC
= 16384¶
-
CT_VOLATILE
= 32768¶
-
-
class
ControllerLink
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._ControllerLink
,object
>>> from pyffi.formats.nif import NifFormat >>> link = NifFormat.ControllerLink() >>> link.node_name_offset -1 >>> link.set_node_name("Bip01") >>> link.node_name_offset 0 >>> link.get_node_name() b'Bip01' >>> link.node_name b'Bip01' >>> link.set_node_name("Bip01 Tail") >>> link.node_name_offset 6 >>> link.get_node_name() b'Bip01 Tail' >>> link.node_name b'Bip01 Tail'
-
get_node_name
()[source]¶ Return the node name.
>>> # a doctest >>> from pyffi.formats.nif import NifFormat >>> link = NifFormat.ControllerLink() >>> link.string_palette = NifFormat.NiStringPalette() >>> palette = link.string_palette.palette >>> link.node_name_offset = palette.add_string("Bip01") >>> link.get_node_name() b'Bip01'
>>> # another doctest >>> from pyffi.formats.nif import NifFormat >>> link = NifFormat.ControllerLink() >>> link.node_name = "Bip01" >>> link.get_node_name() b'Bip01'
-
-
class
CoordGenType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines the way that UV texture coordinates are generated.
-
CG_DIFFUSE_CUBE_MAP
= 4¶
-
CG_SPECULAR_CUBE_MAP
= 3¶
-
CG_SPHERE_MAP
= 2¶
-
CG_WORLD_PARALLEL
= 0¶
-
CG_WORLD_PERSPECTIVE
= 1¶
-
-
class
CycleType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The animation cyle behavior.
-
CYCLE_CLAMP
= 2¶
-
CYCLE_LOOP
= 0¶
-
CYCLE_REVERSE
= 1¶
-
-
class
Data
(version=67108866, user_version=0, user_version_2=0)[source]¶ Bases:
pyffi.object_models.Data
A class to contain the actual nif data.
Note that L{header} and L{blocks} are not automatically kept in sync with the rest of the nif data, but they are resynchronized when calling L{write}.
- Variables
version – The nif version.
user_version – The nif user version.
user_version_2 – The nif user version 2.
roots – List of root blocks.
header – The nif header.
blocks – List of blocks.
modification – Neo Steam (“neosteam”) or Ndoors (“ndoors”) or Joymaster Interactive Howling Sword (“jmihs1”) or Laxe Lore (“laxelore”) style nif?
-
get_detail_child_names
(edge_filter=(True, True))[source]¶ Generator which yields all child names of this item in the detail view.
Override this method if the node has children.
- Returns
Generator for detail tree child names.
- Return type
generator yielding
str
s
-
get_detail_child_nodes
(edge_filter=(True, True))[source]¶ Generator which yields all children of this item in the detail view (by default, all acyclic and active ones).
Override this method if the node has children.
- Parameters
edge_filter (
EdgeFilter
ortype(None)
) – The edge type to include.- Returns
Generator for detail tree child nodes.
- Return type
generator yielding
DetailNode
s
-
get_global_child_nodes
(edge_filter=(True, True))[source]¶ Generator which yields all children of this item in the global view, of given edge type (default is edges of type 0).
Override this method.
- Returns
Generator for global node children.
-
inspect
(stream)[source]¶ Quickly checks whether the stream appears to contain nif data, and read the nif header. Resets stream to original position.
Call this function if you only need to inspect the header of the nif.
- Parameters
stream (
file
) – The file to inspect.
-
inspect_version_only
(stream)[source]¶ This function checks the version only, and is faster than the usual inspect function (which reads the full header). Sets the L{version} and L{user_version} instance variables if the stream contains a valid NIF file.
Call this function if you simply wish to check that a file is a NIF file without having to parse even the header.
- Raises
ValueError – If the stream does not contain a NIF file.
- Parameters
stream (
file
) – The stream from which to read.
-
read
(stream)[source]¶ Read a NIF file. Does not reset stream position.
- Parameters
stream (
file
) – The stream from which to read.
-
replace_global_node
(oldbranch, newbranch, edge_filter=(True, True))[source]¶ Replace a particular branch in the graph.
-
property
user_version
¶
-
property
user_version_2
¶
-
property
version
¶
-
class
DataStreamAccess
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
cpu_read
¶
-
property
cpu_write_mutable
¶
-
property
cpu_write_static
¶
-
property
cpu_write_static_inititialized
¶
-
property
cpu_write_volatile
¶
-
property
gpu_read
¶
-
property
gpu_write
¶
-
property
-
class
DataStreamUsage
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines how a data stream is used?
-
USAGE_SHADER_CONSTANT
= 2¶
-
USAGE_USER
= 3¶
-
USAGE_VERTEX
= 1¶
-
USAGE_VERTEX_INDEX
= 0¶
-
-
class
DeactivatorType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
DEACTIVATOR_INVALID
= 0¶
-
DEACTIVATOR_NEVER
= 1¶
-
DEACTIVATOR_SPATIAL
= 2¶
-
-
class
DecalVectorArray
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Array of Vectors for Decal placement in BSDecalPlacementVectorExtraData.
-
property
normals
¶ Vector Normals
-
property
num_vectors
¶ Number of sets
-
property
points
¶ Vector XYZ coords
-
property
-
class
DecayType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines decay function. Used by NiPSysBombModifier.
-
DECAY_EXPONENTIAL
= 2¶
-
DECAY_LINEAR
= 1¶
-
DECAY_NONE
= 0¶
-
-
class
DistantLODShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node.
-
EPSILON
= 0.0001¶
-
class
EffectShaderControlledColor
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing which color in BSEffectShaderProperty to animate.
-
class
EffectShaderControlledVariable
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing which float variable in BSEffectShaderProperty to animate.
-
EmissiveMultiple
= 0¶
-
-
class
EffectType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The type of information that’s store in a texture used by a NiTextureEffect.
-
EFFECT_ENVIRONMENT_MAP
= 2¶
-
EFFECT_FOG_MAP
= 3¶
-
EFFECT_PROJECTED_LIGHT
= 0¶
-
EFFECT_PROJECTED_SHADOW
= 1¶
-
-
class
ElementReference
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
normalize_flag
¶ Whether or not to normalize the data.
-
property
semantic
¶ The element semantic.
-
property
-
class
EmitFrom
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Controls which parts of the mesh that the particles are emitted from.
-
EMIT_FROM_EDGE_CENTER
= 2¶
-
EMIT_FROM_EDGE_SURFACE
= 4¶
-
EMIT_FROM_FACE_CENTER
= 1¶
-
EMIT_FROM_FACE_SURFACE
= 3¶
-
EMIT_FROM_VERTICES
= 0¶
-
-
class
EndianType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
ENDIAN_BIG
= 0¶
-
ENDIAN_LITTLE
= 1¶
-
-
class
ExportInfo
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Information about how the file was exported
-
property
creator
¶ Could be the name of the creator of the NIF file?
-
property
export_info_1
¶ Unknown. Can be something like’TriStrip Process Script’.
-
property
export_info_2
¶ Unknown. Possibly the selected option of the export script. Can be something like’Default Export Script’.
-
property
unknown
¶ Probably the number of strings that follow.
-
property
-
class
ExtraMeshDataEpicMickey
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
unknown_int_4
¶
-
property
unknown_int_5
¶
-
property
unknown_int_6
¶
-
property
-
class
ExtraMeshDataEpicMickey2
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
end
¶
-
property
start
¶
-
property
unknown_shorts
¶
-
property
-
class
ExtraVectorsFlags
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
None
= 0¶
-
Tangents_Bitangents
= 16¶
-
-
class
FaceDrawMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
This enum lists the different face culling options.
-
DRAW_BOTH
= 3¶
-
DRAW_CCW
= 1¶
-
DRAW_CCW_OR_BOTH
= 0¶
-
DRAW_CW
= 2¶
-
-
class
Fallout3HavokMaterial
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
A material, used by havok shape objects in Fallout 3.Bit 5: flag for PLATFORM (for values 32-63 substract 32 to know material number)Bit 6: flag for STAIRS (for values 64-95 substract 64 to know material number)Bit 5+6: flag for STAIRS+PLATFORM (for values 96-127 substract 96 to know material number)
-
MAT_BABY_RATTLE
= 30¶
-
MAT_BARREL
= 23¶
-
MAT_BOTTLE
= 24¶
-
MAT_BOTTLECAP
= 14¶
-
MAT_BROKEN_CONCRETE
= 19¶
-
MAT_CHAIN
= 13¶
-
MAT_CLOTH
= 1¶
-
MAT_DIRT
= 2¶
-
MAT_ELEVATOR
= 15¶
-
MAT_GLASS
= 3¶
-
MAT_GRASS
= 4¶
-
MAT_HEAVY_METAL
= 11¶
-
MAT_HEAVY_STONE
= 10¶
-
MAT_HEAVY_WOOD
= 12¶
-
MAT_HOLLOW_METAL
= 16¶
-
MAT_LUNCHBOX
= 29¶
-
MAT_METAL
= 5¶
-
MAT_ORGANIC
= 6¶
-
MAT_PISTOL
= 26¶
-
MAT_RIFLE
= 27¶
-
MAT_RUBBER_BALL
= 31¶
-
MAT_SAND
= 18¶
-
MAT_SHEET_METAL
= 17¶
-
MAT_SHOPPING_CART
= 28¶
-
MAT_SKIN
= 7¶
-
MAT_SODA_CAN
= 25¶
-
MAT_STONE
= 0¶
-
MAT_VEHICLE_BODY
= 20¶
-
MAT_VEHICLE_PART_HOLLOW
= 22¶
-
MAT_VEHICLE_PART_SOLID
= 21¶
-
MAT_WATER
= 8¶
-
MAT_WOOD
= 9¶
-
-
class
Fallout3Layer
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Sets mesh color in Fallout 3 GECK. Anything higher than 72 is also null.
-
ACOUSTIC_SPACE
= 21¶
-
ACTORZONE
= 22¶
-
ADDONARM
= 71¶
-
ADDONCHEST
= 70¶
-
ADDONHEAD
= 69¶
-
ADDONLEG
= 72¶
-
ANIM_STATIC
= 2¶
-
AVOIDBOX
= 31¶
-
BIPED
= 29¶
-
BODY
= 46¶
-
CAMERAPICK
= 35¶
-
CAMERASPHERE
= 33¶
-
CHAIN
= 68¶
-
CHARCONTROLLER
= 30¶
-
CLOUD_TRAP
= 16¶
-
CLUTTER
= 4¶
-
COLLISIONBOX
= 32¶
-
CUSTOMPICK1
= 39¶
-
CUSTOMPICK2
= 40¶
-
DEBRIS_LARGE
= 20¶
-
DEBRIS_SMALL
= 19¶
-
DOORDETECTION
= 34¶
-
DROPPINGPICK
= 42¶
-
GASTRAP
= 24¶
-
GROUND
= 17¶
-
HEAD
= 45¶
-
INVISIBLE_WALL
= 27¶
-
ITEMPICK
= 36¶
-
LINEOFSIGHT
= 37¶
-
L_CALF
= 53¶
-
L_FOOT
= 54¶
-
L_FORE_ARM
= 50¶
-
L_HAND
= 51¶
-
L_THIGH
= 52¶
-
L_UPPER_ARM
= 49¶
-
NONCOLLIDABLE
= 15¶
-
NULL
= 43¶
-
OTHER
= 44¶
-
PACK
= 67¶
-
PATHPICK
= 38¶
-
PONYTAIL
= 65¶
-
PORTAL
= 18¶
-
PROJECTILE
= 6¶
-
PROJECTILEZONE
= 23¶
-
PROPS
= 10¶
-
QUIVER
= 63¶
-
R_CALF
= 59¶
-
R_FOOT
= 60¶
-
R_FORE_ARM
= 56¶
-
R_HAND
= 57¶
-
R_THIGH
= 58¶
-
R_UPPER_ARM
= 55¶
-
SHELLCASING
= 25¶
-
SHIELD
= 62¶
-
SPELL
= 7¶
-
SPELLEXPLOSION
= 41¶
-
SPINE1
= 47¶
-
SPINE2
= 48¶
-
STATIC
= 1¶
-
TAIL
= 61¶
-
TERRAIN
= 13¶
-
TRANSPARENT
= 3¶
-
TRANSPARENT_SMALL
= 26¶
-
TRANSPARENT_SMALL_ANIM
= 28¶
-
TRAP
= 14¶
-
TREES
= 9¶
-
TRIGGER
= 12¶
-
UNIDENTIFIED
= 0¶
-
WATER
= 11¶
-
WEAPON
= 64¶
-
WING
= 66¶
-
-
class
FieldType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The force field’s type.
-
FIELD_POINT
= 1¶
-
FIELD_WIND
= 0¶
-
-
class
FileVersion
(**kwargs)[source]¶ Bases:
pyffi.object_models.common.UInt
-
read
(stream, data)[source]¶ Read value from stream.
- Parameters
stream (file) – The stream to read from.
-
Bases:
pyffi.formats.nif._Footer
,object
Read structure from stream.
Write structure to stream.
-
class
ForceType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The type of force? May be more valid values.
-
FORCE_PLANAR
= 0¶
-
FORCE_SPHERICAL
= 1¶
-
FORCE_UNKNOWN
= 2¶
-
-
class
FurnitureEntryPoints
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
behind
¶
-
property
front
¶
-
property
left
¶
-
property
right
¶
-
property
up
¶
-
property
-
class
FurniturePosition
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Describes a furniture position?
-
property
animation_type
¶ Unknown
-
property
entry_properties
¶ Unknown/unused in nif?
-
property
heading
¶ Similar to Orientation, in float form.
-
property
offset
¶ Offset of furniture marker.
-
property
orientation
¶ Furniture marker orientation.
-
property
position_ref_1
¶ Refers to a furnituremarkerxx.nif file. Always seems to be the same as Position Ref 2.
-
property
position_ref_2
¶ Refers to a furnituremarkerxx.nif file. Always seems to be the same as Position Ref 1.
-
property
-
class
FxButton
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.FxWidget
Unknown.
-
class
FxRadioButton
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.FxWidget
Unknown.
Unknown pointers to other buttons. Maybe other buttons in a group so they can be switch off if this one is switched on?
Number of unknown links.
-
property
unknown_int_1
¶ Unknown.
-
property
unknown_int_2
¶ Unknown.
-
property
unknown_int_3
¶ Unknown.
-
class
FxWidget
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Firaxis-specific UI widgets?
-
property
unknown_292_bytes
¶ Looks like 9 links and some string data.
-
property
unknown_3
¶ Unknown.
-
property
-
class
HairShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node.
-
class
HalfSpaceBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
center
¶ Center
-
property
normal
¶ Normal
-
property
unknown_float_1
¶ Unknown.
-
property
-
class
HavokColFilter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
ColFilter property for Havok. It contains Layer, Flags and Part Number
-
property
flags_and_part_number
¶ sets the LINK property and controls whether this body is physically linked to others.Bit 6: turns collision off (not used for Layer BIPED).Bit 5: sets the SCALED property.PART NUMBER is stored in bits 0-4. Used only when Layer is set to BIPED.Part Numbers for Oblivion, Fallout 3, Skyrim:0 - OTHER1 - HEAD2 - BODY3 - SPINE14 - SPINE25 - LUPPERARM6 - LFOREARM7 - LHAND8 - LTHIGH9 - LCALF10 - LFOOT11 - RUPPERARM12 - RFOREARM13 - RHAND14 - RTHIGH15 - RCALF16 - RFOOT17 - TAIL18 - SHIELD19 - QUIVER20 - WEAPON21 - PONYTAIL22 - WING23 - PACK24 - CHAIN25 - ADDONHEAD26 - ADDONCHEST27 - ADDONARM28 - ADDONLEG29-31 - NULL
- Type
FLAGS are stored in highest 3 bits
- Type
Bit 7
-
property
layer
¶ Physical purpose of collision object? The setting affects object’s havok behavior in game.
-
property
unknown_short
¶ Unknown.
-
property
-
class
HavokMaterial
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
material
¶ The material of the shape.
-
property
-
class
Header
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._Header
,object
-
has_block_type
(block_type)[source]¶ Check if header has a particular block type.
- Raises
ValueError – If number of block types is zero (only nif versions 10.0.1.0 and up store block types in header).
- Parameters
block_type (L{NifFormat.NiObject}) – The block type.
- Returns
True
if the header’s list of block types has the given block type, or a subclass of it.False
otherwise.- Return type
bool
-
-
class
HeaderString
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
-
get_hash
(data=None)[source]¶ Returns a hash value (an immutable object) that can be used to identify the object uniquely.
-
static
version_string
(version, modification=None)[source]¶ Transforms version number into a version string.
>>> NifFormat.HeaderString.version_string(0x03000300) 'NetImmerse File Format, Version 3.03' >>> NifFormat.HeaderString.version_string(0x03010000) 'NetImmerse File Format, Version 3.1' >>> NifFormat.HeaderString.version_string(0x0A000100) 'NetImmerse File Format, Version 10.0.1.0' >>> NifFormat.HeaderString.version_string(0x0A010000) 'Gamebryo File Format, Version 10.1.0.0' >>> NifFormat.HeaderString.version_string(0x0A010000, ... modification="neosteam") 'NS' >>> NifFormat.HeaderString.version_string(0x14020008, ... modification="ndoors") 'NDSNIF....@....@...., Version 20.2.0.8' >>> NifFormat.HeaderString.version_string(0x14030009, ... modification="jmihs1") 'Joymaster HS1 Object Format - (JMI), Version 20.3.0.9'
-
-
class
HingeDescriptor
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
This constraint allows rotation about a specified axis.
-
property
axle_a
¶ Axis of rotation.
-
property
axle_b
¶ Axle A in second entity coordinate system.
-
property
perp_2_axle_in_a_1
¶ Vector in the rotation plane which defines the zero angle.
-
property
perp_2_axle_in_a_2
¶ Vector in the rotation plane, orthogonal on the previous one, which defines the positive direction of rotation. This is always the vector product of Axle A and Perp2 Axle In A1.
-
property
perp_2_axle_in_b_1
¶ Perp2 Axle In A1 in second entity coordinate system.
-
property
perp_2_axle_in_b_2
¶ Perp2 Axle In A2 in second entity coordinate system.
-
property
pivot_a
¶ Pivot point around which the object will rotate.
-
property
pivot_b
¶ Pivot A in second entity coordinate system.
-
property
-
class
ImageType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines how the raw image data is stored in NiRawImageData.
-
RGB
= 1¶
-
RGBA
= 2¶
-
-
class
InertiaMatrix
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._InertiaMatrix
,object
-
class
Key
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A generic key with support for interpolation. Type 1 is normal linear interpolation, type 2 has forward and backward tangents, and type 3 has tension, bias and continuity arguments. Note that color4 and byte always seem to be of type 1.
-
property
backward
¶ The key backward tangent.
-
property
forward
¶ Key forward tangent.
-
property
tbc
¶ The key’s TBC.
-
property
time
¶ Time of the key.
-
property
value
¶ The key value.
-
property
-
class
KeyGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Array of vector keys (anything that can be interpolated, except rotations).
-
property
interpolation
¶ The key type.
-
property
keys
¶ The keys.
-
property
num_keys
¶ Number of keys in the array.
-
property
-
class
KeyType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The type of animation interpolation (blending) that will be used on the associated key frames.
-
CONST_KEY
= 5¶
-
LINEAR_KEY
= 1¶
-
QUADRATIC_KEY
= 2¶
-
TBC_KEY
= 3¶
-
XYZ_ROTATION_KEY
= 4¶
-
-
class
LODRange
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
The distance range where a specific level of detail applies.
-
property
far_extent
¶ End of Range.
-
property
near_extent
¶ Begining of range.
-
property
unknown_ints
¶ Unknown (0,0,0).
-
property
-
class
LightMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing how vertex colors influence lighting.
-
LIGHT_MODE_EMISSIVE
= 0¶
-
LIGHT_MODE_EMI_AMB_DIF
= 1¶
-
-
class
Lighting30ShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderPPLightingProperty
Bethesda-specific node.
-
class
LightingShaderControlledColor
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing which color in BSLightingShaderProperty to animate.
-
class
LightingShaderControlledVariable
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing which float variable in BSLightingShaderProperty to animate.
-
Alpha
= 12¶
-
Glossiness
= 9¶
-
-
class
LimitedHingeDescriptor
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._LimitedHingeDescriptor
,object
-
class
LineString
(**kwargs)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
Basic type for strings ending in a newline character (0x0a).
>>> from tempfile import TemporaryFile >>> f = TemporaryFile() >>> l = NifFormat.LineString() >>> f.write('abcdefg\x0a'.encode()) 8 >>> f.seek(0) 0 >>> l.read(f) >>> str(l) 'abcdefg' >>> f.seek(0) 0 >>> l.set_value('Hi There') >>> l.write(f) >>> f.seek(0) 0 >>> m = NifFormat.LineString() >>> m.read(f) >>> str(m) 'Hi There'
-
class
MTransform
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
rotation
¶ Rotation.
-
property
scale
¶ Scale.
-
property
translation
¶ Translation.
-
property
-
class
MatchGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Group of vertex indices of vertices that match.
-
property
num_vertices
¶ Number of vertices in this group.
-
property
vertex_indices
¶ The vertex indices.
-
property
-
class
MaterialData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Data stored per-material by NiRenderObject
-
property
material_extra_data
¶ Extra data associated with the material?
-
property
material_name
¶ The name of the material.
-
property
-
class
Matrix22
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A 2x2 matrix of float values. Stored in OpenGL column-major format.
-
property
m_11
¶ Member 1,1 (top left)
-
property
m_12
¶ Member 1,2 (top right)
-
property
m_21
¶ Member 2,1 (bottom left)
-
property
m_22
¶ Member 2,2 (bottom right)
-
property
-
class
Matrix33
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._Matrix33
,object
-
class
Matrix44
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._Matrix44
,object
-
class
MeshData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
component_semantics
¶ Describes the semantic of each component.
-
property
is_per_instance
¶ Sets whether this stream data is per-instance data for use inhardware instancing.
-
property
num_components
¶
-
property
num_submeshes
¶ The number of submesh-to-region mappings that this data streamhas.
-
property
stream
¶ Reference to a data stream object which holds the data used bythis reference.
-
property
submesh_to_region_map
¶ A lookup table that maps submeshes to regions.
-
property
-
class
MeshPrimitiveType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Describes the type of primitives stored in a mesh object.
-
MESH_PRIMITIVE_LINESTRIPS
= 2¶
-
MESH_PRIMITIVE_POINTS
= 4¶
-
MESH_PRIMITIVE_QUADS
= 3¶
-
MESH_PRIMITIVE_TRIANGLES
= 0¶
-
MESH_PRIMITIVE_TRISTRIPS
= 1¶
-
-
class
MipMap
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Description of a MipMap within a NiPixelData object.
-
property
height
¶ Height of the mipmap image.
-
property
offset
¶ Offset into the pixel data array where this mipmap starts.
-
property
width
¶ Width of the mipmap image.
-
property
-
class
MipMapFormat
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing how mipmaps are handled in a texture.
-
MIP_FMT_DEFAULT
= 2¶
-
MIP_FMT_NO
= 0¶
-
MIP_FMT_YES
= 1¶
-
-
class
MoppDataBuildType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
A byte describing if MOPP Data is organized into chunks (PS3) or not (PC)
-
BUILD_NOT_SET
= 2¶
-
BUILT_WITHOUT_CHUNK_SUBDIVISION
= 1¶
-
BUILT_WITH_CHUNK_SUBDIVISION
= 0¶
-
-
class
Morph
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Geometry morphing data component.
-
property
frame_name
¶ Name of the frame.
-
property
interpolation
¶ Unlike most objects, the presense of this value is not conditional on there being keys.
-
property
keys
¶ The morph key frames.
-
property
num_keys
¶ The number of morph keys that follow.
-
property
unknown_int
¶ Unknown.
-
property
vectors
¶ Morph vectors.
-
property
-
class
MorphWeight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
interpolator
¶ Interpolator
-
property
weight
¶ Weight
-
property
-
class
MotionQuality
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The motion type. Determines quality of motion?
-
MO_QUAL_BULLET
= 6¶
-
MO_QUAL_CHARACTER
= 8¶
-
MO_QUAL_CRITICAL
= 5¶
-
MO_QUAL_DEBRIS
= 3¶
-
MO_QUAL_FIXED
= 1¶
-
MO_QUAL_INVALID
= 0¶
-
MO_QUAL_KEYFRAMED
= 2¶
-
MO_QUAL_KEYFRAMED_REPORT
= 9¶
-
MO_QUAL_MOVING
= 4¶
-
MO_QUAL_USER
= 7¶
-
-
class
MotionSystem
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The motion system. 4 (Box) is used for everything movable. 7 (Keyframed) is used on statics and animated stuff.
-
MO_SYS_BOX
= 4¶
-
MO_SYS_BOX_STABILIZED
= 5¶
-
MO_SYS_CHARACTER
= 9¶
-
MO_SYS_DYNAMIC
= 1¶
-
MO_SYS_FIXED
= 7¶
-
MO_SYS_INVALID
= 0¶
-
MO_SYS_KEYFRAMED
= 6¶
-
MO_SYS_SPHERE
= 2¶
-
MO_SYS_SPHERE_INERTIA
= 3¶
-
MO_SYS_THIN_BOX
= 8¶
-
-
class
MotorDescriptor
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_float_3
¶ Unknown
-
property
unknown_float_4
¶ Unknown
-
property
unknown_float_5
¶ Unknown
-
property
unknown_float_6
¶ Unknown
-
property
-
class
MultiTextureElement
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
clamp
¶ May be texture clamp mode.
-
property
filter
¶ May be texture filter mode.
-
property
has_image
¶ Looks like a memory address, so probably a bool.
-
property
image
¶ Link to the texture image.
-
property
ps_2_k
¶ -75?
-
property
ps_2_l
¶ 0?
-
property
unknown_short_3
¶ Unknown. Usually 0 but sometimes 257
-
property
uv_set
¶ This may be the UV set counting from 1 instead of zero.
-
property
-
class
Ni3dsAlphaAnimator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown.
-
property
num_1
¶ Unknown.
-
property
num_2
¶ Unknown.
-
property
parent
¶ The parent?
-
property
unknown_1
¶ Unknown.
-
property
unknown_2
¶ Unknown.
-
property
-
class
Ni3dsAnimationNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown. Only found in 2.3 nifs.
-
property
child
¶ Child?
-
property
count
¶ A count.
-
property
has_data
¶ Unknown.
-
property
name
¶ Name of this object.
-
property
unknown_array
¶ Unknown.
-
property
unknown_floats_1
¶ Unknown. Matrix?
-
property
unknown_floats_2
¶ Unknown.
-
property
unknown_short
¶ Unknown.
-
property
-
class
Ni3dsColorAnimator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶ Unknown.
-
property
-
class
Ni3dsMorphShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶ Unknown.
-
property
-
class
Ni3dsParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶ Unknown.
-
property
-
class
Ni3dsPathController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶ Unknown.
-
property
-
class
NiAVObject
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiAVObject
,object
>>> from pyffi.formats.nif import NifFormat >>> node = NifFormat.NiNode() >>> prop1 = NifFormat.NiProperty() >>> prop1.name = "hello" >>> prop2 = NifFormat.NiProperty() >>> prop2.name = "world" >>> node.get_properties() [] >>> node.set_properties([prop1, prop2]) >>> [prop.name for prop in node.get_properties()] [b'hello', b'world'] >>> [prop.name for prop in node.properties] [b'hello', b'world'] >>> node.set_properties([]) >>> node.get_properties() [] >>> # now set them the other way around >>> node.set_properties([prop2, prop1]) >>> [prop.name for prop in node.get_properties()] [b'world', b'hello'] >>> [prop.name for prop in node.properties] [b'world', b'hello'] >>> node.remove_property(prop2) >>> [prop.name for prop in node.properties] [b'hello'] >>> node.add_property(prop2) >>> [prop.name for prop in node.properties] [b'hello', b'world']
-
add_property
(prop)[source]¶ Add the given property to the property list.
- Parameters
prop (L{NifFormat.NiProperty}) – The property block to add.
-
get_properties
()[source]¶ Return a list of the properties of the block.
- Returns
The list of properties.
- Return type
list
of L{NifFormat.NiProperty}
-
get_transform
(relative_to=None)[source]¶ Return scale, rotation, and translation into a single 4x4 matrix, relative to the C{relative_to} block (which should be another NiAVObject connecting to this block). If C{relative_to} is
None
, then returns the transform stored in C{self}, or equivalently, the target is assumed to be the parent.- Parameters
relative_to – The block relative to which the transform must be calculated. If
None
, the local transform is returned.
-
remove_property
(prop)[source]¶ Remove the given property to the property list.
- Parameters
prop (L{NifFormat.NiProperty}) – The property block to remove.
-
-
class
NiAVObjectPalette
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown.
-
class
NiAdditionalGeometryData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.AbstractAdditionalGeometryData
-
property
block_infos
¶ Number of additional data blocks
-
property
blocks
¶ Number of additional data blocks
-
property
num_block_infos
¶ Information about additional data blocks
-
property
num_blocks
¶ Number of additional data blocks
-
property
num_vertices
¶ Number of vertices
-
property
-
class
NiAlphaController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Time controller for transparency.
-
property
data
¶ Alpha controller data index.
-
property
-
class
NiAlphaProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Transparency. Flags 0x00ED.
-
property
flags
¶ source blend modeBits 5-8 : destination blend modeBit 9 : alpha test enableBit 10-12 : alpha test modeBit 13 : no sorter flag ( disables triangle sorting )blend modes (glBlendFunc):0000 GL_ONE0001 GL_ZERO0010 GL_SRC_COLOR0011 GL_ONE_MINUS_SRC_COLOR0100 GL_DST_COLOR0101 GL_ONE_MINUS_DST_COLOR0110 GL_SRC_ALPHA0111 GL_ONE_MINUS_SRC_ALPHA1000 GL_DST_ALPHA1001 GL_ONE_MINUS_DST_ALPHA1010 GL_SRC_ALPHA_SATURATEtest modes (glAlphaFunc):000 GL_ALWAYS001 GL_LESS010 GL_EQUAL011 GL_LEQUAL100 GL_GREATER101 GL_NOTEQUAL110 GL_GEQUAL111 GL_NEVER
- Type
Bit 0
- Type
alpha blending enableBits 1-4
-
property
threshold
¶ glAlphaFunc)
- Type
Threshold for alpha testing (see
-
property
unknown_int_2
¶ Unknown
-
property
unknown_short_1
¶ Unknown
-
property
-
class
NiAmbientLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiLight
Ambient light source.
-
class
NiArkAnimationExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown node.
-
property
unknown_bytes
¶
-
property
unknown_ints
¶
-
property
-
class
NiArkImporterExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown node.
-
property
importer_name
¶ Contains a string like”Gamebryo_1_1”or”4.1.0.12”
-
property
unknown_bytes
¶
-
property
unknown_floats
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
-
class
NiArkShaderExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown node.
-
property
unknown_int
¶
-
property
unknown_string
¶
-
property
-
class
NiArkTextureExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown node.
-
property
num_textures
¶
-
property
textures
¶
-
property
unknown_byte
¶
-
property
unknown_int_2
¶
-
property
unknown_ints_1
¶
-
property
-
class
NiArkViewportInfoExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown node.
-
property
unknown_bytes
¶
-
property
-
class
NiAutoNormalParticles
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticles
Unknown.
-
class
NiAutoNormalParticlesData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticlesData
Particle system data object (with automatic normals?).
-
class
NiBSAnimationNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-specific extension of Node with animation properties stored in the flags, often 42?
-
class
NiBSBoneLODController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBoneLODController
A simple LOD controller for bones.
-
class
NiBSPArrayController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleSystemController
A particle system controller, used by BS in conjunction with NiBSParticleNode.
-
class
NiBSParticleNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Unknown.
-
class
NiBSplineBasisData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Stores the number of control points of a B-spline.
-
property
num_control_points
¶ The number of control points of the B-spline (number of frames of animation plus degree of B-spline minus one).
-
property
-
class
NiBSplineCompFloatInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBSplineFloatInterpolator
Unknown.
-
property
base
¶ Base value when curve not defined.
-
property
bias
¶ Bias
-
property
multiplier
¶ Multiplier
-
property
offset
¶ Starting offset for the data. (USHRT_MAX for no data.)
-
property
-
class
NiBSplineCompPoint3Interpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBSplinePoint3Interpolator
Unknown.
-
class
NiBSplineCompTransformEvaluator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
class
NiBSplineCompTransformInterpolator
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiBSplineCompTransformInterpolator
,object
-
class
NiBSplineData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiBSplineData
,object
>>> # a doctest >>> from pyffi.formats.nif import NifFormat >>> block = NifFormat.NiBSplineData() >>> block.num_short_control_points = 50 >>> block.short_control_points.update_size() >>> for i in range(block.num_short_control_points): ... block.short_control_points[i] = 20 - i >>> list(block.get_short_data(12, 4, 3)) [(8, 7, 6), (5, 4, 3), (2, 1, 0), (-1, -2, -3)] >>> offset = block.append_short_data([(1,2),(4,3),(13,14),(8,2),(33,33)]) >>> offset 50 >>> list(block.get_short_data(offset, 5, 2)) [(1, 2), (4, 3), (13, 14), (8, 2), (33, 33)] >>> list(block.get_comp_data(offset, 5, 2, 10.0, 32767.0)) [(11.0, 12.0), (14.0, 13.0), (23.0, 24.0), (18.0, 12.0), (43.0, 43.0)] >>> block.append_float_data([(1.0,2.0),(3.0,4.0),(0.5,0.25)]) 0 >>> list(block.get_float_data(0, 3, 2)) [(1.0, 2.0), (3.0, 4.0), (0.5, 0.25)] >>> block.append_comp_data([(1,2),(4,3)]) (60, 2.5, 1.5) >>> list(block.get_short_data(60, 2, 2)) [(-32767, -10922), (32767, 10922)] >>> list(block.get_comp_data(60, 2, 2, 2.5, 1.5)) [(1.0, 2.00...), (4.0, 2.99...)]
-
append_comp_data
(data)[source]¶ Append data as compressed list.
- Parameters
data – A list of elements, where each element is a tuple of integers. (Note: cannot be an interator; maybe this restriction will be removed in a future version.)
- Returns
The offset, bias, and multiplier.
-
append_float_data
(data)[source]¶ Append data.
- Parameters
data – A list of elements, where each element is a tuple of floats. (Note: cannot be an interator; maybe this restriction will be removed in a future version.)
- Returns
The offset at which the data was appended.
-
append_short_data
(data)[source]¶ Append data.
- Parameters
data – A list of elements, where each element is a tuple of integers. (Note: cannot be an interator; maybe this restriction will be removed in a future version.)
- Returns
The offset at which the data was appended.
-
get_comp_data
(offset, num_elements, element_size, bias, multiplier)[source]¶ Get an interator to the data, converted to float with extra bias and multiplication factor. If C{x} is the short value, then the returned value is C{bias + x * multiplier / 32767.0}.
- Parameters
offset – The offset in the data where to start.
num_elements – Number of elements to get.
element_size – Size of a single element.
bias – Value bias.
multiplier – Value multiplier.
- Returns
A list of C{num_elements} tuples of size C{element_size}.
-
-
class
NiBSplineFloatInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBSplineInterpolator
Unknown.
-
class
NiBSplineInterpolator
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiBSplineInterpolator
,object
-
class
NiBSplinePoint3Interpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBSplineInterpolator
Unknown.
-
property
unknown_floats
¶ Unknown.
-
property
-
class
NiBSplineTransformInterpolator
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiBSplineTransformInterpolator
,object
-
class
NiBezierMesh
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
Unknown
-
property
bezier_triangle
¶ unknown
-
property
count_1
¶ Data count.
-
property
count_2
¶ data count 2.
-
property
data_2
¶ data count.
-
property
num_bezier_triangles
¶ references.
-
property
points_1
¶ data.
-
property
points_2
¶ data.
-
property
unknown_3
¶ Unknown.
-
property
unknown_4
¶ Unknown.
-
property
unknown_5
¶ Unknown (illegal link?).
-
property
unknown_6
¶ unknown
-
property
-
class
NiBezierTriangle4
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Sub data of NiBezierMesh
-
property
matrix
¶ unknown
-
property
unknown_1
¶ unknown
-
property
unknown_2
¶ unknown
-
property
unknown_3
¶ unknown
-
property
unknown_4
¶ unknown
-
property
unknown_5
¶ unknown
-
property
unknown_6
¶ unknown
-
property
vector_1
¶ unknown
-
property
vector_2
¶ unknown
-
property
-
class
NiBillboardNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
These nodes will always be rotated to face the camera creating a billboard effect for any attached objects.In pre-10.1.0.0 the Flags field is used for BillboardMode.Bit 0: hiddenBits 1-2: collision modeBit 3: unknown (set in most official meshes)Bits 5-6: billboard modeCollision modes:00 NONE01 USE_TRIANGLES10 USE_OBBS11 CONTINUEBillboard modes:00 ALWAYS_FACE_CAMERA01 ROTATE_ABOUT_UP10 RIGID_FACE_CAMERA11 ALWAYS_FACE_CENTER
-
property
billboard_mode
¶ The way the billboard will react to the camera.
-
property
-
class
NiBinaryExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Binary extra data object. Used to store tangents and bitangents in Oblivion.
-
property
binary_data
¶ The binary data.
-
property
-
class
NiBinaryVoxelData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Voxel data object.
-
property
num_unknown_bytes_2
¶ Unknown.
-
property
num_unknown_vectors
¶ Unknown.
-
property
unknown_5_ints
¶ Unknown.
-
property
unknown_7_floats
¶ Unknown.
-
property
unknown_bytes_1
¶ Unknown. Always a multiple of 7.
-
property
unknown_bytes_2
¶ Unknown.
-
property
unknown_short_1
¶ Unknown.
-
property
unknown_short_2
¶ Unknown.
-
property
unknown_short_3
¶ Unknown. Is this^3 the Unknown Bytes 1 size?
-
property
unknown_vectors
¶ Vectors on the unit sphere.
-
property
-
class
NiBinaryVoxelExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Voxel extra data object.
-
property
data
¶ Link to binary voxel data.
-
property
unknown_int
¶ Unknown. 0?
-
property
-
class
NiBlendBoolInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
An interpolator for a bool.
-
property
bool_value
¶ The interpolated bool?
-
property
-
class
NiBlendFloatInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
An interpolator for a float.
-
property
float_value
¶ The interpolated float?
-
property
-
class
NiBlendInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpolator
An extended type of interpolater.
-
property
unknown_int
¶ Unknown.
-
property
unknown_short
¶ Unknown.
-
property
-
class
NiBlendPoint3Interpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
Interpolates a point?
-
property
point_value
¶ The interpolated point?
-
property
-
class
NiBlendTransformInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
Unknown.
-
class
NiBone
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
A NiNode used as a skeleton bone?
-
class
NiBoneLODController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Level of detail controller for bones. Priority is arranged from low to high.
-
property
node_groups
¶ A list of node groups (each group a sequence of bones).
-
property
num_node_groups
¶ Number of node groups.
-
property
num_node_groups_2
¶ Number of node groups.
-
property
num_shape_groups
¶ Number of shape groups.
-
property
num_shape_groups_2
¶ The size of the second list of shape groups.
-
property
shape_groups_1
¶ List of shape groups.
-
property
shape_groups_2
¶ Group of NiTriShape indices.
-
property
unknown_int_1
¶ Unknown.
-
property
unknown_int_2
¶ Unknown.
-
property
unknown_int_3
¶ Unknown.
-
property
-
class
NiBoolData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Timed boolean data.
-
property
data
¶ The boolean keys.
-
property
-
class
NiBoolInterpController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
A controller that interpolates floating point numbers?
-
class
NiBoolInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyBasedInterpolator
Unknown.
-
property
bool_value
¶ Value when posed? At time 0?
-
property
data
¶ Refers to a NiBoolData object.
-
property
-
class
NiBoolTimelineInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBoolInterpolator
Unknown.
-
class
NiBooleanExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Boolean extra data.
-
property
boolean_data
¶ The boolean extra data value.
-
property
-
class
NiCamera
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
Camera object.
-
property
frustum_bottom
¶ Frustrum bottom.
-
property
frustum_far
¶ Frustrum far.
-
property
frustum_left
¶ Frustrum left.
-
property
frustum_near
¶ Frustrum near.
-
property
frustum_right
¶ Frustrum right.
-
property
frustum_top
¶ Frustrum top.
-
property
lod_adjust
¶ Level of detail adjust.
-
property
unknown_int
¶ Unknown. Changing value crashes viewer.
-
property
unknown_int_2
¶ Unknown. Changing value crashes viewer.
-
property
unknown_int_3
¶ Unknown.
-
property
unknown_link
¶ Unknown.
-
property
unknown_short
¶ Unknown.
-
property
use_orthographic_projection
¶ Determines whether perspective is used. Orthographic means no perspective.
-
property
viewport_bottom
¶ Viewport bottom.
-
property
viewport_left
¶ Viewport left.
-
property
viewport_right
¶ Viewport right.
-
property
viewport_top
¶ Viewport top.
-
property
-
class
NiClod
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriBasedGeom
A shape node that holds continuous level of detail information.Seems to be specific to Freedom Force.
-
class
NiClodData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriBasedGeomData
Holds mesh data for continuous level of detail shapes.Pesumably a progressive mesh with triangles specified by edge splits.Seems to be specific to Freedom Force.The structure of this is uncertain and highly experimental at this point.No file with this data can currently be read properly.
-
property
unknown_clod_shorts_1
¶
-
property
unknown_clod_shorts_2
¶
-
property
unknown_clod_shorts_3
¶
-
property
unknown_count_1
¶
-
property
unknown_count_2
¶
-
property
unknown_count_3
¶
-
property
unknown_float
¶
-
property
unknown_short
¶
-
property
unknown_shorts
¶
-
property
-
class
NiClodSkinInstance
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSkinInstance
A copy of NISkinInstance for use with NiClod meshes.
-
class
NiCollisionData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiCollisionObject
Collision box.
-
property
bounding_volume
¶ Collision data.
-
property
collision_mode
¶ Collision Mode
-
property
propagation_mode
¶ Propagation Mode
-
property
use_abv
¶ Use Alternate Bounding Volume.
-
property
-
class
NiCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
This is the most common collision object found in NIF files. It acts as a real object thatis visible and possibly (if the body allows for it) interactive. The node itselfis simple, it only has three properties.For this type of collision object, bhkRigidBody or bhkRigidBodyT is generally used.
-
property
target
¶ Index of the AV object referring to this collision object.
-
property
-
class
NiColorData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Color data for material color controller.
-
property
data
¶ The color keys.
-
property
-
class
NiColorExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown.
-
property
data
¶ RGBA Color?
-
property
-
class
NiControllerManager
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Unknown. Root of all controllers?
-
property
controller_sequences
¶ Refers to a list of NiControllerSequence object.
-
property
cumulative
¶ Designates whether animation sequences are cumulative?
-
property
num_controller_sequences
¶ The number of controller sequence objects.
-
property
object_palette
¶ Refers to a NiDefaultAVObjectPalette.
-
property
-
class
NiControllerSequence
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiControllerSequence
,object
-
class
NiDataStream
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
access
¶
-
property
cloning_behavior
¶
-
property
component_formats
¶ The format of each component in this data stream.
-
property
data
¶
-
property
num_bytes
¶ The size in bytes of this data stream.
-
property
num_components
¶ Number of components of the data (matches corresponding field in MeshData).
-
property
num_regions
¶ Number of regions (such as submeshes).
-
property
regions
¶ The regions in the mesh. Regions can be used to mark off submeshes which are independent draw calls.
-
property
streamable
¶
-
property
usage
¶
-
property
-
class
NiDefaultAVObjectPalette
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObjectPalette
Unknown. Refers to a list of objects. Used by NiControllerManager.
-
property
num_objs
¶ Number of objects.
-
property
objs
¶ The objects.
-
property
unknown_int
¶ Unknown.
-
property
-
class
NiDirectionalLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiLight
Directional light source.
-
class
NiDitherProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Unknown.
-
property
flags
¶ Enable dithering
- Type
1’s Bit
-
property
-
class
NiDynamicEffect
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
A dynamic effect such as a light or environment map.
-
property
affected_node_list_pointers
¶ This is probably the list of affected nodes. For some reason i do not know the max exporter seems to write pointers instead of links. But it doesn’t matter because at least in version 4.0.0.2 the list is automagically updated by the engine during the load stage.
-
property
affected_nodes
¶ The list of affected nodes?
-
property
num_affected_node_list_pointers
¶ The number of affected nodes referenced.
-
property
num_affected_nodes
¶ The number of affected nodes referenced.
-
property
switch_state
¶ Turns effect on and off? Switches list to list of unaffected nodes?
-
property
-
class
NiEnvMappedTriShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
Unknown
-
property
child_2
¶ unknown
-
property
child_3
¶ unknown
-
property
children
¶ List of child node object indices.
-
property
num_children
¶ The number of child objects.
-
property
unknown_1
¶ unknown (=4 - 5)
-
property
unknown_matrix
¶ unknown
-
property
-
class
NiEnvMappedTriShapeData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriShapeData
Holds mesh data using a list of singular triangles.
-
class
NiExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A generic extra data object.
-
property
name
¶ Name of this object.
-
property
next_extra_data
¶ Block number of the next extra data object.
-
property
-
class
NiExtraDataController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
An controller for extra data.
-
class
NiFlipController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Texture flipping controller.
-
property
delta
¶ Time between two flips.delta = (start_time - stop_time) / sources.num_indices
-
property
images
¶ The image sources
-
property
num_sources
¶ The number of source objects.
-
property
sources
¶ The texture sources.
-
property
texture_slot
¶ Target texture slot (0=base, 4=glow).
-
property
unknown_int_2
¶ 0?
-
property
-
class
NiFloatData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Possibly the 1D position along a 3D path.
-
property
data
¶ The keys.
-
property
-
class
NiFloatExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Float extra data.
-
property
float_data
¶ The float data.
-
property
-
class
NiFloatExtraDataController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraDataController
Unknown.
-
property
controller_data
¶ Refers to a NiFloatExtraData name.
-
property
num_extra_bytes
¶ Number of extra bytes.
-
property
unknown_bytes
¶ Unknown.
-
property
unknown_extra_bytes
¶ Unknown.
-
property
-
class
NiFloatInterpController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
A controller that interpolates floating point numbers?
-
class
NiFloatInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyBasedInterpolator
Unknown.
-
property
data
¶ Float data?
-
property
float_value
¶ Value when posed? At time 0?
-
property
-
class
NiFloatsExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown.
-
property
data
¶ Float data.
-
property
num_floats
¶ Number of floats in the next field.
-
property
-
class
NiFogProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Describes… fog?
-
property
flags
¶ Sets Fog Function to FOG_RANGE_SQ4’s bit: Sets Fog Function to FOG_VERTEX_ALPHAIf 2’s and 4’s bit are not set, but fog is enabled, Fog function is FOG_Z_LINEAR.
- Type
1’s bit
- Type
Enables Fog2’s bit
-
property
fog_color
¶ The color of the fog.
-
property
fog_depth
¶ The thickness of the fog? Default is 1.0
-
property
-
class
NiFurSpringController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
property
bones
¶ List of all armature bones.
-
property
bones_2
¶ List of all armature bones.
-
property
num_bones
¶ The number of node bones referenced as influences.
-
property
num_bones_2
¶ The number of node bones referenced as influences.
-
property
unknown_float
¶
-
property
unknown_float_2
¶
-
property
-
class
NiGeomMorpherController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
Time controller for geometry morphing.
-
property
always_update
¶ Always Update
-
property
data
¶ Geometry morphing data index.
-
property
extra_flags
¶ Unknown.
-
property
interpolator_weights
¶ Weighted Interpolators?
-
property
interpolators
¶ List of interpolators.
-
property
num_interpolators
¶ The number of interpolator objects.
-
property
num_unknown_ints
¶ A count.
-
property
unknown_2
¶ Unknown.
-
property
unknown_ints
¶ Unknown.
-
property
-
class
NiGeometry
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiGeometry
,object
>>> from pyffi.formats.nif import NifFormat >>> id44 = NifFormat.Matrix44() >>> id44.set_identity() >>> skelroot = NifFormat.NiNode() >>> skelroot.name = 'skelroot' >>> skelroot.set_transform(id44) >>> bone1 = NifFormat.NiNode() >>> bone1.name = 'bone1' >>> bone1.set_transform(id44) >>> bone2 = NifFormat.NiNode() >>> bone2.name = 'bone2' >>> bone2.set_transform(id44) >>> bone21 = NifFormat.NiNode() >>> bone21.name = 'bone21' >>> bone21.set_transform(id44) >>> bone22 = NifFormat.NiNode() >>> bone22.name = 'bone22' >>> bone22.set_transform(id44) >>> bone211 = NifFormat.NiNode() >>> bone211.name = 'bone211' >>> bone211.set_transform(id44) >>> skelroot.add_child(bone1) >>> bone1.add_child(bone2) >>> bone2.add_child(bone21) >>> bone2.add_child(bone22) >>> bone21.add_child(bone211) >>> geom = NifFormat.NiTriShape() >>> geom.name = 'geom' >>> geom.set_transform(id44) >>> geomdata = NifFormat.NiTriShapeData() >>> skininst = NifFormat.NiSkinInstance() >>> skindata = NifFormat.NiSkinData() >>> skelroot.add_child(geom) >>> geom.data = geomdata >>> geom.skin_instance = skininst >>> skininst.skeleton_root = skelroot >>> skininst.data = skindata >>> skininst.num_bones = 4 >>> skininst.bones.update_size() >>> skininst.bones[0] = bone1 >>> skininst.bones[1] = bone2 >>> skininst.bones[2] = bone22 >>> skininst.bones[3] = bone211 >>> skindata.num_bones = 4 >>> skindata.bone_list.update_size() >>> [child.name for child in skelroot.children] [b'bone1', b'geom'] >>> skindata.set_transform(id44) >>> for bonedata in skindata.bone_list: ... bonedata.set_transform(id44) >>> affectedbones = geom.flatten_skin() >>> [bone.name for bone in affectedbones] [b'bone1', b'bone2', b'bone22', b'bone211'] >>> [child.name for child in skelroot.children] [b'geom', b'bone1', b'bone21', b'bone2', b'bone22', b'bone211']
-
add_bone
(bone, vert_weights)[source]¶ Add bone with given vertex weights. After adding all bones, the geometry skinning information should be set from the current position of the bones using the L{update_bind_position} function.
- Parameters
bone – The bone NiNode block.
vert_weights – A dictionary mapping each influenced vertex index to a vertex weight.
-
flatten_skin
()[source]¶ Reposition all bone blocks and geometry block in the tree to be direct children of the skeleton root.
Returns list of all used bones by the skin.
-
get_skin_deformation
()[source]¶ Returns a list of vertices and normals in their final position after skinning, in geometry space.
-
get_vertex_weights
()[source]¶ Get vertex weights in a convenient format: list bone and weight per vertex.
-
send_bones_to_bind_position
()[source]¶ Send all bones to their bind position.
- @deprecated: Use L{NifFormat.NiNode.send_bones_to_bind_position} instead of
this function.
-
update_bind_position
()[source]¶ Make current position of the bones the bind position for this geometry.
Sets the NiSkinData overall transform to the inverse of the geometry transform relative to the skeleton root, and sets the NiSkinData of each bone to the geometry transform relative to the skeleton root times the inverse of the bone transform relative to the skeleton root.
-
-
class
NiGeometryData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiGeometryData
,object
>>> from pyffi.formats.nif import NifFormat >>> geomdata = NifFormat.NiGeometryData() >>> geomdata.num_vertices = 3 >>> geomdata.has_vertices = True >>> geomdata.has_normals = True >>> geomdata.has_vertex_colors = True >>> geomdata.num_uv_sets = 2 >>> geomdata.vertices.update_size() >>> geomdata.normals.update_size() >>> geomdata.vertex_colors.update_size() >>> geomdata.uv_sets.update_size() >>> geomdata.vertices[0].x = 1 >>> geomdata.vertices[0].y = 2 >>> geomdata.vertices[0].z = 3 >>> geomdata.vertices[1].x = 4 >>> geomdata.vertices[1].y = 5 >>> geomdata.vertices[1].z = 6 >>> geomdata.vertices[2].x = 1.200001 >>> geomdata.vertices[2].y = 3.400001 >>> geomdata.vertices[2].z = 5.600001 >>> geomdata.normals[0].x = 0 >>> geomdata.normals[0].y = 0 >>> geomdata.normals[0].z = 1 >>> geomdata.normals[1].x = 0 >>> geomdata.normals[1].y = 1 >>> geomdata.normals[1].z = 0 >>> geomdata.normals[2].x = 1 >>> geomdata.normals[2].y = 0 >>> geomdata.normals[2].z = 0 >>> geomdata.vertex_colors[1].r = 0.310001 >>> geomdata.vertex_colors[1].g = 0.320001 >>> geomdata.vertex_colors[1].b = 0.330001 >>> geomdata.vertex_colors[1].a = 0.340001 >>> geomdata.uv_sets[0][0].u = 0.990001 >>> geomdata.uv_sets[0][0].v = 0.980001 >>> geomdata.uv_sets[0][2].u = 0.970001 >>> geomdata.uv_sets[0][2].v = 0.960001 >>> geomdata.uv_sets[1][0].v = 0.910001 >>> geomdata.uv_sets[1][0].v = 0.920001 >>> geomdata.uv_sets[1][2].v = 0.930001 >>> geomdata.uv_sets[1][2].v = 0.940001 >>> for h in geomdata.get_vertex_hash_generator(): ... print(h) (1000, 2000, 3000, 0, 0, 1000, 99000, 98000, 0, 92000, 0, 0, 0, 0) (4000, 5000, 6000, 0, 1000, 0, 0, 0, 0, 0, 310, 320, 330, 340) (1200, 3400, 5600, 1000, 0, 0, 97000, 96000, 0, 94000, 0, 0, 0, 0)
-
get_vertex_hash_generator
(vertexprecision=3, normalprecision=3, uvprecision=5, vcolprecision=3)[source]¶ Generator which produces a tuple of integers for each (vertex, normal, uv, vcol), to ease detection of duplicate vertices. The precision parameters denote number of significant digits behind the comma.
Default for uvprecision should really be high because for very large models the uv coordinates can be very close together.
For vertexprecision, 3 seems usually enough (maybe we’ll have to increase this at some point).
- Parameters
- Returns
A generator yielding a hash value for each vertex.
-
-
class
NiGravity
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
A particle modifier; applies a gravitational field on the particles.
-
property
direction
¶ The direction of the applied acceleration.
-
property
force
¶ The strength/force of this gravity.
-
property
position
¶ check for versions<= 3.1)
- Type
The position of the mass point relative to the particle system. (TODO
-
property
type
¶ The force field’s type.
-
property
unknown_float_1
¶ Unknown.
-
property
-
class
NiImage
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
file_name
¶ The filepath to the texture.
-
property
image_data
¶ Link to the internally stored image data.
-
property
unknown_float
¶ Unknown. Perhaps fImageScale?
-
property
unknown_int
¶ Unknown. Often seems to be 7. Perhaps m_uiMipLevels?
-
property
use_external
¶ 0 if the texture is internal to the NIF file.
-
property
-
class
NiInstancingMeshModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiMeshModifier
-
class
NiIntegerExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Extra integer data.
-
property
integer_data
¶ The value of the extra data.
-
property
-
class
NiIntegersExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Integers data.
-
property
data
¶ Integers.
-
property
num_integers
¶ Number of integers.
-
property
-
class
NiInterpController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
A controller capable of interpolation?
-
class
NiInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Interpolator objects - function unknown.
-
class
NiKeyBasedInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpolator
Interpolator objects that use keys?
-
class
NiKeyframeController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
A time controller object for animation key frames.
-
property
data
¶ Keyframe controller data index.
-
property
-
class
NiKeyframeData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiKeyframeData
,object
-
class
NiLODData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Abstract class used for different types of LOD selections.
-
class
NiLODNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSwitchNode
Level of detail selector. Links to different levels of detail of the same model, used to switch a geometry at a specified distance.
-
property
lod_center
¶ Point to calculate distance from for switching?
-
property
lod_level_data
¶ Refers to LOD level information, either distance or screen size based.
-
property
lod_levels
¶ The ranges of distance that each level of detail applies in.
-
property
num_lod_levels
¶ Number of levels of detail.
-
property
-
class
NiLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiDynamicEffect
Light source.
-
property
ambient_color
¶ Ambient color.
-
property
diffuse_color
¶ Diffuse color.
-
property
dimmer
¶ Dimmer.
-
property
specular_color
¶ Specular color.
-
property
-
class
NiLightColorController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPoint3InterpController
Light color animation controller.
-
class
NiLightDimmerController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Unknown controller.
-
class
NiLightIntensityController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Unknown controller
-
class
NiLines
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriBasedGeom
Wireframe geometry.
-
class
NiLinesData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiGeometryData
Wireframe geometry data.
-
property
lines
¶ Is vertex connected to other (next?) vertex?
-
property
-
class
NiLookAtController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Unknown. Start time is 3.4e+38 and stop time is -3.4e+38.
-
property
look_at_node
¶ Link to the node to look at?
-
property
unknown_1
¶ Unknown.
-
property
-
class
NiLookAtInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpolator
Unknown.
-
property
look_at
¶ Refers to a Node to focus on.
-
property
rotation
¶ Rotation.
-
property
scale
¶ Scale.
-
property
target
¶ Target node name.
-
property
translation
¶ Translate.
-
property
unknown_link_1
¶ Refers to NiPoint3Interpolator.
-
property
unknown_link_2
¶ Refers to a NiFloatInterpolator.
-
property
unknown_link_3
¶ Refers to a NiFloatInterpolator.
-
property
unknown_short
¶ Unknown.
-
property
-
class
NiMaterialColorController
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiMaterialColorController
,object
-
class
NiMaterialProperty
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiMaterialProperty
,object
-
class
NiMesh
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiRenderObject
-
property
bound
¶ The combined bounding volume of all submeshes.
-
property
datas
¶
-
property
instancing_enabled
¶ Sets whether hardware instancing is being used.
-
property
modifiers
¶
-
property
num_datas
¶
-
property
num_modifiers
¶
-
property
num_submeshes
¶ The number of submeshes contained in this mesh.
-
property
primitive_type
¶ The primitive type of the mesh, such as triangles or lines.
-
property
unknown_100
¶ Unknown.
-
property
unknown_101
¶ Unknown.
-
property
unknown_102
¶ Size of additional data.
-
property
unknown_103
¶
-
property
unknown_200
¶
-
property
unknown_201
¶
-
property
unknown_250
¶
-
property
unknown_251
¶
-
property
unknown_300
¶
-
property
unknown_301
¶
-
property
unknown_302
¶
-
property
unknown_303
¶
-
property
unknown_350
¶
-
property
unknown_351
¶
-
property
unknown_400
¶
-
property
unknown_51
¶
-
property
unknown_52
¶
-
property
unknown_53
¶
-
property
unknown_54
¶
-
property
unknown_55
¶
-
property
unknown_56
¶
-
property
-
class
NiMeshHWInstance
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
class
NiMeshModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Base class for mesh modifiers.
-
property
complete_points
¶ The complete points used by this mesh modifier
-
property
num_complete_points
¶ The number of complete points used by this mesh modifier.
-
property
num_submit_points
¶ The number of submit points used by this mesh modifier.
-
property
submit_points
¶ The submit points used by this mesh modifier
-
property
-
class
NiMeshPSysData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysData
Particle meshes data.
-
property
num_unknown_ints_1
¶ Unknown.
-
property
unknown_byte_3
¶ Unknown. 0?
-
property
unknown_int_2
¶ Unknown. Possible vertex count but probably not.
-
property
unknown_ints_1
¶ Unknown integers
-
property
unknown_node
¶ Unknown NiNode.
-
property
-
class
NiMeshParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleSystem
Particle system.
-
class
NiMorphController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
Unknown! Used by Daoc->’healing.nif’.
-
class
NiMorphData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiMorphData
,object
-
class
NiMorphMeshModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiMeshModifier
Performs linear-weighted blending between a set of target data streams.
-
property
elements
¶ Semantics and normalization of the morphing data stream elements.
-
property
flags
¶ FLAG_RELATIVETARGETS = 0x01FLAG_UPDATENORMALS = 0x02FLAG_NEEDSUPDATE = 0x04FLAG_ALWAYSUPDATE = 0x08FLAG_NEEDSCOMPLETION = 0x10FLAG_SKINNED = 0x20FLAG_SWSKINNED = 0x40
-
property
num_elements
¶ The number of morphing data stream elements.
-
property
num_targets
¶ The number of morph targets.
-
property
-
class
NiMorphWeightsController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
-
property
interpolators
¶
-
property
num_interpolators
¶
-
property
num_targets
¶ The number of morph targets.
-
property
target_names
¶ Name of each morph target.
-
property
unknown_2
¶
-
property
-
class
NiMorpherController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
Unknown! Used by Daoc.
-
property
data
¶ This controller’s data.
-
property
-
class
NiMultiTargetTransformController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
Unknown.
-
property
extra_targets
¶ NiNode Targets to be controlled.
-
property
num_extra_targets
¶ The number of target pointers that follow.
-
property
-
class
NiMultiTextureProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
(note: not quite complete yet… but already reads most of the DAoC ones)
-
property
flags
¶ Property flags.
-
property
texture_elements
¶ Describes the various textures used by this mutli-texture property. Each slot probably has special meaning like thoes in NiTexturingProperty.
-
property
unknown_int
¶ Unknown. Always 5 for DAoC files, and always 6 for Bridge Commander. Seems to have nothing to do with the number of Texture Element slots that follow.
-
property
-
class
NiNode
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiNode
,object
>>> from pyffi.formats.nif import NifFormat >>> x = NifFormat.NiNode() >>> y = NifFormat.NiNode() >>> z = NifFormat.NiNode() >>> x.num_children =1 >>> x.children.update_size() >>> y in x.children False >>> x.children[0] = y >>> y in x.children True >>> x.add_child(z, front = True) >>> x.add_child(y) >>> x.num_children 2 >>> x.children[0] is z True >>> x.remove_child(y) >>> y in x.children False >>> x.num_children 1 >>> e = NifFormat.NiSpotLight() >>> x.add_effect(e) >>> x.num_effects 1 >>> e in x.effects True
>>> from pyffi.formats.nif import NifFormat >>> node = NifFormat.NiNode() >>> child1 = NifFormat.NiNode() >>> child1.name = "hello" >>> child_2 = NifFormat.NiNode() >>> child_2.name = "world" >>> node.get_children() [] >>> node.set_children([child1, child_2]) >>> [child.name for child in node.get_children()] [b'hello', b'world'] >>> [child.name for child in node.children] [b'hello', b'world'] >>> node.set_children([]) >>> node.get_children() [] >>> # now set them the other way around >>> node.set_children([child_2, child1]) >>> [child.name for child in node.get_children()] [b'world', b'hello'] >>> [child.name for child in node.children] [b'world', b'hello'] >>> node.remove_child(child_2) >>> [child.name for child in node.children] [b'hello'] >>> node.add_child(child_2) >>> [child.name for child in node.children] [b'hello', b'world']
>>> from pyffi.formats.nif import NifFormat >>> node = NifFormat.NiNode() >>> effect1 = NifFormat.NiSpotLight() >>> effect1.name = "hello" >>> effect2 = NifFormat.NiSpotLight() >>> effect2.name = "world" >>> node.get_effects() [] >>> node.set_effects([effect1, effect2]) >>> [effect.name for effect in node.get_effects()] [b'hello', b'world'] >>> [effect.name for effect in node.effects] [b'hello', b'world'] >>> node.set_effects([]) >>> node.get_effects() [] >>> # now set them the other way around >>> node.set_effects([effect2, effect1]) >>> [effect.name for effect in node.get_effects()] [b'world', b'hello'] >>> [effect.name for effect in node.effects] [b'world', b'hello'] >>> node.remove_effect(effect2) >>> [effect.name for effect in node.effects] [b'hello'] >>> node.add_effect(effect2) >>> [effect.name for effect in node.effects] [b'hello', b'world']
-
add_child
(child, front=False)[source]¶ Add block to child list.
- Parameters
child (L{NifFormat.NiAVObject}) – The child to add.
- Keyword Arguments
front – Whether to add to the front or to the end of the list (default is at end).
-
add_effect
(effect)[source]¶ Add an effect to the list of effects.
- Parameters
effect (L{NifFormat.NiDynamicEffect}) – The effect to add.
-
get_children
()[source]¶ Return a list of the children of the block.
- Returns
The list of children.
- Return type
list
of L{NifFormat.NiAVObject}
-
get_effects
()[source]¶ Return a list of the effects of the block.
- Returns
The list of effects.
- Return type
list
of L{NifFormat.NiDynamicEffect}
-
get_skinned_geometries
()[source]¶ This function yields all skinned geometries which have self as skeleton root.
-
merge_external_skeleton_root
(skelroot)[source]¶ Attach skinned geometry to self (which will be the new skeleton root of the nif at the given skeleton root). Use this function if you move a skinned geometry from one nif into a new NIF file. The bone links will be updated to point to the tree at self, instead of to the external tree.
-
merge_skeleton_roots
()[source]¶ This function will look for other geometries whose skeleton root is a (possibly indirect) child of this node. It will then reparent those geometries to this node. For example, it will unify the skeleton roots in Morrowind’s cliffracer.nif file, or of the (official) body skins. This makes it much easier to import skeletons in for instance Blender: there will be only one skeleton root for each bone, over all geometries.
The merge fails for those geometries whose global skin data transform does not match the inverse geometry transform relative to the skeleton root (the maths does not work out in this case!)
Returns list of all new blocks that have been reparented (and added to the skeleton root children list), and a list of blocks for which the merge failed.
-
remove_child
(child)[source]¶ Remove a block from the child list.
- Parameters
child (L{NifFormat.NiAVObject}) – The child to remove.
-
remove_effect
(effect)[source]¶ Remove a block from the effect list.
- Parameters
effect (L{NifFormat.NiDynamicEffect}) – The effect to remove.
-
send_bones_to_bind_position
()[source]¶ This function will send all bones of geometries of this skeleton root to their bind position. For best results, call L{send_geometries_to_bind_position} first.
- Returns
A number quantifying the remaining difference between bind positions.
- Return type
float
-
send_detached_geometries_to_node_position
()[source]¶ Some nifs (in particular in Morrowind) have geometries that are skinned but that do not share bones. In such cases, send_geometries_to_bind_position cannot reposition them. This function will send such geometries to the position of their root node.
Examples of such nifs are the official Morrowind skins (after merging skeleton roots).
Returns list of detached geometries that have been moved.
-
send_geometries_to_bind_position
()[source]¶ Call this on the skeleton root of geometries. This function will transform the geometries, such that all skin data transforms coincide, or at least coincide partially.
- Returns
A number quantifying the remaining difference between bind positions.
- Return type
float
-
-
class
NiObject
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiObject
,object
-
apply_scale
(scale)[source]¶ Scale data in this block. This implementation does nothing. Override this method if it contains geometry data that can be scaled.
-
find_chain
(block, block_type=None)[source]¶ Finds a chain of blocks going from C{self} to C{block}. If found, self is the first element and block is the last element. If no branch found, returns an empty list. Does not check whether there is more than one branch; if so, the first one found is returned.
- Parameters
block – The block to find a chain to.
block_type – The type that blocks should have in this chain.
-
is_interchangeable
(other)[source]¶ Are the two blocks interchangeable?
@todo: Rely on AnyType, SimpleType, ComplexType, etc. implementation.
-
tree
(block_type=None, follow_all=True, unique=False)[source]¶ A generator for parsing all blocks in the tree (starting from and including C{self}).
- Parameters
block_type – If not
None
, yield only blocks of the type C{block_type}.follow_all – If C{block_type} is not
None
, then if this isTrue
the function will parse the whole tree. Otherwise, the function will not follow branches that start by a non-C{block_type} block.unique – Whether the generator can return the same block twice or not.
-
-
class
NiObjectNET
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiObjectNET
,object
-
add_controller
(ctrlblock)[source]¶ Add block to controller chain and set target of controller to self.
-
add_extra_data
(extrablock)[source]¶ Add block to extra data list and extra data chain. It is good practice to ensure that the extra data has empty next_extra_data field when adding it to avoid loops in the hierarchy.
-
remove_extra_data
(extrablock)[source]¶ Remove block from extra data list and extra data chain.
>>> from pyffi.formats.nif import NifFormat >>> block = NifFormat.NiNode() >>> block.num_extra_data_list = 3 >>> block.extra_data_list.update_size() >>> extrablock = NifFormat.NiStringExtraData() >>> block.extra_data_list[1] = extrablock >>> block.remove_extra_data(extrablock) >>> [extra for extra in block.extra_data_list] [None, None]
-
set_extra_datas
(extralist)[source]¶ Set all extra data blocks from given list (erases existing data).
>>> from pyffi.formats.nif import NifFormat >>> node = NifFormat.NiNode() >>> extra1 = NifFormat.NiExtraData() >>> extra1.name = "hello" >>> extra2 = NifFormat.NiExtraData() >>> extra2.name = "world" >>> node.get_extra_datas() [] >>> node.set_extra_datas([extra1, extra2]) >>> [extra.name for extra in node.get_extra_datas()] [b'hello', b'world'] >>> [extra.name for extra in node.extra_data_list] [b'hello', b'world'] >>> node.extra_data is extra1 True >>> extra1.next_extra_data is extra2 True >>> extra2.next_extra_data is None True >>> node.set_extra_datas([]) >>> node.get_extra_datas() [] >>> # now set them the other way around >>> node.set_extra_datas([extra2, extra1]) >>> [extra.name for extra in node.get_extra_datas()] [b'world', b'hello'] >>> [extra.name for extra in node.extra_data_list] [b'world', b'hello'] >>> node.extra_data is extra2 True >>> extra2.next_extra_data is extra1 True >>> extra1.next_extra_data is None True
- Parameters
extralist (
list
of L{NifFormat.NiExtraData}) – List of extra data blocks to add.
-
-
class
NiPSBombForce
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
name
¶
-
property
unknown_1
¶
-
property
unknown_10
¶
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSBoundUpdater
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
unknown_1
¶
-
property
unknown_2
¶
-
property
-
class
NiPSBoxEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
name
¶
-
property
unknown_1
¶
-
property
unknown_10
¶
-
property
unknown_11
¶
-
property
unknown_12
¶
-
property
unknown_13
¶
-
property
unknown_14
¶
-
property
unknown_15
¶
-
property
unknown_16
¶
-
property
unknown_17
¶
-
property
unknown_18
¶
-
property
unknown_19
¶
-
property
unknown_2
¶
-
property
unknown_20
¶
-
property
unknown_21
¶
-
property
unknown_22
¶
-
property
unknown_23
¶
-
property
unknown_24
¶
-
property
unknown_25
¶
-
property
unknown_26
¶
-
property
unknown_27
¶
-
property
unknown_28
¶
-
property
unknown_29
¶
-
property
unknown_3
¶
-
property
unknown_30
¶
-
property
unknown_31
¶
-
property
unknown_32
¶
-
property
unknown_33
¶
-
property
unknown_34
¶
-
property
unknown_35
¶
-
property
unknown_36
¶
-
property
unknown_37
¶
-
property
unknown_38
¶
-
property
unknown_39
¶
-
property
unknown_4
¶
-
property
unknown_40
¶
-
property
unknown_41
¶
-
property
unknown_42
¶
-
property
unknown_43
¶
-
property
unknown_44
¶
-
property
unknown_45
¶
-
property
unknown_46
¶
-
property
unknown_47
¶
-
property
unknown_48
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSCylinderEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSSphereEmitter
-
property
unknown_23
¶
-
property
-
class
NiPSDragForce
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
unknown_1
¶
-
property
unknown_10
¶
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSEmitParticlesCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysEmitterCtlr
-
class
NiPSEmitterDeclinationCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
-
class
NiPSEmitterDeclinationVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSEmitterDeclinationCtlr
-
class
NiPSEmitterLifeSpanCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
-
class
NiPSEmitterPlanarAngleCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
-
class
NiPSEmitterPlanarAngleVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSEmitterPlanarAngleCtlr
-
class
NiPSEmitterRadiusCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
property
interpolator
¶
-
property
unknown_2
¶
-
property
-
class
NiPSEmitterRotAngleCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
-
class
NiPSEmitterRotAngleVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSEmitterRotAngleCtlr
-
class
NiPSEmitterRotSpeedCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
-
class
NiPSEmitterRotSpeedVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSEmitterRotSpeedCtlr
-
class
NiPSEmitterSpeedCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
property
interpolator
¶
-
property
unknown_3
¶
-
property
-
class
NiPSFacingQuadGenerator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
unknown_1
¶
-
property
unknown_10
¶
-
property
unknown_11
¶
-
property
unknown_12
¶
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSForceActiveCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
property
interpolator
¶
-
property
unknown_2
¶
-
property
-
class
NiPSGravityForce
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
unknown_1
¶
-
property
unknown_10
¶
-
property
unknown_11
¶
-
property
unknown_12
¶
-
property
unknown_13
¶
-
property
unknown_14
¶
-
property
unknown_15
¶
-
property
unknown_16
¶
-
property
unknown_17
¶
-
property
unknown_18
¶
-
property
unknown_19
¶
-
property
unknown_2
¶
-
property
unknown_20
¶
-
property
unknown_21
¶
-
property
unknown_22
¶
-
property
unknown_23
¶
-
property
unknown_24
¶
-
property
unknown_25
¶
-
property
unknown_26
¶
-
property
unknown_27
¶
-
property
unknown_28
¶
-
property
unknown_29
¶
-
property
unknown_3
¶
-
property
unknown_30
¶
-
property
unknown_31
¶
-
property
unknown_32
¶
-
property
unknown_33
¶
-
property
unknown_34
¶
-
property
unknown_35
¶
-
property
unknown_36
¶ Gravity node?
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSGravityStrengthCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
-
class
NiPSMeshEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
name
¶
-
property
unknown_1
¶
-
property
unknown_10
¶
-
property
unknown_11
¶
-
property
unknown_12
¶
-
property
unknown_13
¶
-
property
unknown_14
¶
-
property
unknown_15
¶
-
property
unknown_16
¶
-
property
unknown_17
¶
-
property
unknown_18
¶
-
property
unknown_19
¶
-
property
unknown_2
¶
-
property
unknown_20
¶
-
property
unknown_21
¶
-
property
unknown_22
¶
-
property
unknown_23
¶
-
property
unknown_24
¶
-
property
unknown_25
¶
-
property
unknown_26
¶
-
property
unknown_27
¶
-
property
unknown_28
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSMeshParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSParticleSystem
-
property
unknown_23
¶
-
property
unknown_24
¶ Unknown - may or may not be emitted mesh?
-
property
unknown_25
¶
-
property
unknown_26
¶
-
property
-
class
NiPSParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
-
property
emitter
¶ Emitter?
-
property
generator
¶ Generator?
-
property
simulator
¶ Simulator?
-
property
unknown_10
¶ 0?
-
property
unknown_11
¶ 0?
-
property
unknown_12
¶ Counter?
-
property
unknown_15
¶ Simulator?
-
property
unknown_16
¶ Updater?
-
property
unknown_17
¶ 1?
-
property
unknown_19
¶ 0?
-
property
unknown_20
¶ Spawner?
-
property
unknown_21
¶ Unknown
-
property
unknown_22
¶ Unknown
-
property
unknown_27
¶
-
property
unknown_28
¶
-
property
unknown_29
¶
-
property
unknown_3
¶ 0?
-
property
unknown_30
¶
-
property
unknown_31
¶
-
property
unknown_32
¶
-
property
unknown_33
¶
-
property
unknown_34
¶
-
property
unknown_35
¶
-
property
unknown_36
¶ -1?
-
property
unknown_37
¶
-
property
unknown_38
¶
-
property
unknown_39
¶
-
property
unknown_4
¶ -1?
-
property
unknown_5
¶ 0?
-
property
unknown_6
¶ 256?
-
property
unknown_7
¶ 0?
-
property
unknown_8
¶ 0?
-
property
unknown_9
¶ 0?
-
property
-
class
NiPSPlanarCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
name
¶
-
property
unknown_byte_4
¶
-
property
unknown_floats_5
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_link_6
¶
-
property
unknown_short_3
¶
-
property
-
class
NiPSResetOnLoopCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
class
NiPSSimulator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiMeshModifier
The mesh modifier that performs all particle system simulation.
-
property
num_simulation_steps
¶ The number of simulation steps in this modifier.
-
property
simulation_steps
¶ Links to the simulation steps.
-
property
-
class
NiPSSimulatorCollidersStep
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSSimulatorStep
Encapsulates a floodgate kernel that simulates particle colliders.
-
property
colliders
¶ The colliders affecting the particle system.
-
property
num_colliders
¶ The number of colliders affecting the particle system.
-
property
-
class
NiPSSimulatorFinalStep
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSSimulatorStep
Encapsulates a floodgate kernel that updates particle positions and ages. As indicated by its name, this step should be attached last in the NiPSSimulator mesh modifier.
-
class
NiPSSimulatorForcesStep
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSSimulatorStep
Encapsulates a floodgate kernel that simulates particle forces.
-
property
forces
¶ The forces affecting the particle system.
-
property
num_forces
¶ The number of forces affecting the particle system.
-
property
-
class
NiPSSimulatorGeneralStep
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSSimulatorStep
Encapsulates a floodgate kernel that updates particle size, colors, and rotations.
-
property
color_keys
¶ The particle color keys.
-
property
color_loop_behavior
¶ The loop behavior for the color keys.
-
property
grow_generation
¶ Specifies the particle generation to which the grow effect should be applied. This is usually generation 0, so that newly created particles will grow.
-
property
grow_time
¶ The the amount of time over which a particle’s size is ramped from 0.0 to 1.0 in seconds
-
property
num_color_keys
¶ The number of color animation keys.
-
property
num_rotation_keys
¶ The number of rotatoin animation keys.
-
property
num_size_keys
¶ The number of size animation keys.
-
property
rotation_keys
¶ The particle rotation keys.
-
property
rotation_loop_behavior
¶ The loop behavior for the rotation keys.
-
property
shrink_generation
¶ Specifies the particle generation to which the shrink effect should be applied. This is usually the highest supported generation for the particle system, so that particles will shrink immediately before getting killed.
-
property
shrink_time
¶ The the amount of time over which a particle’s size is ramped from 1.0 to 0.0 in seconds
-
property
size_keys
¶ The particle size keys.
-
property
size_loop_behavior
¶ The loop behavior for the size keys.
-
property
unknown_1
¶
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
-
class
NiPSSimulatorMeshAlignStep
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSSimulatorStep
Encapsulates a floodgate kernel that updates mesh particle alignment and transforms.
-
property
num_rotation_keys
¶ The number of rotation keys.
-
property
rotation_keys
¶ The particle rotation keys.
-
property
rotation_loop_behavior
¶ The loop behavior for the rotation keys.
-
property
-
class
NiPSSimulatorStep
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Abstract base class for a single step in the particle system simulation process. It has no seralized data.
-
class
NiPSSpawner
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
class
NiPSSphereEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
name
¶
-
property
unknown_10
¶
-
property
unknown_11
¶
-
property
unknown_12
¶
-
property
unknown_13
¶
-
property
unknown_14
¶
-
property
unknown_15
¶
-
property
unknown_16
¶
-
property
unknown_17
¶
-
property
unknown_18
¶
-
property
unknown_19
¶
-
property
unknown_2
¶
-
property
unknown_20
¶
-
property
unknown_21
¶ Target node?
-
property
unknown_22
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
property
-
class
NiPSSphericalCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
unknown_1
¶
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
-
class
NiPSysAgeDeathModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown particle modifier.
-
property
spawn_modifier
¶ Link to NiPSysSpawnModifier object?
-
property
spawn_on_death
¶ Unknown.
-
property
-
class
NiPSysAirFieldAirFrictionCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for air field air friction.
-
class
NiPSysAirFieldInheritVelocityCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for air field inherit velocity.
-
class
NiPSysAirFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysFieldModifier
Particle system modifier, used for controlling the particle velocity in a field like wind.
-
property
direction
¶ Direction of the particle velocity
-
property
unknown_boolean_1
¶ Unknown
-
property
unknown_boolean_2
¶ Unknown
-
property
unknown_boolean_3
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_float_3
¶ Unknown
-
property
unknown_float_4
¶ Unknown
-
property
-
class
NiPSysAirFieldSpreadCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for air field spread.
-
class
NiPSysBombModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle modifier that uses a NiNode to use as a “Bomb Object” to alter the path of particles.
-
property
bomb_axis
¶ Orientation of bomb object.
-
property
bomb_object
¶ Link to a NiNode for bomb to function.
-
property
decay
¶ Falloff rate of the bomb object.
-
property
decay_type
¶ Decay type
-
property
delta_v
¶ DeltaV / Strength?
-
property
symmetry_type
¶ Shape/symmetry of the bomb object.
-
property
-
class
NiPSysBoundUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown particle system modifier.
-
property
update_skip
¶ Unknown.
-
property
-
class
NiPSysBoxEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysVolumeEmitter
Particle emitter that uses points within a defined Box shape to emit from..
-
property
depth
¶ Defines the Depth of the box area.
-
property
height
¶ Defines the Height of the box area.
-
property
width
¶ Defines the Width of the box area.
-
property
-
class
NiPSysCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Particle system collider.
-
property
bounce
¶ Defines amount of bounce the collider object has.
-
property
collider_object
¶ Links to a NiNode that will define where in object space the collider is located/oriented.
-
property
die_on_collide
¶ Kill particles on impact if set to yes.
-
property
next_collider
¶ The next collider.
-
property
parent
¶ Link to parent.
-
property
spawn_modifier
¶ Link to NiPSysSpawnModifier object?
-
property
spawn_on_collide
¶ Unknown.
-
property
-
class
NiPSysColliderManager
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle modifier that adds a defined shape to act as a collision object for particles to interact with.
-
property
collider
¶ Link to a NiPSysPlanarCollider or NiPSysSphericalCollider.
-
property
-
class
NiPSysColorModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle modifier that adds keyframe data to modify color/alpha values of particles over time.
-
property
data
¶ Refers to NiColorData object.
-
property
-
class
NiPSysCylinderEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysVolumeEmitter
Particle emitter that uses points within a defined Cylinder shape to emit from.
-
property
height
¶ Height of the cylinders shape.
-
property
radius
¶ Radius of the cylinder shape.
-
property
-
class
NiPSysData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiRotatingParticlesData
Particle system data.
-
property
aspect_ratio
¶ Sets aspect ratio for Subtexture Offset UV quads
-
property
has_subtexture_offset_u_vs
¶ Boolean for Num Subtexture Offset UVs
-
property
has_unknown_floats_3
¶ Unknown.
-
property
num_subtexture_offset_u_vs
¶ How many quads to use in BSPSysSubTexModifier for texture atlasing
-
property
particle_descriptions
¶ Unknown.
-
property
subtexture_offset_u_vs
¶ Defines UV offsets
-
property
unknown_byte_4
¶ Unknown
-
property
unknown_floats_3
¶ Unknown.
-
property
unknown_int_4
¶ Unknown
-
property
unknown_int_5
¶ Unknown
-
property
unknown_int_6
¶ Unknown
-
property
unknown_short_1
¶ Unknown.
-
property
unknown_short_2
¶ Unknown.
-
property
unknown_short_3
¶ Unknown
-
property
-
class
NiPSysDragFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysFieldModifier
Particle system modifier, used for controlling the particle velocity in drag space warp.
-
property
direction
¶ Direction of the particle velocity
-
property
use_direction
¶ Whether to use the direction field?
-
property
-
class
NiPSysDragModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown.
-
property
drag_axis
¶ The drag axis.
-
property
parent
¶ Parent reference.
-
property
percentage
¶ Drag percentage.
-
property
range
¶ The range.
-
property
range_falloff
¶ The range falloff.
-
property
-
class
NiPSysEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
A particle emitter?
-
property
declination
¶ Declination / First axis.
-
property
declination_variation
¶ Declination randomness / First axis.
-
property
initial_color
¶ Defines color of a birthed particle.
-
property
initial_radius
¶ Size of a birthed particle.
-
property
life_span
¶ Duration until a particle dies.
-
property
life_span_variation
¶ Adds randomness to Life Span.
-
property
planar_angle
¶ Planar Angle / Second axis.
-
property
planar_angle_variation
¶ Planar Angle randomness / Second axis .
-
property
radius_variation
¶ Particle Radius randomness.
-
property
speed
¶ Speed / Inertia of particle movement.
-
property
speed_variation
¶ Adds an amount of randomness to Speed.
-
property
-
class
NiPSysEmitterCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
Particle system emitter controller.
-
property
data
¶ This controller’s data
-
property
visibility_interpolator
¶ Links to a bool interpolator. Controls emitter’s visibility status?
-
property
-
class
NiPSysEmitterCtlrData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Particle system emitter controller data.
-
property
float_keys
¶ Unknown.
-
property
num_visibility_keys
¶ Number of keys.
-
property
visibility_keys
¶ Unknown.
-
property
-
class
NiPSysEmitterDeclinationCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Unknown.
-
class
NiPSysEmitterDeclinationVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Unknown.
-
class
NiPSysEmitterInitialRadiusCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Unknown.
-
class
NiPSysEmitterLifeSpanCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Unknown.
-
class
NiPSysEmitterPlanarAngleCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for emitter planar angle.
-
class
NiPSysEmitterPlanarAngleVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for emitter planar angle variation.
-
class
NiPSysEmitterSpeedCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Unknown.
-
class
NiPSysFieldAttenuationCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for force field attenuation.
-
class
NiPSysFieldMagnitudeCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for force field magnitude.
-
class
NiPSysFieldMaxDistanceCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for force field maximum distance.
-
class
NiPSysFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Base for all force field particle modifiers.
-
property
attenuation
¶ Controls how quick the field diminishes
-
property
field_object
¶ Force Field Object
-
property
magnitude
¶ Magnitude of the force
-
property
max_distance
¶ Maximum distance
-
property
use_max_distance
¶ Use maximum distance
-
property
-
class
NiPSysGravityFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysFieldModifier
Particle system modifier, used for controlling the particle velocity in gravity field.
-
property
direction
¶ Direction of the particle velocity
-
property
-
class
NiPSysGravityModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Adds gravity to a particle system, when linked to a NiNode to use as a Gravity Object.
-
property
decay
¶ Falloff range.
-
property
force_type
¶ Planar or Spherical type
-
property
gravity_axis
¶ Orientation of gravity.
-
property
gravity_object
¶ Refers to a NiNode for gravity location.
-
property
strength
¶ The strength of gravity.
-
property
turbulence
¶ Adds a degree of randomness.
-
property
turbulence_scale
¶ Range for turbulence.
-
property
unknown_byte
¶ Unknown
-
property
-
class
NiPSysGravityStrengthCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Unknown.
-
class
NiPSysGrowFadeModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle modifier that controls the time it takes to grow a particle from Size=0 to the specified Size in the emitter, and then back to 0. This modifer has no control over alpha settings.
-
property
base_scale
¶ Unknown
-
property
fade_generation
¶ Unknown.
-
property
fade_time
¶ Time in seconds to fade out.
-
property
grow_generation
¶ Unknown.
-
property
grow_time
¶ Time in seconds to fade in.
-
property
-
class
NiPSysInitialRotAngleCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for emitter initial rotation angle.
-
class
NiPSysInitialRotAngleVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for emitter initial rotation angle variation.
-
class
NiPSysInitialRotSpeedCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for emitter initial rotation speed.
-
class
NiPSysInitialRotSpeedVarCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierFloatCtlr
Particle system controller for emitter initial rotation speed variation.
-
class
NiPSysMeshEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysEmitter
Particle emitter that uses points on a specified mesh to emit from.
-
property
emission_axis
¶ The emission axis.
-
property
emission_type
¶ The parts of the mesh that the particles emit from.
-
property
emitter_meshes
¶ Links to meshes used for emitting.
-
property
initial_velocity_type
¶ The way the particles get their initial direction and speed.
-
property
num_emitter_meshes
¶ The number of references to emitter meshes that follow.
-
property
-
class
NiPSysMeshUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown.
-
property
meshes
¶ Group of target NiNodes or NiTriShapes?
-
property
num_meshes
¶ The number of object references that follow.
-
property
-
class
NiPSysModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Generic particle system modifier object.
-
property
active
¶ Whether the modifier is currently in effect? Usually true.
-
property
name
¶ The object name.
-
property
order
¶ Modifier ID in the particle modifier chain (always a multiple of 1000)?
-
property
target
¶ NiParticleSystem parent of this modifier.
-
property
-
class
NiPSysModifierActiveCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierBoolCtlr
Unknown.
-
property
data
¶ This controller’s data.
-
property
-
class
NiPSysModifierBoolCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
A particle system modifier controller that deals with boolean data?
-
class
NiPSysModifierCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
A particle system modifier controller.
-
property
modifier_name
¶ Refers to modifier object by its name?
-
property
-
class
NiPSysModifierFloatCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
A particle system modifier controller that deals with floating point data?
-
property
data
¶ This controller’s data.
-
property
-
class
NiPSysPlanarCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysCollider
Particle Collider object which particles will interact with.
-
property
height
¶ Defines the height of the plane.
-
property
width
¶ Defines the width of the plane.
-
property
x_axis
¶ Defines Orientation.
-
property
y_axis
¶ Defines Orientation.
-
property
-
class
NiPSysPositionModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown particle system modifier.
-
class
NiPSysRadialFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysFieldModifier
Particle system modifier, used for controlling the particlevelocity in force field.
-
property
radial_type
¶ Unknown Enums?
-
property
-
class
NiPSysResetOnLoopCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Unknown.
-
class
NiPSysRotationModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Particle modifier that adds rotations to particles.
-
property
initial_axis
¶ Unknown.
-
property
initial_rotation_angle
¶ Sets the intial angle for particles to be birthed in.
-
property
initial_rotation_angle_variation
¶ Adds a random range to Initial angle.
-
property
initial_rotation_speed
¶ The initial speed of rotation.
-
property
initial_rotation_speed_variation
¶ Adds a ranged randomness to rotation speed.
-
property
random_initial_axis
¶ Unknown.
-
property
random_rot_speed_sign
¶ Unknown
-
property
-
class
NiPSysSpawnModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown particle modifier.
-
property
life_span
¶ Unknown.
-
property
life_span_variation
¶ Unknown.
-
property
max_num_to_spawn
¶ Unknown.
-
property
min_num_to_spawn
¶ Unknown.
-
property
num_spawn_generations
¶ Unknown.
-
property
percentage_spawned
¶ Unknown.
-
property
spawn_dir_chaos
¶ Unknown.
-
property
spawn_speed_chaos
¶ Unknown.
-
property
unknown_int
¶ Unknown
-
property
-
class
NiPSysSphereEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysVolumeEmitter
Particle emitter that uses points within a sphere shape to emit from.
-
property
radius
¶ The radius of the sphere shape
-
property
-
class
NiPSysSphericalCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysCollider
Particle Collider object which particles will interact with.
-
property
radius
¶ Defines the radius of the sphere object.
-
property
-
class
NiPSysTrailEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysEmitter
Guild 2-Specific node
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_float_3
¶ Unknown
-
property
unknown_float_4
¶ Unknown
-
property
unknown_float_5
¶ Unknown
-
property
unknown_float_6
¶ Unknown
-
property
unknown_float_7
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_int_2
¶ Unknown
-
property
unknown_int_3
¶ Unknown
-
property
unknown_int_4
¶ Unknown
-
property
-
class
NiPSysTurbulenceFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysFieldModifier
Particle system modifier, used for controlling the particle velocity in drag space warp.
-
property
frequency
¶ Frequency of the update.
-
property
-
class
NiPSysUpdateCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Particle system controller, used for ???.
-
class
NiPSysVolumeEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysEmitter
An emitter that emits meshes?
-
property
emitter_object
¶ Node parent of this modifier?
-
property
-
class
NiPSysVortexFieldModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysFieldModifier
Particle system modifier, used for controlling the particle velocity in force field.
-
property
direction
¶ Direction of the particle velocity
-
property
-
class
NiPalette
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A color palette.
-
property
num_entries
¶ The number of palette entries. Always = 256.
-
property
palette
¶ The color palette.
-
property
unknown_byte
¶ Unknown, Usually = 0.
-
property
-
class
NiParticleBomb
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
A particle modifier.
-
property
decay
¶ Unknown.
-
property
decay_type
¶ Unknown.
-
property
delta_v
¶ Unknown.
-
property
direction
¶ The direction of the applied acceleration?
-
property
duration
¶ Unknown.
-
property
position
¶ The position of the mass point relative to the particle system?
-
property
start
¶ Unknown.
-
property
symmetry_type
¶ Unknown.
-
property
-
class
NiParticleColorModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
color_data
¶ Color data index.
-
property
-
class
NiParticleGrowFade
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
This particle system modifier controls the particle size. If it is present the particles start with size 0.0 . Then they grow to their original size and stay there until they fade to zero size again at the end of their lifetime cycle.
-
property
fade
¶ The time from the end of the particle lifetime during which the particle fades.
-
property
grow
¶ The time from the beginning of the particle lifetime during which the particle grows.
-
property
-
class
NiParticleMeshModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
num_particle_meshes
¶ The number of particle mesh references that follow.
-
property
particle_meshes
¶ Links to nodes of particle meshes?
-
property
-
class
NiParticleMeshes
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticles
Mesh particle node?
-
class
NiParticleMeshesData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiRotatingParticlesData
Particle meshes data.
-
property
unknown_link_2
¶ Refers to the mesh that makes up a particle?
-
property
-
class
NiParticleModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A particle system modifier.
-
property
controller
¶ Points to the particle system controller parent.
-
property
next_modifier
¶ Next particle modifier.
-
property
-
class
NiParticleRotation
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
initial_axis
¶ Unknown.
-
property
random_initial_axis
¶ Unknown.
-
property
rotation_speed
¶ Unknown.
-
property
-
class
NiParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticles
A particle system.
-
property
modifiers
¶ The list of particle modifiers.
-
property
num_modifiers
¶ The number of modifier references.
-
property
unknown_int_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
unknown_short_3
¶ Unknown
-
property
world_space
¶ If true, Particles are birthed into world space. If false, Particles are birthed into object space.
-
property
-
class
NiParticleSystemController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
A generic particle system time controller object.
-
property
color_data
¶
-
property
emit_flags
¶ Emit Rate toggle bit (0 = auto adjust, 1 = use Emit Rate value)
- Type
Bit 0
-
property
emit_rate
¶ Particle emission rate (particles per second)
-
property
emit_start_time
¶ Particle emit start time
-
property
emit_stop_time
¶ Particle emit stop time
-
property
emitter
¶ find out what type of object this refers to).
- Type
This index targets the particle emitter object (TODO
-
property
horizontal_angle
¶ emitter’s horizontal opening angle
-
property
horizontal_direction
¶ horizontal emit direction
-
property
lifetime
¶ Particle lifetime
-
property
lifetime_random
¶ Particle lifetime random modifier
-
property
num_particles
¶ Size of the following array. (Maximum number of simultaneous active particles)
-
property
num_valid
¶ Number of valid entries in the following array. (Number of active particles at the time the system was saved)
-
property
old_emit_rate
¶ Particle emission rate in old files
-
property
old_speed
¶ Particle speed in old files
-
property
particle_extra
¶ Link to some optional particle modifiers (NiGravity, NiParticleGrowFade, NiParticleBomb, …)
-
property
particle_lifetime
¶ The particle’s age.
-
property
particle_link
¶
-
property
particle_timestamp
¶ Timestamp of the last update.
-
property
particle_unknown_short
¶ Unknown short
-
property
particle_unknown_vector
¶ Unknown
-
property
particle_velocity
¶ Particle velocity
-
property
particle_vertex_id
¶ Particle/vertex index matches array index
-
property
particles
¶ Individual particle modifiers?
-
property
size
¶ Particle size
-
property
speed
¶ Particle speed
-
property
speed_random
¶ Particle random speed modifier
-
property
start_random
¶ Particle random start translation vector
-
property
trailer
¶ Trailing null byte
-
property
unknown_byte
¶ Unknown byte, (=0)
-
property
unknown_color
¶ Unknown.
-
property
unknown_float_1
¶
-
property
unknown_float_13
¶ ? float=1.0 ?
-
property
unknown_floats_2
¶
-
property
unknown_int_1
¶ ? int=1 ?
-
property
unknown_int_2
¶ ? int=0 ?
-
property
unknown_link
¶ unknown int (=0xffffffff)
-
property
unknown_link_2
¶ Unknown int (=0xffffffff)
-
property
unknown_normal
¶ Unknown.
-
property
unknown_short_2
¶ ? short=0 ?
-
property
unknown_short_3
¶ ? short=0 ?
-
property
vertical_angle
¶ emitter’s vertical opening angle [radians]
-
property
vertical_direction
¶ horizontal3.1416 : down
- Type
vertical emit direction [radians]0.0
- Type
up1.6
-
property
-
class
NiParticles
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiGeometry
Generic particle system node.
-
class
NiParticlesData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiGeometryData
Generic rotating particles data object.
-
property
has_radii
¶ Is the particle size array present?
-
property
has_rotation_angles
¶ Are the angles of rotation present?
-
property
has_rotation_axes
¶ Are axes of rotation present?
-
property
has_rotations
¶ Is the particle rotation array present?
-
property
has_sizes
¶ Is the particle size array present?
-
property
has_uv_quadrants
¶ if value is no, a single image rendered
-
property
num_active
¶ The number of active particles at the time the system was saved. This is also the number of valid entries in the following arrays.
-
property
num_particles
¶ The maximum number of particles (matches the number of vertices).
-
property
num_uv_quadrants
¶ 2,4,8,16,32,64 are potential values. If “Has” was no then this should be 256, which represents a 16x16 framed image, which is invalid
-
property
particle_radius
¶ The particles’size.
-
property
radii
¶ The individual particel sizes.
-
property
rotation_angles
¶ Angles of rotation
-
property
rotation_axes
¶ Unknown
-
property
rotations
¶ The individual particle rotations.
-
property
sizes
¶ The individual particel sizes.
-
property
unknown_byte_1
¶ Unknown, probably a boolean.
-
property
unknown_byte_2
¶ Unknown
-
property
unknown_link
¶ Unknown
-
property
uv_quadrants
¶
-
property
-
class
NiPathController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Time controller for a path.
-
property
float_data
¶ Path controller data index (float data). ?
-
property
pos_data
¶ Path controller data index (position data). ?
-
property
unknown_float_2
¶ Unknown, often 0?
-
property
unknown_float_3
¶ Unknown, often 0?
-
property
unknown_int_1
¶ Unknown, always 1?
-
property
unknown_short
¶ Unknown, always 0?
-
property
unknown_short_2
¶ Unknown.
-
property
-
class
NiPathInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyBasedInterpolator
Unknown interpolator.
-
property
float_data
¶ Links to NiFloatData.
-
property
pos_data
¶ Links to NiPosData.
-
property
unknown_float_1
¶ Unknown.
-
property
unknown_float_2
¶ Unknown.
-
property
unknown_int
¶ Unknown.
-
property
unknown_short
¶ Unknown.
-
property
unknown_short_2
¶ Unknown. Zero.
-
property
-
class
NiPersistentSrcTextureRendererData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.ATextureRenderData
-
property
num_faces
¶ Unknown
-
property
num_pixels
¶ Unknown
-
property
pixel_data
¶ Raw pixel data holding the mipmaps. Mipmap zero is the full-size texture and they get smaller by half as the number increases.
-
property
unknown_int_6
¶ Unknown, same as the number of pixels? / number of blocks?
-
property
unknown_int_7
¶ Unknown
-
property
-
class
NiPhysXActorDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
shape_description
¶ PhysX Shape Description
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_byte_2
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_int_2
¶ Unknown
-
property
unknown_int_4
¶ Unknown
-
property
unknown_int_5
¶ Unknown
-
property
unknown_int_6
¶ Unknown
-
property
unknown_quat_1
¶ Unknown
-
property
unknown_quat_2
¶ Unknown
-
property
unknown_quat_3
¶ Unknown
-
property
unknown_ref_0
¶ Unknown
-
property
unknown_ref_1
¶ Unknown
-
property
unknown_ref_2
¶ Unknown
-
property
unknown_refs_3
¶ Unknown
-
property
-
class
NiPhysXBodyDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
unknown_bytes
¶ Unknown
-
property
-
class
NiPhysXD6JointDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
unknown_bytes
¶ Unknown
-
property
-
class
NiPhysXKinematicSrc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
unknown_bytes
¶ Unknown
-
property
-
class
NiPhysXMaterialDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown node.
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_byte_2
¶ Unknown
-
property
unknown_int
¶ Unknown
-
property
-
class
NiPhysXMeshDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
num_vertices
¶ Number of mesh vertices
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_byte_2
¶ Unknown
-
property
unknown_bytes_0
¶ NXS
-
property
unknown_bytes_1
¶ MESH
-
property
unknown_bytes_2
¶ Unknown
-
property
unknown_bytes_3
¶ Unknown
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_int_2
¶ Unknown
-
property
unknown_int_4
¶ Unknown
-
property
unknown_ints_1
¶ Unknown
-
property
unknown_short_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
unknown_shorts_1
¶ Unknown
-
property
vertices
¶ Vertices
-
property
-
class
NiPhysXProp
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
Unknown PhysX node.
-
property
num_dests
¶ Number of NiPhysXTransformDest references
-
property
prop_description
¶ PhysX Property Description.
-
property
transform_dests
¶ Unknown
-
property
unknown_byte
¶ Unknown
-
property
unknown_float_1
¶ Unknown
-
property
unknown_int
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_refs_1
¶ Unknown
-
property
-
class
NiPhysXPropDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
actor_descs
¶ Unknown
-
property
joint_descs
¶ PhysX Joint Descriptions
-
property
material_descs
¶ PhysX Material Descriptions
-
property
num_dests
¶ Number of NiPhysXActorDesc references
-
property
num_joints
¶ Unknown
-
property
num_materials
¶ Unknown
-
property
unknown_byte_6
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_int_2
¶ Unknown
-
property
unknown_int_3
¶ Unknown
-
property
unknown_int_5
¶ Unknown
-
property
unknown_string_4
¶ Unknown
-
property
-
class
NiPhysXShapeDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
mesh_description
¶ PhysX Mesh Description
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_float_3
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_int_2
¶ Unknown
-
property
unknown_int_3
¶ Unknown
-
property
unknown_int_4
¶ Unknown
-
property
unknown_int_5
¶ Unknown
-
property
unknown_int_7
¶ Unknown
-
property
unknown_int_8
¶ Unknown
-
property
unknown_quat_1
¶ Unknown
-
property
unknown_quat_2
¶ Unknown
-
property
unknown_quat_3
¶ Unknown
-
property
unknown_short_1
¶ Unknown
-
property
unknown_short_2
¶ Unknown
-
property
-
class
NiPhysXTransformDest
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
node
¶ Affected node?
-
property
unknown_byte_1
¶ Unknown. =1?
-
property
unknown_byte_2
¶ Unknown. =0
-
property
-
class
NiPixelData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.ATextureRenderData
A texture.
-
property
num_faces
¶ Unknown
-
property
num_pixels
¶ Total number of pixels
-
property
pixel_data
¶ Raw pixel data holding the mipmaps. Mipmap zero is the full-size texture and they get smaller by half as the number increases.
-
property
-
class
NiPlanarCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
unknown_float_1
¶ Unknown.
-
property
unknown_float_10
¶ Unknown.
-
property
unknown_float_11
¶ Unknown.
-
property
unknown_float_12
¶ Unknown.
-
property
unknown_float_13
¶ Unknown.
-
property
unknown_float_14
¶ Unknown.
-
property
unknown_float_15
¶ Unknown.
-
property
unknown_float_16
¶ Unknown.
-
property
unknown_float_2
¶ Unknown.
-
property
unknown_float_3
¶ Unknown.
-
property
unknown_float_4
¶ Unknown.
-
property
unknown_float_5
¶ Unknown.
-
property
unknown_float_6
¶ Unknown.
-
property
unknown_float_7
¶ Unknown.
-
property
unknown_float_8
¶ Unknown.
-
property
unknown_float_9
¶ Unknown.
-
property
unknown_short
¶ Usually 0?
-
property
unknown_short_2
¶ Unknown.
-
property
-
class
NiPoint3InterpController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
A controller that interpolates point 3 data?
-
property
data
¶ Material color controller data object index. Points to NiPosData.
-
property
target_color
¶ Selects which color to control.
-
property
-
class
NiPoint3Interpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyBasedInterpolator
Unknown.
-
property
data
¶ Reference to NiPosData.
-
property
point_3_value
¶ Value when posed? Value at time 0?
-
property
-
class
NiPointLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiLight
A point light.
-
property
constant_attenuation
¶ Constant Attenuation
-
property
linear_attenuation
¶ Linear Attenuation
-
property
quadratic_attenuation
¶ Quadratic Attenuation (see glLight)
-
property
-
class
NiPortal
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
A Portal
-
property
num_vertices
¶ Number of vertices in this polygon
-
property
target
¶ Target portal or room
-
property
unknown_flags
¶ Unknown flags.
-
property
unknown_short_2
¶ Unknown
-
property
vertices
¶ Vertices
-
property
-
class
NiPosData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Position data.
-
property
data
¶ The position keys.
-
property
-
class
NiProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
A generic property object.
-
class
NiRangeLODData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiLODData
Describes levels of detail based on distance of object from camera.
-
property
lod_center
¶ ?
-
property
lod_levels
¶ The ranges of distance that each level of detail applies in.
-
property
num_lod_levels
¶ Number of levels of detail.
-
property
-
class
NiRawImageData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Raw image data.
-
property
height
¶ Image height
-
property
image_type
¶ The format of the raw image data.
-
property
rgb_image_data
¶ Image pixel data.
-
property
rgba_image_data
¶ Image pixel data.
-
property
width
¶ Image width
-
property
-
class
NiRenderObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
An object that can be rendered.
-
property
active_material
¶ The index of the currently active material.
-
property
material_data
¶ Per-material data.
-
property
material_needs_update_default
¶ The initial value for the flag that determines if the internal cached shader is valid.
-
property
num_materials
¶ The number of materials affecting this renderable object.
-
property
-
class
NiRollController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
Unknown.
-
property
data
¶ The data for the controller.
-
property
-
class
NiRoom
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Grouping node for nodes in a Portal
-
property
in_portals
¶ Number of portals into room
-
property
items
¶ All geometry associated with room.
-
property
num_in_portals
¶ Number of doors into room
-
property
num_items
¶ Number of unknowns
-
property
num_portals_2
¶ Number of doors out of room
-
property
num_walls
¶ Number of walls in a room?
-
property
portals_2
¶ Number of portals out of room
-
property
wall_plane
¶ Face normal and unknown value.
-
property
-
class
NiRoomGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Grouping node for nodes in a Portal
-
property
num_rooms
¶ Number of rooms in this group
-
property
rooms
¶ Rooms associated with this group.
-
property
shell_link
¶ Outer Shell Geometry Node?
-
property
-
class
NiRotatingParticles
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticles
Unknown.
-
class
NiRotatingParticlesData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticlesData
Rotating particles data object.
-
property
has_rotations_2
¶ Is the particle rotation array present?
-
property
rotations_2
¶ The individual particle rotations.
-
property
-
class
NiScreenElements
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriShape
Two dimensional screen elements.
-
class
NiScreenElementsData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriShapeData
Two dimensional screen elements.
-
property
max_polygons
¶ Maximum number of polygons?
-
property
num_polygons
¶ Number of Polygons actually in use
-
property
polygon_indices
¶ Polygon Indices
-
property
polygons
¶ Polygons
-
property
unknown_u_short_1
¶ Unknown
-
property
unknown_u_short_2
¶ Unknown
-
property
unknown_u_short_3
¶ Maximum number of faces
-
property
used_triangle_points
¶ Number of in-use triangles
-
property
used_vertices
¶ Number of in-use vertices
-
property
-
class
NiScreenLODData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiLODData
Describes levels of detail based on size of object on screen?
-
property
bound_center
¶ The center of the bounding sphere?
-
property
bound_radius
¶ The radius of the bounding sphere?
-
property
proportion_count
¶ The number of screen size based LOD levels.
-
property
proportion_levels
¶ The LOD levels based on proportion of screen size?
-
property
world_center
¶ The center of the bounding sphere in world space?
-
property
world_radius
¶ The radius of the bounding sphere in world space?
-
property
-
class
NiSequence
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Root node used in some Empire Earth II .kf files (version 4.2.2.0).
-
property
controlled_blocks
¶ Refers to controlled objects.
-
property
name
¶ Name of this object. This is also the name of the action associated with this file. For instance, if the original NIF file is called”demon.nif”and this animation file contains an attack sequence, then the file would be called”demon_attack1.kf”and this field would contain the string”attack1”.
-
property
num_controlled_blocks
¶ Number of controlled objects.
-
property
text_keys
¶ Link to NiTextKeyExtraData.
-
property
text_keys_name
¶ Name of following referenced NiTextKeyExtraData class.
-
property
unknown_int_1
¶ Unknown.
-
property
unknown_int_4
¶ Unknown
-
property
unknown_int_5
¶ Unknown
-
property
-
class
NiSequenceData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
class
NiSequenceStreamHelper
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
Keyframe animation root node, in .kf files.
-
class
NiShadeProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Determines whether flat shading or smooth shading is used on a shape.
-
property
flags
¶ Enable smooth phong shading on this shape.If 1’s bit is not set, hard-edged flat shading will be used on this shape.
- Type
1’s Bit
-
property
-
class
NiShadowGenerator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
name
¶
-
property
num_unknown_links_1
¶
-
property
target
¶
-
property
unknown_flags
¶
-
property
unknown_links_1
¶
-
property
unkown_byte_5
¶
-
property
unkown_byte_9
¶
-
property
unkown_float_4
¶
-
property
unkown_int_2
¶
-
property
unkown_int_6
¶
-
property
unkown_int_7
¶
-
property
unkown_int_8
¶
-
property
-
class
NiSingleInterpController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
A controller referring to a single interpolator.
-
property
interpolator
¶ Link to interpolator.
-
property
-
class
NiSkinData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiSkinData
,object
-
apply_scale
(scale)[source]¶ Apply scale factor on data.
>>> from pyffi.formats.nif import NifFormat >>> id44 = NifFormat.Matrix44() >>> id44.set_identity() >>> skelroot = NifFormat.NiNode() >>> skelroot.name = 'Scene Root' >>> skelroot.set_transform(id44) >>> bone1 = NifFormat.NiNode() >>> bone1.name = 'bone1' >>> bone1.set_transform(id44) >>> bone1.translation.x = 10 >>> skelroot.add_child(bone1) >>> geom = NifFormat.NiTriShape() >>> geom.set_transform(id44) >>> skelroot.add_child(geom) >>> skininst = NifFormat.NiSkinInstance() >>> geom.skin_instance = skininst >>> skininst.skeleton_root = skelroot >>> skindata = NifFormat.NiSkinData() >>> skininst.data = skindata >>> skindata.set_transform(id44) >>> geom.add_bone(bone1, {}) >>> geom.update_bind_position() >>> bone1.translation.x 10.0 >>> skindata.bone_list[0].skin_transform.translation.x -10.0 >>> import pyffi.spells.nif.fix >>> import pyffi.spells.nif >>> data = NifFormat.Data() >>> data.roots = [skelroot] >>> toaster = pyffi.spells.nif.NifToaster() >>> toaster.scale = 0.1 >>> pyffi.spells.nif.fix.SpellScale(data=data, toaster=toaster).recurse() pyffi.toaster:INFO:--- fix_scale --- pyffi.toaster:INFO: scaling by factor 0.100000 pyffi.toaster:INFO: ~~~ NiNode [Scene Root] ~~~ pyffi.toaster:INFO: ~~~ NiNode [bone1] ~~~ pyffi.toaster:INFO: ~~~ NiTriShape [] ~~~ pyffi.toaster:INFO: ~~~ NiSkinInstance [] ~~~ pyffi.toaster:INFO: ~~~ NiSkinData [] ~~~ >>> bone1.translation.x 1.0 >>> skindata.bone_list[0].skin_transform.translation.x -1.0
-
-
class
NiSkinInstance
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Skinning instance.
-
property
bones
¶ List of all armature bones.
-
property
data
¶ Skinning data reference.
-
property
num_bones
¶ The number of node bones referenced as influences.
-
property
skeleton_root
¶ Armature root node.
-
property
skin_partition
¶ Refers to a NiSkinPartition objects, which partitions the mesh such that every vertex is only influenced by a limited number of bones.
-
property
-
class
NiSkinPartition
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Skinning data, optimized for hardware skinning. The mesh is partitioned in submeshes such that each vertex of a submesh is influenced only by a limited and fixed number of bones.
-
property
num_skin_partition_blocks
¶ Unknown.
-
property
skin_partition_blocks
¶ Skin partition objects.
-
property
-
class
NiSkinningLODController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
class
NiSkinningMeshModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiMeshModifier
-
property
bone_bounds
¶ The bounds of the bones. Only stored if the RECOMPUTE_BOUNDS bit is set.
-
property
bone_transforms
¶ The transforms that go from bind-pose space to bone space.
-
property
bones
¶ Pointers to the bone nodes that affect this skin.
-
property
flags
¶ USE_SOFTWARE_SKINNING = 0x0001RECOMPUTE_BOUNDS = 0x0002
-
property
num_bones
¶ The number of bones referenced by this mesh modifier.
-
property
skeleton_root
¶ The root bone of the skeleton.
-
property
skeleton_transform
¶ The transform that takes the root bone parent coordinate system into the skin coordinate system.
-
property
-
class
NiSortAdjustNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Unknown node. Found in Loki.
-
property
sorting_mode
¶ Sorting
-
property
unknown_int_2
¶ Unknown.
-
property
-
class
NiSourceCubeMap
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSourceTexture
Unknown node. Found in Emerge Demo.
-
class
NiSourceTexture
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTexture
Describes texture source and properties.
-
property
alpha_format
¶ the NiTriShape linked to this object must have a NiAlphaProperty in its list of properties to enable material and/or texture transparency.
- Type
Note
-
property
direct_render
¶ Load direct to renderer
-
property
file_name
¶ The original source filename of the image embedded by the referred NiPixelData object.
-
property
is_static
¶ Is Static?
-
property
persist_render_data
¶ Render data is persistant
-
property
pixel_data
¶ Pixel data object index. NiPixelData or NiPersistentSrcTextureRendererData
-
property
pixel_layout
¶ Specifies the way the image will be stored.
-
property
unknown_byte
¶ Unknown. Seems to be set if Pixel Data is present?
-
property
unknown_link
¶ Unknown.
-
property
use_external
¶ Is the texture external?
-
property
use_mipmaps
¶ Specifies whether mip maps are used.
-
property
-
class
NiSpecularProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Gives specularity to a shape. Flags 0x0001.
-
property
flags
¶ 1’s Bit = Enable specular lighting on this shape.
-
property
-
class
NiSphericalCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
unknown_float_1
¶ Unknown.
-
property
unknown_float_2
¶ Unknown.
-
property
unknown_float_3
¶ Unknown.
-
property
unknown_float_4
¶ Unknown.
-
property
unknown_float_5
¶ Unknown.
-
property
unknown_short_1
¶ Unknown.
-
property
unknown_short_2
¶ Unknown.
-
property
-
class
NiSpotLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPointLight
A spot.
-
property
cutoff_angle
¶ The opening angle of the spot.
-
property
exponent
¶ glLight)
- Type
Describes the distribution of light. (see
-
property
unknown_float
¶ Unknown
-
property
-
class
NiStencilProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Allows control of stencil testing.
-
property
draw_mode
¶ Used to enabled double sided faces. Default is 3 (DRAW_BOTH).
-
property
fail_action
¶
-
property
flags
¶ Stencil EnableBits 1-3: Fail ActionBits 4-6: Z Fail ActionBits 7-9: Pass ActionBits 10-11: Draw ModeBits 12-14: Stencil Function
- Type
Property flags
- Type
Bit 0
-
property
pass_action
¶
-
property
stencil_enabled
¶ Enables or disables the stencil test.
-
property
stencil_function
¶ glStencilFunc).
- Type
Selects the compare mode function (see
-
property
stencil_mask
¶ A bit mask. The default is 0xffffffff.
-
property
stencil_ref
¶ Unknown. Default is 0.
-
property
z_fail_action
¶
-
property
-
class
NiStringExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Apparently commands for an optimizer instructing it to keep things it would normally discard.Also refers to NiNode objects (through their name) in animation .kf files.
-
property
bytes_remaining
¶ The number of bytes left in the record. Equals the length of the following string + 4.
-
property
string_data
¶ The string.
-
property
-
class
NiStringPalette
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
List of 0x00-seperated strings, which are names of controlled objects and controller types. Used in .kf files in conjunction with NiControllerSequence.
-
property
palette
¶ A bunch of 0x00 seperated strings.
-
property
-
class
NiStringsExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
List of strings; for example, a list of all bone names.
-
property
data
¶ The strings.
-
property
num_strings
¶ Number of strings.
-
property
-
class
NiSwitchNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
A node used to switch between branches, such as for LOD levels?
-
property
unknown_flags_1
¶ Flags
-
property
unknown_int_1
¶ Index?
-
property
-
class
NiTextKeyExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Extra data, used to name different animation sequences.
-
property
num_text_keys
¶ The number of text keys that follow.
-
property
text_keys
¶ List of textual notes and at which time they take effect. Used for designating the start and stop of animations and the triggering of sounds.
-
property
unknown_int_1
¶ Unknown. Always equals zero in all official files.
-
property
-
class
NiTexture
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
A texture.
-
class
NiTextureEffect
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiDynamicEffect
Enables environment mapping. Should be in both the children list and effects list of the NiTriShape object. For Morrowind: the bump map can be used to bump the environment map (note that the bump map is ignored if no NiTextureEffect object is present).
-
property
clipping_plane
¶ Determines whether a clipping plane is used. 0 means that a plane is not used.
-
property
coordinate_generation_type
¶ The method that will be used to generate UV coordinates for the texture effect.
-
property
image
¶ Image index.
-
property
model_projection_matrix
¶ Model projection matrix. Always identity?
-
property
model_projection_transform
¶ Model projection transform. Always (0,0,0)?
-
property
ps_2_k
¶ -75?
-
property
ps_2_l
¶ 0?
-
property
source_texture
¶ Source texture index.
-
property
texture_clamping
¶ Texture Clamp mode.
-
property
texture_filtering
¶ Texture Filtering mode.
-
property
texture_type
¶ The type of effect that the texture is used for.
-
property
unknown
¶
-
property
unknown_float
¶ Unknown. 0?
-
property
unknown_short
¶ - Type
Unknown
-
property
unknown_vector
¶ (1,0,0)?
- Type
Unknown
-
property
-
class
NiTextureModeProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Unknown
-
property
ps_2_k
¶ -75?
-
property
ps_2_l
¶ 0?
-
property
unknown_ints
¶
-
property
unknown_short
¶ Unknown. Either 210 or 194.
-
property
-
class
NiTextureProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
-
property
flags
¶ Property flags.
-
property
image
¶ Link to the texture image.
-
property
unknown_ints_1
¶ Property flags.
-
property
unknown_ints_2
¶ Unknown. 0?
-
property
-
class
NiTextureTransformController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Texture transformation controller. The target texture slot should have “Has Texture Transform” enabled.
-
property
data
¶ Link to NiFloatData.
-
property
operation
¶ Determines how this controller animates the UV Coordinates.
-
property
texture_slot
¶ The target texture slot.
-
property
unknown_2
¶ Unknown.
-
property
-
class
NiTexturingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Describes an object’s textures.
-
property
apply_mode
¶ Determines how the texture will be applied. Seems to have special functions in Oblivion.
-
property
base_texture
¶ The base texture.
-
property
bump_map_luma_offset
¶ Unknown.
-
property
bump_map_luma_scale
¶ Unknown.
-
property
bump_map_matrix
¶ Unknown.
-
property
bump_map_texture
¶ The bump map texture.
-
property
dark_texture
¶ The dark texture.
-
property
decal_0_texture
¶ The decal texture.
-
property
decal_1_texture
¶ Another decal texture.
-
property
decal_2_texture
¶ Another decal texture.
-
property
decal_3_texture
¶ Another decal texture. Who knows the limit.
-
property
detail_texture
¶ The detail texture.
-
property
flags
¶ Property flags.
-
property
gloss_texture
¶ The gloss texture.
-
property
glow_texture
¶ The glowing texture.
-
property
has_base_texture
¶ Do we have a base texture?
-
property
has_bump_map_texture
¶ Do we have a bump map texture?
-
property
has_dark_texture
¶ Do we have a dark texture?
-
property
has_decal_0_texture
¶ Do we have a decal 0 texture?
-
property
has_decal_1_texture
¶ Do we have a decal 1 texture?
-
property
has_decal_2_texture
¶ Do we have a decal 2 texture?
-
property
has_decal_3_texture
¶ Do we have a decal 3 texture?
-
property
has_detail_texture
¶ Do we have a detail texture?
-
property
has_gloss_texture
¶ Do we have a gloss texture?
-
property
has_glow_texture
¶ Do we have a glow texture?
-
property
has_normal_texture
¶ Do we have a normal texture? (Noraml guess based on file suffix in sample files)
-
property
has_unknown_2_texture
¶ Do we have a unknown texture 2?
-
property
normal_texture
¶ Normal texture.
-
property
num_shader_textures
¶ Number of Shader textures that follow.
-
property
shader_textures
¶ Shader textures.
-
property
texture_count
¶ Number of textures. Always 7 in versions<20.0.0.4. Can also be 8 in>= 20.0.0.4.
-
property
unknown_2_float
¶ Unknown.
-
property
unknown_2_texture
¶ Unknown texture 2.
-
property
-
class
NiTimeController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A generic time controller object.
-
property
flags
¶ Cycle type 00=Loop 01=Reverse 10=LoopBit 3 : ActiveBit 4 : Play backwards
- Type
Controller flags (usually 0x000C) Probably controls loops.Bit 0
- Type
Anim type, 0=APP_TIME 1=APP_INITBit 1-2
-
property
frequency
¶ Frequency (is usually 1.0).
-
property
next_controller
¶ Index of the next controller.
-
property
phase
¶ Phase (usually 0.0).
-
property
start_time
¶ Controller start time.
-
property
stop_time
¶ Controller stop time.
-
property
target
¶ Controller target (object index of the first controllable ancestor of this object).
-
property
unknown_integer
¶ Unknown integer.
-
property
-
class
NiTransformController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyframeController
NiTransformController replaces the NiKeyframeController.
-
class
NiTransformData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyframeData
Mesh animation keyframe data.
-
class
NiTransformEvaluator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
class
NiTransformInterpolator
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiTransformInterpolator
,object
-
class
NiTransparentProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Unknown
-
property
unknown
¶ Unknown.
-
property
-
class
NiTriBasedGeom
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiTriBasedGeom
,object
-
get_interchangeable_tri_shape
(triangles=None)[source]¶ Returns a NiTriShape block that is geometrically interchangeable. If you do not want to set the triangles from the original shape, use the triangles argument.
-
get_interchangeable_tri_strips
(strips=None)[source]¶ Returns a NiTriStrips block that is geometrically interchangeable. If you do not want to set the strips from the original shape, use the strips argument.
-
get_tangent_space
()[source]¶ Return iterator over normal, tangent, bitangent vectors. If the block has no tangent space, then returns None.
-
update_skin_partition
(maxbonesperpartition=4, maxbonespervertex=4, verbose=0, stripify=True, stitchstrips=False, padbones=False, triangles=None, trianglepartmap=None, maximize_bone_sharing=False)[source]¶ Recalculate skin partition data.
- Deprecated
Do not use the verbose argument.
- Parameters
maxbonesperpartition – Maximum number of bones in each partition. The num_bones field will not exceed this number.
maxbonespervertex – Maximum number of bones per vertex. The num_weights_per_vertex field will be exactly equal to this number.
verbose – Ignored, and deprecated. Set pyffi’s log level instead.
stripify – If true, stripify the partitions, otherwise use triangles.
stitchstrips – If stripify is true, then set this to true to stitch the strips.
padbones – Enforces the numbones field to be equal to maxbonesperpartition. Also ensures that the bone indices are unique and sorted, per vertex. Raises an exception if maxbonespervertex is not equal to maxbonesperpartition (in that case bone indices cannot be unique and sorted). This options is required for Freedom Force vs. the 3rd Reich skin partitions.
triangles – The triangles of the partition (if not specified, then this defaults to C{self.data.get_triangles()}.
trianglepartmap – Maps each triangle to a partition index. Faces with different indices will never appear in the same partition. If the skin instance is a BSDismemberSkinInstance, then these indices are used as body part types, and the partitions in the BSDismemberSkinInstance are updated accordingly. Note that the faces are counted relative to L{triangles}.
maximize_bone_sharing – Maximize bone sharing between partitions. This option is useful for Fallout 3.
-
update_tangent_space
(as_extra=None, vertexprecision=3, normalprecision=3)[source]¶ Recalculate tangent space data.
- Parameters
as_extra – Whether to store the tangent space data as extra data (as in Oblivion) or not (as in Fallout 3). If not set, switches to Oblivion if an extra data block is found, otherwise does default. Set it to override this detection (for example when using this function to create tangent space data) and force behaviour.
-
-
class
NiTriBasedGeomData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiTriBasedGeomData
,object
-
get_triangle_indices
(triangles)[source]¶ Yield list of triangle indices (relative to self.get_triangles()) of given triangles. Degenerate triangles in the list are assigned index
None
.>>> from pyffi.formats.nif import NifFormat >>> geomdata = NifFormat.NiTriShapeData() >>> geomdata.set_triangles([(0,1,2),(1,2,3),(2,3,4)]) >>> list(geomdata.get_triangle_indices([(1,2,3)])) [1] >>> list(geomdata.get_triangle_indices([(3,1,2)])) [1] >>> list(geomdata.get_triangle_indices([(2,3,1)])) [1] >>> list(geomdata.get_triangle_indices([(1,2,0),(4,2,3)])) [0, 2] >>> list(geomdata.get_triangle_indices([(0,0,0),(4,2,3)])) [None, 2] >>> list(geomdata.get_triangle_indices([(0,3,4),(4,2,3)])) Traceback (most recent call last): ... ValueError: ...
- Parameters
triangles (iterator or list of tuples of three ints) – An iterable of triangles to check.
-
is_interchangeable
(other)[source]¶ Heuristically checks if two NiTriBasedGeomData blocks describe the same geometry, that is, if they can be used interchangeably in a NIF file without affecting the rendering. The check is not fool proof but has shown to work in most practical cases.
- Parameters
other (L{NifFormat.NiTriBasedGeomData} (if it has another type then the function will always return
False
)) – Another geometry data block.- Returns
True
if the geometries are equivalent,False
otherwise.
-
-
class
NiTriShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriBasedGeom
A shape node that refers to singular triangle data.
-
class
NiTriShapeData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiTriShapeData
,object
Example usage:
>>> from pyffi.formats.nif import NifFormat >>> block = NifFormat.NiTriShapeData() >>> block.set_triangles([(0,1,2),(2,1,3),(2,3,4)]) >>> block.get_strips() [[0, 1, 2, 3, 4]] >>> block.get_triangles() [(0, 1, 2), (2, 1, 3), (2, 3, 4)] >>> block.set_strips([[1,0,1,2,3,4]]) >>> block.get_strips() # stripifier keeps geometry but nothing else [[0, 2, 1, 3], [2, 4, 3]] >>> block.get_triangles() [(0, 2, 1), (1, 2, 3), (2, 4, 3)]
-
class
NiTriShapeSkinController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Old version of skinning instance.
-
property
bone_data
¶ Contains skin weight data for each node that this skin is influenced by.
-
property
bones
¶ List of all armature bones.
-
property
num_bones
¶ The number of node bones referenced as influences.
-
property
vertex_counts
¶ The number of vertex weights stored for each bone.
-
property
-
class
NiTriStrips
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTriBasedGeom
A shape node that refers to data organized into strips of triangles
-
class
NiTriStripsData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._NiTriStripsData
,object
Example usage:
>>> from pyffi.formats.nif import NifFormat >>> block = NifFormat.NiTriStripsData() >>> block.set_triangles([(0,1,2),(2,1,3),(2,3,4)]) >>> block.get_strips() [[0, 1, 2, 3, 4]] >>> block.get_triangles() [(0, 1, 2), (1, 3, 2), (2, 3, 4)] >>> block.set_strips([[1,0,1,2,3,4]]) >>> block.get_strips() [[1, 0, 1, 2, 3, 4]] >>> block.get_triangles() [(0, 2, 1), (1, 2, 3), (2, 4, 3)]
-
class
NiUVController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Time controller for texture coordinates.
-
property
data
¶ Texture coordinate controller data index.
-
property
unknown_short
¶ Always 0?
-
property
-
class
NiUVData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Texture coordinate data.
-
property
uv_groups
¶ Four UV data groups. Appear to be U translation, V translation, U scaling/tiling, V scaling/tiling.
-
property
-
class
NiVectorExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Extra vector data.
-
property
unknown_float
¶ Not sure whether this comes before or after the vector data.
-
property
vector_data
¶ The vector data.
-
property
-
class
NiVertWeightsExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Not used in skinning.Unsure of use - perhaps for morphing animation or gravity.
-
property
num_bytes
¶ Number of bytes in this data object.
-
property
num_vertices
¶ Number of vertices.
-
property
weight
¶ The vertex weights.
-
property
-
class
NiVertexColorProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Property of vertex colors. This object is referred to by the root object of the NIF file whenever some NiTriShapeData object has vertex colors with non-default settings; if not present, vertex colors have vertex_mode=2 and lighting_mode=1.
-
property
flags
¶ Lighting Mode?Bits 4-5: Vertex Mode?
- Type
Property flags. Appears to be unused until 20.1.0.3.Bits 0-2
- Type
UnknownBit 3
-
property
lighting_mode
¶ The light mode. In Flags from 20.1.0.3 on.
-
property
vertex_mode
¶ glColorMaterialIn Flags from version 20.1.0.3 onwards.
- Type
Determines how vertex and material colors are mixed.related gl function
-
property
-
class
NiVisController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBoolInterpController
Time controller for visibility.
-
property
data
¶ Visibility controller data object index.
-
property
-
class
NiVisData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Visibility data for a controller.
-
property
keys
¶ The visibility keys.
-
property
num_keys
¶ The number of visibility keys that follow.
-
property
-
class
NiWireframeProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Unknown.
-
property
flags
¶ Property flags.0 - Wireframe Mode Disabled1 - Wireframe Mode Enabled
-
property
-
class
NiZBufferProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
This Property controls the Z buffer (OpenGL: depth buffer).
-
property
flags
¶ Bit 0 enables the z testBit 1 controls wether the Z buffer is read only (0) or read/write (1)
-
property
function
¶ glDepthFunc). In Flags from 20.1.0.3 on.
- Type
Z-Test function (see
-
property
-
class
NodeGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A group of NiNodes references.
-
property
nodes
¶ The list of NiNode references.
-
property
num_nodes
¶ Number of node references that follow.
-
property
-
class
OblivionHavokMaterial
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
A material, used by havok shape objects in Oblivion.
-
HAV_MAT_CHAIN
= 13¶
-
HAV_MAT_CHAIN_STAIRS
= 28¶
-
HAV_MAT_CLOTH
= 1¶
-
HAV_MAT_CLOTH_STAIRS
= 16¶
-
HAV_MAT_DIRT
= 2¶
-
HAV_MAT_DIRT_STAIRS
= 17¶
-
HAV_MAT_ELEVATOR
= 30¶
-
HAV_MAT_GLASS
= 3¶
-
HAV_MAT_GLASS_STAIRS
= 18¶
-
HAV_MAT_GRASS
= 4¶
-
HAV_MAT_GRASS_STAIRS
= 19¶
-
HAV_MAT_HEAVY_METAL
= 11¶
-
HAV_MAT_HEAVY_METAL_STAIRS
= 26¶
-
HAV_MAT_HEAVY_STONE
= 10¶
-
HAV_MAT_HEAVY_STONE_STAIRS
= 25¶
-
HAV_MAT_HEAVY_WOOD
= 12¶
-
HAV_MAT_HEAVY_WOOD_STAIRS
= 27¶
-
HAV_MAT_METAL
= 5¶
-
HAV_MAT_METAL_STAIRS
= 20¶
-
HAV_MAT_ORGANIC
= 6¶
-
HAV_MAT_ORGANIC_STAIRS
= 21¶
-
HAV_MAT_RUBBER
= 31¶
-
HAV_MAT_SKIN
= 7¶
-
HAV_MAT_SKIN_STAIRS
= 22¶
-
HAV_MAT_SNOW
= 14¶
-
HAV_MAT_SNOW_STAIRS
= 29¶
-
HAV_MAT_STONE
= 0¶
-
HAV_MAT_STONE_STAIRS
= 15¶
-
HAV_MAT_WATER
= 8¶
-
HAV_MAT_WATER_STAIRS
= 23¶
-
HAV_MAT_WOOD
= 9¶
-
HAV_MAT_WOOD_STAIRS
= 24¶
-
-
class
OblivionLayer
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Sets mesh color in Oblivion Construction Set. Anything higher than 57 is also null.
-
ANIM_STATIC
= 2¶
-
AVOID_BOX
= 21¶
-
BACK_WEAPON
= 53¶
-
BACK_WEAPON2
= 54¶
-
BIPED
= 8¶
-
BODY
= 34¶
-
CAMERA_PICK
= 24¶
-
CHAR_CONTROLLER
= 20¶
-
CLOUD_TRAP
= 16¶
-
CLUTTER
= 4¶
-
CUSTOM_PICK_1
= 28¶
-
CUSTOM_PICK_2
= 29¶
-
DROPPING_PICK
= 31¶
-
GROUND
= 17¶
-
HEAD
= 33¶
-
ITEM_PICK
= 25¶
-
LINE_OF_SIGHT
= 26¶
-
L_CALF
= 41¶
-
L_FOOT
= 42¶
-
L_FOREARM
= 38¶
-
L_HAND
= 39¶
-
L_THIGH
= 40¶
-
L_UPPER_ARM
= 37¶
-
NONCOLLIDABLE
= 15¶
-
NULL
= 57¶
-
OTHER
= 32¶
-
PATH_PICK
= 27¶
-
PONYTAIL
= 55¶
-
PORTAL
= 18¶
-
PROJECTILE
= 6¶
-
PROPS
= 10¶
-
QUIVER
= 52¶
-
R_CALF
= 47¶
-
R_FOOT
= 48¶
-
R_FOREARM
= 44¶
-
R_HAND
= 45¶
-
R_THIGH
= 46¶
-
R_UPPER_ARM
= 43¶
-
SHIELD
= 51¶
-
SIDE_WEAPON
= 50¶
-
SPELL
= 7¶
-
SPELL_EXPLOSION
= 30¶
-
SPINE1
= 35¶
-
SPINE2
= 36¶
-
STAIRS
= 19¶
-
STATIC
= 1¶
-
TAIL
= 49¶
-
TERRAIN
= 13¶
-
TRANSPARENT
= 3¶
-
TRAP
= 14¶
-
TREES
= 9¶
-
TRIGGER
= 12¶
-
UNIDENTIFIED
= 0¶
-
UNKNOWN1
= 22¶
-
UNKNOWN2
= 23¶
-
WATER
= 11¶
-
WEAPON
= 5¶
-
WING
= 56¶
-
-
class
OblivionSubShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Havok Information for packed TriStrip shapes.
-
property
havok_col_filter
¶
-
property
material
¶ The material of the subshape.
-
property
num_vertices
¶ The number of vertices that form this sub shape.
-
property
-
class
OldSkinData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Used to store skin weights in NiTriShapeSkinController.
-
property
unknown_vector
¶ Unknown. Perhaps some sort of offset?
-
property
vertex_index
¶ The index of the vertex that this weight applies to.
-
property
vertex_weight
¶ The amount that this bone affects the vertex.
-
property
-
class
PSLoopBehavior
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
PS_LOOP_AGESCALE
= 2¶
-
PS_LOOP_CLAMP_BIRTH
= 0¶
-
PS_LOOP_CLAMP_DEATH
= 1¶
-
PS_LOOP_LOOP
= 3¶
-
PS_LOOP_REFLECT
= 4¶
-
-
class
Particle
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
particle array entry
-
property
lifespan
¶ Maximum age of the particle.
-
property
lifetime
¶ The particle’s age.
-
property
timestamp
¶ Timestamp of the last update.
-
property
unknown_short
¶ Unknown short
-
property
unknown_vector
¶ Unknown
-
property
velocity
¶ Particle velocity
-
property
vertex_id
¶ Particle/vertex index matches array index
-
property
-
class
ParticleDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Particle Description.
-
property
translation
¶ Unknown.
-
property
unknown_float_1
¶ Unknown.
-
property
unknown_float_2
¶ Unknown.
-
property
unknown_float_3
¶ Unknown.
-
property
unknown_floats_1
¶ Unknown.
-
property
unknown_int_1
¶ Unknown.
-
property
-
class
PixelFormat
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Specifies the pixel format used by the NiPixelData object to store a texture.
-
PX_FMT_DXT1
= 4¶
-
PX_FMT_DXT5
= 5¶
-
PX_FMT_DXT5_ALT
= 6¶
-
PX_FMT_PAL8
= 2¶
-
PX_FMT_RGB8
= 0¶
-
PX_FMT_RGBA8
= 1¶
-
-
class
PixelLayout
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, describing the color depth of a texture.
-
PIX_LAY_BUMPMAP
= 4¶
-
PIX_LAY_COMPRESSED
= 3¶
-
PIX_LAY_DEFAULT
= 6¶
-
PIX_LAY_HIGH_COLOR_16
= 1¶
-
PIX_LAY_PALETTISED
= 0¶
-
PIX_LAY_PALETTISED_4
= 5¶
-
PIX_LAY_TRUE_COLOR_32
= 2¶
-
-
class
Polygon
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Two dimensional screen elements.
-
property
num_triangles
¶ Number of faces in this polygon
-
property
num_vertices
¶ Number of vertices in this polygon
-
property
triangle_offset
¶ Triangle offset in shape
-
property
vertex_offset
¶ Vertex Offset
-
property
-
class
PrismaticDescriptor
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
friction
¶ Friction.
-
property
max_distance
¶ Describe the max distance the object is able to travel.
-
property
min_distance
¶ Describe the min distance the object is able to travel.
-
property
pivot_a
¶ Pivot.
-
property
pivot_b
¶ Pivot in B coordinates.
-
property
plane_a
¶ Plane normal. Describes the plane the object is able to move on.
-
property
plane_b
¶ Plane normal. Describes the plane the object is able to move on in B coordinates.
-
property
rotation_a
¶ Rotation axis.
-
property
rotation_b
¶ Rotation axis.
-
property
rotation_matrix_a
¶ 4x4 rotation matrix, rotates the child entity.
-
property
sliding_a
¶ Describes the axis the object is able to travel along. Unit vector.
-
property
sliding_b
¶ Describes the axis the object is able to travel along in B coordinates. Unit vector.
-
property
unknown_byte_1
¶ Unknown. Do not set this to anything over 0 as it will crash the game.
-
property
-
class
PropagationMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
PROPAGATE_ALWAYS
= 2¶
-
PROPAGATE_NEVER
= 3¶
-
PROPAGATE_ON_FAILURE
= 1¶
-
PROPAGATE_ON_SUCCESS
= 0¶
-
-
class
Ptr
(**kwargs)[source]¶ Bases:
pyffi.formats.nif.Ref
A weak reference to another block, used to point up the hierarchy tree. The reference is not returned by the L{get_refs} function to avoid infinite recursion.
-
get_hash
(data=None)[source]¶ Returns a hash value (an immutable object) that can be used to identify the object uniquely.
-
replace_global_node
(oldbranch, newbranch, edge_filter=(True, True))[source]¶ >>> from pyffi.formats.nif import NifFormat >>> x = NifFormat.NiNode() >>> y = NifFormat.NiNode() >>> z = NifFormat.NiNode() >>> x.add_child(y) >>> x.children[0] is y True >>> x.children[0] is z False >>> x.replace_global_node(y, z) >>> x.children[0] is y False >>> x.children[0] is z True >>> x.replace_global_node(z, None) >>> x.children[0] is None True
-
-
class
QTransform
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
rotation
¶ Rotation.
-
property
scale
¶ Scale.
-
property
translation
¶ Translation.
-
property
-
class
QuatKey
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A special version of the key type used for quaternions. Never has tangents.
-
property
tbc
¶ The TBC of the key.
-
property
time
¶ Time the key applies.
-
property
value
¶ Value of the key.
-
property
-
class
Quaternion
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A quaternion.
-
property
w
¶ The w-coordinate.
-
property
x
¶ The x-coordinate.
-
property
y
¶ The y-coordinate.
-
property
z
¶ The z-coordinate.
-
property
-
class
QuaternionXYZW
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A quaternion as it appears in the havok objects.
-
property
w
¶ The w-coordinate.
-
property
x
¶ The x-coordinate.
-
property
y
¶ The y-coordinate.
-
property
z
¶ The z-coordinate.
-
property
-
RE_FILENAME
= re.compile('^.*\\.(nif|kf|kfa|nifcache|jmi|texcache|pcpatch|nft|item|nif_wii)$', re.IGNORECASE)¶
-
class
RagdollDescriptor
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._RagdollDescriptor
,object
-
class
Ref
(**kwargs)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
Reference to another block.
-
get_hash
(data=None)[source]¶ Returns a hash value (an immutable object) that can be used to identify the object uniquely.
-
replace_global_node
(oldbranch, newbranch, edge_filter=(True, True))[source]¶ >>> from pyffi.formats.nif import NifFormat >>> x = NifFormat.NiNode() >>> y = NifFormat.NiNode() >>> z = NifFormat.NiNode() >>> x.add_child(y) >>> x.children[0] is y True >>> x.children[0] is z False >>> x.replace_global_node(y, z) >>> x.children[0] is y False >>> x.children[0] is z True >>> x.replace_global_node(z, None) >>> x.children[0] is None True
-
-
class
Region
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A range of indices, which make up a region (such as a submesh).
-
property
num_indices
¶
-
property
start_index
¶
-
property
-
class
RootCollisionNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Morrowind-specific node for collision mesh.
-
class
SemanticData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
index
¶ An extra index of the data. For example, if there are 3 uv maps,then the corresponding TEXCOORD data components would have indices0, 1, and 2, respectively.
-
property
name
¶ Type of data (POSITION, POSITION_BP, INDEX, NORMAL, NORMAL_BP,TEXCOORD, BLENDINDICES, BLENDWEIGHT, BONE_PALETTE, COLOR, DISPLAYLIST,MORPH_POSITION, BINORMAL_BP, TANGENT_BP).
-
property
-
class
ShaderTexDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
An extended texture description for shader textures.
-
property
is_used
¶ Is it used?
-
property
map_index
¶ Map Index
-
property
texture_data
¶ The texture data.
-
property
-
class
ShortString
(**kwargs)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
Another type for strings.
-
class
SizedString
(**kwargs)¶ Bases:
pyffi.object_models.xml.basic.BasicBase
,pyffi.object_models.editable.EditableLineEdit
Basic type for strings. The type starts with an unsigned int which describes the length of the string.
>>> from tempfile import TemporaryFile >>> f = TemporaryFile() >>> from pyffi.object_models import FileFormat >>> data = FileFormat.Data() >>> s = SizedString() >>> if f.write('\x07\x00\x00\x00abcdefg'.encode("ascii")): pass # ignore result for py3k >>> if f.seek(0): pass # ignore result for py3k >>> s.read(f, data) >>> str(s) 'abcdefg' >>> if f.seek(0): pass # ignore result for py3k >>> s.set_value('Hi There') >>> s.write(f, data) >>> if f.seek(0): pass # ignore result for py3k >>> m = SizedString() >>> m.read(f, data) >>> str(m) 'Hi There'
-
get_hash
(data=None)¶ Return a hash value for this string.
- Returns
An immutable object that can be used as a hash.
-
get_size
(data=None)¶ Return number of bytes this type occupies in a file.
- Returns
Number of bytes.
-
get_value
()¶ Return the string.
- Returns
The stored string.
-
read
(stream, data)¶ Read string from stream.
- Parameters
stream (file) – The stream to read from.
-
write
(stream, data)¶ Write string to stream.
- Parameters
stream (file) – The stream to write to.
-
-
class
SkinData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._SkinData
,object
-
class
SkinPartition
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._SkinPartition
,object
-
class
SkinShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Reference to shape and skin instance.
-
property
shape
¶ The shape.
-
property
skin_instance
¶ Skinning instance for the shape?
-
property
-
class
SkinShapeGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Unknown.
-
property
link_pairs
¶ First link is a NiTriShape object.Second link is a NiSkinInstance object.
-
property
num_link_pairs
¶ Counts unknown.
-
property
-
class
SkinTransform
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._SkinTransform
,object
-
class
SkinWeight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A weighted vertex.
-
property
index
¶ The vertex index, in the mesh.
-
property
weight
¶ The vertex weight - between 0.0 and 1.0
-
property
-
class
SkyObjectType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Sets what sky function this object fulfills in BSSkyShaderProperty or SkyShaderProperty.
-
BSSM_SKY
= 2¶
-
BSSM_SKY_CLOUDS
= 3¶
-
BSSM_SKY_MOON_STARS_MASK
= 7¶
-
BSSM_SKY_STARS
= 5¶
-
BSSM_SKY_SUNGLARE
= 1¶
-
BSSM_SKY_TEXTURE
= 0¶
-
-
class
SkyShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderLightingProperty
Bethesda-specific node? Found in Fallout3
-
property
file_name
¶ The texture.
-
property
sky_object_type
¶ Sky Object Type
-
property
-
class
SkyrimHavokMaterial
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
A material, used by havok shape objects in Skyrim.
-
MAT_BARREL
= 732141076¶
-
MAT_BOTTLE
= 493553910¶
-
MAT_BROKEN_STONE
= 131151687¶
-
MAT_CLOTH
= 3839073443¶
-
MAT_DIRT
= 3106094762¶
-
MAT_DRAGON
= 2518321175¶
-
MAT_GLASS
= 3739830338¶
-
MAT_GRASS
= 1848600814¶
-
MAT_GRAVEL
= 428587608¶
-
MAT_HEAVY_METAL
= 2229413539¶
-
MAT_HEAVY_STONE
= 1570821952¶
-
MAT_HEAVY_WOOD
= 3070783559¶
-
MAT_ICE
= 873356572¶
-
MAT_LIGHT_WOOD
= 365420259¶
-
MAT_MATERIAL_ARMOR_HEAVY
= 3708432437¶
-
MAT_MATERIAL_ARMOR_LIGHT
= 3424720541¶
-
MAT_MATERIAL_ARROW
= 3725505938¶
-
MAT_MATERIAL_AXE_1HAND
= 1305674443¶
-
MAT_MATERIAL_BASKET
= 790784366¶
-
MAT_MATERIAL_BLADE_1HAND
= 1060167844¶
-
MAT_MATERIAL_BLADE_1HAND_SMALL
= 2617944780¶
-
MAT_MATERIAL_BLADE_2HAND
= 2022742644¶
-
MAT_MATERIAL_BLUNT_2HAND
= 3969592277¶
-
MAT_MATERIAL_BONE
= 3049421844¶
-
MAT_MATERIAL_BOOK
= 1264672850¶
-
MAT_MATERIAL_BOTTLE_SMALL
= 2025794648¶
-
MAT_MATERIAL_BOULDER_LARGE
= 1885326971¶
-
MAT_MATERIAL_BOULDER_MEDIUM
= 4283869410¶
-
MAT_MATERIAL_BOULDER_SMALL
= 1550912982¶
-
MAT_MATERIAL_BOWS_STAVES
= 1607128641¶
-
MAT_MATERIAL_CARPET
= 1286705471¶
-
MAT_MATERIAL_CERAMIC_MEDIUM
= 781661019¶
-
MAT_MATERIAL_CHAIN
= 3074114406¶
-
MAT_MATERIAL_CHAIN_METAL
= 438912228¶
-
MAT_MATERIAL_COIN
= 3589100606¶
-
MAT_MATERIAL_SHIELD_HEAVY
= 3702389584¶
-
MAT_MATERIAL_SHIELD_LIGHT
= 3448167928¶
-
MAT_MATERIAL_SKIN_LARGE
= 2965929619¶
-
MAT_MATERIAL_SKIN_SMALL
= 2632367422¶
-
MAT_MATERIAL_STONE_AS_STAIRS
= 1886078335¶
-
MAT_MATERIAL_WOOD_AS_STAIRS
= 1803571212¶
-
MAT_MUD
= 1486385281¶
-
MAT_ORGANIC
= 2974920155¶
-
MAT_SAND
= 2168343821¶
-
MAT_SKIN
= 591247106¶
-
MAT_SNOW
= 398949039¶
-
MAT_SOLID_METAL
= 1288358971¶
-
MAT_STAIRS_BROKEN_STONE
= 2892392795¶
-
MAT_STAIRS_SNOW
= 1560365355¶
-
MAT_STAIRS_STONE
= 899511101¶
-
MAT_STAIRS_WOOD
= 1461712277¶
-
MAT_STONE
= 3741512247¶
-
MAT_UNKNOWN_1028101969
= 1028101969¶
-
MAT_UNKNOWN_1440721808
= 1440721808¶
-
MAT_UNKNOWN_1574477864
= 1574477864¶
-
MAT_UNKNOWN_1591009235
= 1591009235¶
-
MAT_WATER
= 1024582599¶
-
MAT_WOOD
= 500811281¶
-
-
class
SkyrimLayer
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Physical purpose of collision object? The setting affects object’s havok behavior in game. Anything higher than 47 is also null.
-
ACOUSTIC_SPACE
= 21¶
-
ACTORZONE
= 22¶
-
ANIMSTATIC
= 2¶
-
AVOIDBOX
= 34¶
-
BIPED
= 8¶
-
BIPED_NO_CC
= 33¶
-
CAMERAPICK
= 39¶
-
CAMERASHPERE
= 36¶
-
CHARCONTROLLER
= 30¶
-
CLOUD_TRAP
= 16¶
-
CLUTTER
= 4¶
-
COLLISIONBOX
= 35¶
-
CONEPROJECTILE
= 38¶
-
CUSTOMPICK1
= 43¶
-
CUSTOMPICK2
= 44¶
-
DEADBIP
= 32¶
-
DEBRIS_LARGE
= 20¶
-
DEBRIS_SMALL
= 19¶
-
DOORDETECTION
= 37¶
-
DROPPINGPICK
= 46¶
-
GASTRAP
= 24¶
-
GROUND
= 17¶
-
INVISIBLE_WALL
= 27¶
-
ITEMPICK
= 40¶
-
LINEOFSIGHT
= 41¶
-
NONCOLLIDABLE
= 15¶
-
NULL
= 47¶
-
PATHPICK
= 42¶
-
PORTAL
= 18¶
-
PROJECTILE
= 6¶
-
PROJECTILEZONE
= 23¶
-
PROPS
= 10¶
-
SHELLCASING
= 25¶
-
SPELL
= 7¶
-
SPELLEXPLOSION
= 45¶
-
STAIRHELPER
= 31¶
-
STATIC
= 1¶
-
TERRAIN
= 13¶
-
TRANSPARENT
= 3¶
-
TRANSPARENT_SMALL
= 26¶
-
TRANSPARENT_SMALL_ANIM
= 28¶
-
TRAP
= 14¶
-
TREES
= 9¶
-
TRIGGER
= 12¶
-
UNIDENTIFIED
= 0¶
-
WARD
= 29¶
-
WATER
= 11¶
-
WEAPON
= 5¶
-
-
class
SkyrimShaderPropertyFlags1
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
slsf_1_cast_shadows
¶
-
property
slsf_1_decal
¶
-
property
slsf_1_dynamic_decal
¶
-
property
slsf_1_environment_mapping
¶
-
property
slsf_1_external_emittance
¶
-
property
slsf_1_eye_environment_mapping
¶
-
property
slsf_1_face_gen_rgb_tint
¶
-
property
slsf_1_facegen_detail_map
¶
-
property
slsf_1_fire_refraction
¶
-
property
slsf_1_greyscale_to_palette_alpha
¶
-
property
slsf_1_greyscale_to_palette_color
¶
-
property
slsf_1_hair_soft_lighting
¶
-
property
slsf_1_landscape
¶
-
property
slsf_1_localmap_hide_secret
¶
-
property
slsf_1_model_space_normals
¶
-
property
slsf_1_multiple_textures
¶
-
property
slsf_1_non_projective_shadows
¶
-
property
slsf_1_own_emit
¶
-
property
slsf_1_parallax
¶
-
property
slsf_1_parallax_occlusion
¶
-
property
slsf_1_projected_uv
¶
-
property
slsf_1_recieve_shadows
¶
-
property
slsf_1_refraction
¶
-
property
slsf_1_remappable_textures
¶
-
property
slsf_1_screendoor_alpha_fade
¶
-
property
slsf_1_skinned
¶
-
property
slsf_1_soft_effect
¶
-
property
slsf_1_specular
¶
-
property
slsf_1_temp_refraction
¶
-
property
slsf_1_use_falloff
¶
-
property
slsf_1_vertex_alpha
¶
-
property
slsf_1_z_buffer_test
¶
-
property
-
class
SkyrimShaderPropertyFlags2
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
slsf_2_anisotropic_lighting
¶
-
property
slsf_2_assume_shadowmask
¶
-
property
slsf_2_back_lighting
¶
-
property
slsf_2_billboard
¶
-
property
slsf_2_cloud_lod
¶
-
property
slsf_2_double_sided
¶
-
property
slsf_2_effect_lighting
¶
-
property
slsf_2_env_map_light_fade
¶
-
property
slsf_2_fit_slope
¶
-
property
slsf_2_glow_map
¶
-
property
slsf_2_hd_lod_objects
¶
-
property
slsf_2_hide_on_local_map
¶
-
property
slsf_2_lod_landscape
¶
-
property
slsf_2_lod_objects
¶
-
property
slsf_2_multi_index_snow
¶
-
property
slsf_2_multi_layer_parallax
¶
-
property
slsf_2_no_fade
¶
-
property
slsf_2_no_lod_land_blend
¶
-
property
slsf_2_no_transparency_multisampling
¶
-
property
slsf_2_packed_tangent
¶
-
property
slsf_2_premult_alpha
¶
-
property
slsf_2_rim_lighting
¶
-
property
slsf_2_soft_lighting
¶
-
property
slsf_2_tree_anim
¶
-
property
slsf_2_uniform_scale
¶
-
property
slsf_2_unused_01
¶
-
property
slsf_2_unused_02
¶
-
property
slsf_2_vertex_colors
¶
-
property
slsf_2_vertex_lighting
¶
-
property
slsf_2_weapon_blood
¶
-
property
slsf_2_wireframe
¶
-
property
slsf_2_z_buffer_write
¶
-
property
-
class
SkyrimWaterShaderFlags
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
-
property
swsf_1_bypass_refraction_map
¶
-
property
swsf_1_enabled
¶
-
property
swsf_1_highlight_layer_toggle
¶
-
property
swsf_1_unknown_0
¶
-
property
swsf_1_unknown_3
¶
-
property
swsf_1_unknown_4
¶
-
property
swsf_1_unknown_5
¶
-
property
swsf_1_water_toggle
¶
-
property
-
class
SolverDeactivation
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
A list of possible solver deactivation settings. This value defines how thesolver deactivates objects. The solver works on a per object basis.Note: Solver deactivation does not save CPU, but reduces creeping ofmovable objects in a pile quite dramatically.
-
SOLVER_DEACTIVATION_HIGH
= 4¶
-
SOLVER_DEACTIVATION_INVALID
= 0¶
-
SOLVER_DEACTIVATION_LOW
= 2¶
-
SOLVER_DEACTIVATION_MAX
= 5¶
-
SOLVER_DEACTIVATION_MEDIUM
= 3¶
-
SOLVER_DEACTIVATION_OFF
= 1¶
-
-
class
SortingMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
SORTING_INHERIT
= 0¶
-
SORTING_OFF
= 1¶
-
-
class
SphereBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A sphere.
-
property
center
¶ The sphere’s center.
-
property
radius
¶ The sphere’s radius.
-
property
-
class
StencilAction
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
This enum defines the various actions used in conjunction with the stencil buffer.For a detailed description of the individual options please refer to the OpenGL docs.
-
ACTION_DECREMENT
= 4¶
-
ACTION_INCREMENT
= 3¶
-
ACTION_INVERT
= 5¶
-
ACTION_KEEP
= 0¶
-
ACTION_REPLACE
= 2¶
-
ACTION_ZERO
= 1¶
-
-
class
StencilCompareMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
This enum contains the options for doing stencil buffer tests.
-
TEST_ALWAYS
= 7¶
-
TEST_EQUAL
= 2¶
-
TEST_GREATER
= 4¶
-
TEST_GREATER_EQUAL
= 6¶
-
TEST_LESS
= 1¶
-
TEST_LESS_EQUAL
= 3¶
-
TEST_NEVER
= 0¶
-
TEST_NOT_EQUAL
= 5¶
-
-
class
StiffSpringDescriptor
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
length
¶ Length.
-
property
pivot_a
¶ Pivot A.
-
property
pivot_b
¶ Pivot B.
-
property
-
StringIndex
¶ alias of
pyffi.object_models.common.UInt
-
class
StringOffset
(**kwargs)[source]¶ Bases:
pyffi.object_models.common.Int
This is just an integer with -1 as default value.
-
class
StringPalette
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._StringPalette
,object
-
add_string
(text)[source]¶ Adds string to palette (will recycle existing strings if possible) and return offset to the string in the palette.
>>> from pyffi.formats.nif import NifFormat >>> pal = NifFormat.StringPalette() >>> pal.add_string("abc") 0 >>> pal.add_string("abc") 0 >>> pal.add_string("def") 4 >>> pal.add_string("") -1 >>> print(pal.get_string(4).decode("ascii")) def
-
clear
()[source]¶ Clear all strings in the palette.
>>> from pyffi.formats.nif import NifFormat >>> pal = NifFormat.StringPalette() >>> pal.add_string("abc") 0 >>> pal.add_string("def") 4 >>> # pal.palette.decode("ascii") needs lstrip magic for py3k >>> print(repr(pal.palette.decode("ascii")).lstrip("u")) 'abc\x00def\x00' >>> pal.clear() >>> # pal.palette.decode("ascii") needs lstrip magic for py3k >>> print(repr(pal.palette.decode("ascii")).lstrip("u")) ''
-
get_all_strings
()[source]¶ Return a list of all strings.
>>> from pyffi.formats.nif import NifFormat >>> pal = NifFormat.StringPalette() >>> pal.add_string("abc") 0 >>> pal.add_string("def") 4 >>> for x in pal.get_all_strings(): ... print(x.decode("ascii")) abc def >>> # pal.palette.decode("ascii") needs lstrip magic for py3k >>> print(repr(pal.palette.decode("ascii")).lstrip("u")) 'abc\x00def\x00'
-
get_string
(offset)[source]¶ Return string at given offset.
>>> from pyffi.formats.nif import NifFormat >>> pal = NifFormat.StringPalette() >>> pal.add_string("abc") 0 >>> pal.add_string("def") 4 >>> print(pal.get_string(0).decode("ascii")) abc >>> print(pal.get_string(4).decode("ascii")) def >>> pal.get_string(5) pyffi.nif.stringpalette:WARNING:StringPalette: no string starts at offset 5 (string is b'ef', preceeding character is b'd') b'ef' >>> pal.get_string(100) Traceback (most recent call last): ... ValueError: ...
-
-
class
SubConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
ball_and_socket
¶
-
property
entities
¶ Usually NONE. The entities affected by this constraint.
-
property
hinge
¶
-
property
limited_hinge
¶
-
property
num_entities
¶ Usually 2. Number of bodies affected by this constraint.
-
property
priority
¶ Usually 1. Higher values indicate higher priority of this constraint?
-
property
prismatic
¶
-
property
ragdoll
¶
-
property
stiff_spring
¶
-
property
type
¶ Type of constraint.
-
property
-
class
SymmetryType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines symetry type used by NiPSysBombModifier.
-
CYLINDRICAL_SYMMETRY
= 1¶
-
PLANAR_SYMMETRY
= 2¶
-
SPHERICAL_SYMMETRY
= 0¶
-
-
class
SyncPoint
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Specifies the time when an application must syncronize for some reason.
-
SYNC_ANY
= 32768¶
-
SYNC_PHYSICS_COMPLETED
= 32864¶
-
SYNC_PHYSICS_SIMULATE
= 32848¶
-
SYNC_POST_UPDATE
= 32800¶
-
SYNC_REFLECTIONS
= 32880¶
-
SYNC_RENDER
= 32832¶
-
SYNC_UPDATE
= 32784¶
-
SYNC_VISIBLE
= 32816¶
-
-
class
TBC
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Tension, bias, continuity.
-
property
b
¶ Bias.
-
property
c
¶ Continuity.
-
property
t
¶ Tension.
-
property
-
class
TallGrassShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node.
-
property
file_name
¶ Texture file name
-
property
-
class
TargetColor
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Used by NiPoint3InterpControllers to select which type of color in the controlled object that will be animated.
-
TC_AMBIENT
= 0¶
-
TC_DIFFUSE
= 1¶
-
TC_SELF_ILLUM
= 3¶
-
TC_SPECULAR
= 2¶
-
-
class
TexClampMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Specifies the availiable texture clamp modes. That is, the behavior of pixels outside the range of the texture.
-
CLAMP_S_CLAMP_T
= 0¶
-
CLAMP_S_WRAP_T
= 1¶
-
WRAP_S_CLAMP_T
= 2¶
-
WRAP_S_WRAP_T
= 3¶
-
-
class
TexCoord
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._TexCoord
,object
-
class
TexDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Texture description.
-
property
center_offset
¶ The offset from the origin?
-
property
clamp_mode
¶ 0=clamp S clamp T, 1=clamp S wrap T, 2=wrap S clamp T, 3=wrap S wrap T
-
property
filter_mode
¶ 0=nearest, 1=bilinear, 2=trilinear, 3=…, 4=…, 5=…
-
property
flags
¶ Texture mode flags; clamp and filter mode stored in upper byte with 0xYZ00 = clamp mode Y, filter mode Z.
-
property
has_texture_transform
¶ Determines whether or not the texture’s coordinates are transformed.
-
property
ps_2_k
¶ PS2 only; from the Freedom Force docs,”The K value is used as an offset into the mipmap levels and can range from -2047 to 2047. Positive values push the mipmap towards being blurry and negative values make the mipmap sharper.”-75 for most v4.0.0.2 meshes.
-
property
ps_2_l
¶ PS2 only; from the Freedom Force docs,”L values can range from 0 to 3 and are used to specify how fast a texture gets blurry”.
-
property
source
¶ NiSourceTexture object index.
-
property
tiling
¶ The number of times the texture is tiled in each direction?
-
property
transform_type
¶ The texture transform type? Doesn’t seem to do anything.
-
property
translation
¶ The amount to translate the texture coordinates in each direction?
-
property
unknown_1
¶ Unknown, 0 or 0x0101?
-
property
unknown_short
¶ Unknown, seems to always be 1
-
property
uv_set
¶ The texture coordinate set in NiGeometryData that this texture slot will use.
-
property
w_rotation
¶ 2D Rotation of texture image around third W axis after U and V.
-
property
-
class
TexFilterMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Specifies the availiable texture filter modes. That is, the way pixels within a texture are blended together when textures are displayed on the screen at a size other than their original dimentions.
-
FILTER_BILERP
= 1¶
-
FILTER_BILERP_MIPNEAREST
= 5¶
-
FILTER_NEAREST
= 0¶
-
FILTER_NEAREST_MIPLERP
= 4¶
-
FILTER_NEAREST_MIPNEAREST
= 3¶
-
FILTER_TRILERP
= 2¶
-
-
class
TexSource
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A texture source.
-
property
file_name
¶ The original source filename of the image embedded by the referred NiPixelData object.
-
property
pixel_data
¶ Pixel data object index.
-
property
unknown_byte
¶ Unknown.
-
property
unknown_link
¶ Unknown.
-
property
use_external
¶ Is the texture external?
-
property
-
class
TexTransform
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Determines how a NiTextureTransformController animates the UV coordinates.
-
TT_ROTATE
= 2¶
-
TT_SCALE_U
= 3¶
-
TT_SCALE_V
= 4¶
-
TT_TRANSLATE_U
= 0¶
-
TT_TRANSLATE_V
= 1¶
-
-
class
TexType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The type of texture.
-
BASE_MAP
= 0¶
-
BUMP_MAP
= 5¶
-
DARK_MAP
= 1¶
-
DECAL_0_MAP
= 8¶
-
DECAL_1_MAP
= 9¶
-
DECAL_2_MAP
= 10¶
-
DECAL_3_MAP
= 11¶
-
DETAIL_MAP
= 2¶
-
GLOSS_MAP
= 3¶
-
GLOW_MAP
= 4¶
-
NORMAL_MAP
= 6¶
-
UNKNOWN2_MAP
= 7¶
-
-
class
TileShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderLightingProperty
Bethesda-specific node.
-
property
file_name
¶ Texture file name
-
property
-
class
Triangle
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
List of three vertex indices.
-
property
v_1
¶ First vertex index.
-
property
v_2
¶ Second vertex index.
-
property
v_3
¶ Third vertex index.
-
property
-
class
UnionBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
bounding_volumes
¶ Bounding Volume.
-
property
num_bv
¶ Number of Bounding Volumes.
-
property
-
class
Vector3
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._Vector3
,object
-
class
Vector4
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._Vector4
,object
>>> from pyffi.formats.nif import NifFormat >>> vec = NifFormat.Vector4() >>> vec.x = 1.0 >>> vec.y = 2.0 >>> vec.z = 3.0 >>> vec.w = 4.0 >>> print(vec) [ 1.000 2.000 3.000 4.000 ] >>> vec.as_list() [1.0, 2.0, 3.0, 4.0] >>> vec.as_tuple() (1.0, 2.0, 3.0, 4.0) >>> print(vec.get_vector_3()) [ 1.000 2.000 3.000 ] >>> vec2 = NifFormat.Vector4() >>> vec == vec2 False >>> vec2.x = 1.0 >>> vec2.y = 2.0 >>> vec2.z = 3.0 >>> vec2.w = 4.0 >>> vec == vec2 True
-
class
VelocityType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
Controls the way the a particle mesh emitter determines the starting speed and direction of the particles that are emitted.
-
VELOCITY_USE_DIRECTION
= 2¶
-
VELOCITY_USE_NORMALS
= 0¶
-
VELOCITY_USE_RANDOM
= 1¶
-
-
class
VertMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
An unsigned 32-bit integer, which describes how to apply vertex colors.
-
VERT_MODE_SRC_AMB_DIF
= 2¶
-
VERT_MODE_SRC_EMISSIVE
= 1¶
-
VERT_MODE_SRC_IGNORE
= 0¶
-
-
class
VolumetricFogShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node.
-
class
WaterShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node? Found in Fallout3
-
class
ZCompareMode
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
This enum contains the options for doing z buffer tests.
-
ZCOMP_ALWAYS
= 0¶
-
ZCOMP_EQUAL
= 2¶
-
ZCOMP_GREATER
= 4¶
-
ZCOMP_GREATER_EQUAL
= 6¶
-
ZCOMP_LESS
= 1¶
-
ZCOMP_LESS_EQUAL
= 3¶
-
ZCOMP_NEVER
= 7¶
-
ZCOMP_NOT_EQUAL
= 5¶
-
-
class
bhkAabbPhantom
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShapePhantom
Bethesda-specific node.
-
property
unknown_ints_1
¶
-
property
-
class
bhkBallAndSocketConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkConstraint
A Ball and Socket Constraint.
-
property
ball_and_socket
¶ Describes a ball and socket constraint
-
property
-
class
bhkBallSocketConstraintChain
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSerializable
A Ball and Socket Constraint chain.
-
property
floats_1
¶ Unknown
-
property
links
¶ Unknown
-
property
links_2
¶ Unknown
-
property
num_floats
¶ Unknown
-
property
num_links
¶ Number of links in the chain
-
property
num_links_2
¶ Number of links in the chain
-
property
unknown_float_1
¶ Unknown
-
property
unknown_float_2
¶ Unknown
-
property
unknown_int_1
¶ Unknown
-
property
unknown_int_2
¶ Unknown
-
property
unknown_int_3
¶ Unknown
-
property
-
class
bhkBlendCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkCollisionObject
Unknown.
-
property
unknown_float_1
¶ Blending parameter?
-
property
unknown_float_2
¶ Another blending parameter?
-
property
-
class
bhkBlendController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Unknown. Is apparently only used in skeleton.nif files.
-
property
unknown_int
¶ Seems to be always zero.
-
property
-
class
bhkBoxShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkBoxShape
,object
-
class
bhkBreakableConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkConstraint
A breakable constraint.
-
property
remove_if_broken
¶ Unknown
-
property
sub_constraint
¶ Constraint within constraint.
-
property
threshold
¶ Amount of force to break the rigid bodies apart?
-
property
-
class
bhkBvTreeShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShape
A tree-like Havok data structure stored in an assembly-like binary code?
-
class
bhkCMSDBigTris
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Triangle indices used in pair with “Big Verts” in a bhkCompressedMeshShapeData.
-
property
triangle_1
¶
-
property
triangle_2
¶
-
property
triangle_3
¶
-
property
unknown_int_1
¶ Always 0?
-
property
unknown_short_1
¶
-
property
-
class
bhkCMSDChunk
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Defines subshape chunks in bhkCompressedMeshShapeData
-
property
indices
¶
-
property
indices_2
¶ Compressed
-
property
material_index
¶ Index of material in bhkCompressedMeshShapeData::Chunk Materials
-
property
num_indices
¶
-
property
num_indices_2
¶ Number of
-
property
num_strips
¶ Number of compressed strips
-
property
num_vertices
¶ Number of compressed vertices
-
property
strips
¶ Compressed strips
-
property
transform_index
¶ Index of transformation in bhkCompressedMeshShapeData::Chunk Transforms
-
property
translation
¶ Local translation
-
property
unknown_short_1
¶ Always 65535?
-
property
vertices
¶ Compressed vertices
-
property
-
class
bhkCMSDMaterial
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Per-chunk material, used in bhkCompressedMeshShapeData
-
property
byte_set_to_0
¶ Always set to 0. It is only remainder of “Layer” 32-bit integer above.
-
property
layer
¶ Copy of Layer from bhkRigidBody. The value is stored as 32-bit integer.
-
property
material
¶ Material.
-
property
short_set_to_0
¶ Always set to 0. It is only remainder of “Layer” 32-bit integer above.
-
property
-
class
bhkCMSDTransform
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A set of transformation data: translation and rotation
-
property
rotation
¶ Rotation. Reference point for rotation is bhkRigidBody translation.
-
property
translation
¶ A vector that moves the chunk by the specified amount. W is not used.
-
property
-
class
bhkCapsuleShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkCapsuleShape
,object
-
class
bhkCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkNiCollisionObject
Havok related collision object?
-
class
bhkCompressedMeshShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShape
Compressed collision mesh.
-
property
data
¶ The collision mesh data.
-
property
radius
¶ A shell with that radius is added around the shape.
-
property
scale
¶ Scale
-
property
target
¶ Points to root node?
-
property
unknown_4_bytes
¶ Unknown.
-
property
unknown_float_1
¶ Unknown.
-
property
unknown_float_3
¶ Unknown
-
property
unknown_float_4
¶ Unknown
-
property
unknown_float_5
¶ Unknown
-
property
unknown_floats_1
¶ Unknown
-
property
unknown_int_1
¶ Unknown.
-
property
-
class
bhkCompressedMeshShapeData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkRefObject
A compressed mesh shape for collision in Skyrim.
-
property
big_tris
¶ Unknown
-
property
big_verts
¶ Compressed Vertices?
-
property
bits_per_index
¶ Number of bits in the shape-key reserved for a triangle index
-
property
bits_per_w_index
¶ Number of bits in the shape-key reserved for a triangle index and its winding
-
property
bounds_max
¶ The maximum boundary of the AABB (the coordinates of the corner with the highest numerical values)
-
property
bounds_min
¶ The minimum boundary of the AABB (the coordinates of the corner with the lowest numerical values)
-
property
chunk_materials
¶ Table (array) with sets of materials. Chunks refers to this table by index.
-
property
chunk_transforms
¶ Table (array) with sets of transformations. Chunks refers to this table by index.
-
property
chunks
¶
-
property
error
¶ The radius of the storage mesh shape? Quantization error?
-
property
mask_index
¶ 131071 = 0x1ffff)
- Type
Mask used to get the triangle index from a shape-key (common
-
property
mask_w_index
¶ 262143 = 0x3ffff)
- Type
Mask used to get the triangle index and winding from a shape-key (common
-
property
num_big_tris
¶ Unknown
-
property
num_big_verts
¶ Unknown
-
property
num_chunks
¶ Unknown
-
property
num_materials
¶ Number of chunk materials
-
property
num_transforms
¶ Number of chunk transformations
-
property
unknown_byte_1
¶ Unknown
-
property
unknown_byte_2
¶ Unknown
-
property
unknown_int_12
¶ Unknown, end of block.
-
property
unknown_int_3
¶ Unknown
-
property
unknown_int_4
¶ Unknown
-
property
unknown_int_5
¶ Unknown
-
property
unknown_int_6
¶ Unknown
-
property
-
class
bhkConstraint
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkConstraint
,object
-
class
bhkConvexListShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShape
A havok shape.A list of convex shapes.Do not put a bhkPackedNiTriStripsShape in the Sub Shapes. Use aseparate collision nodes without a list shape for those.Also, shapes collected in a bhkListShape may not have the correctwalking noise, so only use it for non-walkable objects.
-
property
material
¶ The material of the shape.
-
property
num_sub_shapes
¶ The number of sub shapes referenced.
-
property
sub_shapes
¶ List of shapes.
-
property
unknown_byte_1
¶ Unknown Flag
-
property
unknown_float_1
¶ Unknown Flag
-
property
unknown_floats
¶ Unknown. Set to (0.0,0.0,-0.0,0.0,0.0,-0.0), where -0.0 is 0x80000000 in hex.
-
property
-
class
bhkConvexShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSphereRepShape
A havok shape.
-
class
bhkConvexTransformShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkTransformShape
A convex transformed shape?
-
class
bhkConvexVerticesShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkConvexVerticesShape
,object
-
class
bhkEntity
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkWorldObject
A havok node, describes physical properties.
-
class
bhkHingeConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkConstraint
A hinge constraint.
-
property
hinge
¶ Hinge constraing.
-
property
-
class
bhkLimitedHingeConstraint
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkLimitedHingeConstraint
,object
-
class
bhkLiquidAction
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSerializable
Bethesda-specific node.
-
property
unknown_float_1
¶ Unknown Flag
-
property
unknown_float_2
¶ Unknown Flag
-
property
unknown_float_3
¶ Unknown Flag
-
property
unknown_float_4
¶ Unknown Flag
-
property
unknown_int_1
¶ Unknown Flag
-
property
unknown_int_2
¶ Unknown Flag
-
property
unknown_int_3
¶ Unknown Flag
-
property
-
class
bhkListShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkListShape
,object
-
class
bhkMalleableConstraint
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkMalleableConstraint
,object
-
class
bhkMeshShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShape
-
property
num_strips_data
¶ The number of strips data objects referenced.
-
property
num_unknown_floats
¶
-
property
strips_data
¶ Refers to a bunch of NiTriStripsData objects that make up this shape.
-
property
unknown_1
¶
-
property
unknown_2
¶
-
property
unknown_floats
¶
-
property
-
class
bhkMoppBvTreeShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkMoppBvTreeShape
,object
-
get_mass_center_inertia
(density=1, solid=True)[source]¶ Return mass, center of gravity, and inertia tensor.
-
parse_mopp
(start=0, depth=0, toffset=0, verbose=False)[source]¶ The mopp data is printed to the debug channel while parsed. Returns list of indices into mopp data of the bytes processed and a list of triangle indices encountered.
The verbose argument is ignored (and is deprecated).
-
-
class
bhkMultiSphereShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkMultiSphereShape
,object
-
class
bhkNiCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiCollisionObject
Havok related collision object?
-
property
body
¶ Links to the collision object data
-
property
flags
¶ 0=Active 2=Notify 3=Set Local 6=Reset.
- Type
Set to 1 for most objects, and to 41 for animated objects (ANIM_STATIC) Bits
-
property
-
class
bhkNiTriStripsShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkNiTriStripsShape
,object
-
class
bhkOrientHingedBodyAction
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSerializable
Bethesda-Specific node.
-
property
unknown_ints_1
¶
-
property
-
class
bhkPCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkNiCollisionObject
Unknown.
-
class
bhkPackedNiTriStripsShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkPackedNiTriStripsShape
,object
-
get_triangle_hash_generator
()[source]¶ Generator which produces a tuple of integers, or None in degenerate case, for each triangle to ease detection of duplicate triangles.
>>> shape = NifFormat.bhkPackedNiTriStripsShape() >>> data = NifFormat.hkPackedNiTriStripsData() >>> shape.data = data >>> data.num_triangles = 6 >>> data.triangles.update_size() >>> data.triangles[0].triangle.v_1 = 0 >>> data.triangles[0].triangle.v_2 = 1 >>> data.triangles[0].triangle.v_3 = 2 >>> data.triangles[1].triangle.v_1 = 2 >>> data.triangles[1].triangle.v_2 = 1 >>> data.triangles[1].triangle.v_3 = 3 >>> data.triangles[2].triangle.v_1 = 3 >>> data.triangles[2].triangle.v_2 = 2 >>> data.triangles[2].triangle.v_3 = 1 >>> data.triangles[3].triangle.v_1 = 3 >>> data.triangles[3].triangle.v_2 = 1 >>> data.triangles[3].triangle.v_3 = 2 >>> data.triangles[4].triangle.v_1 = 0 >>> data.triangles[4].triangle.v_2 = 0 >>> data.triangles[4].triangle.v_3 = 3 >>> data.triangles[5].triangle.v_1 = 1 >>> data.triangles[5].triangle.v_2 = 3 >>> data.triangles[5].triangle.v_3 = 4 >>> list(shape.get_triangle_hash_generator()) [(0, 1, 2), (1, 3, 2), (1, 3, 2), (1, 2, 3), None, (1, 3, 4)]
- Returns
A generator yielding a hash value for each triangle.
-
get_vertex_hash_generator
(vertexprecision=3, subshape_index=None)[source]¶ Generator which produces a tuple of integers for each vertex to ease detection of duplicate/close enough to remove vertices. The precision parameter denote number of significant digits behind the comma.
For vertexprecision, 3 seems usually enough (maybe we’ll have to increase this at some point).
>>> shape = NifFormat.bhkPackedNiTriStripsShape() >>> data = NifFormat.hkPackedNiTriStripsData() >>> shape.data = data >>> shape.num_sub_shapes = 2 >>> shape.sub_shapes.update_size() >>> data.num_vertices = 3 >>> shape.sub_shapes[0].num_vertices = 2 >>> shape.sub_shapes[1].num_vertices = 1 >>> data.vertices.update_size() >>> data.vertices[0].x = 0.0 >>> data.vertices[0].y = 0.1 >>> data.vertices[0].z = 0.2 >>> data.vertices[1].x = 1.0 >>> data.vertices[1].y = 1.1 >>> data.vertices[1].z = 1.2 >>> data.vertices[2].x = 2.0 >>> data.vertices[2].y = 2.1 >>> data.vertices[2].z = 2.2 >>> list(shape.get_vertex_hash_generator()) [(0, (0, 100, 200)), (0, (1000, 1100, 1200)), (1, (2000, 2100, 2200))] >>> list(shape.get_vertex_hash_generator(subshape_index=0)) [(0, 100, 200), (1000, 1100, 1200)] >>> list(shape.get_vertex_hash_generator(subshape_index=1)) [(2000, 2100, 2200)]
- Parameters
vertexprecision (float) – Precision to be used for vertices.
- Returns
A generator yielding a hash value for each vertex.
-
-
class
bhkPhantom
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkWorldObject
Havok object that do not react with other objects when they collide (causing deflection, etc.) but still trigger collision notifications to the game. Possible uses are traps, portals, AI fields, etc.
-
class
bhkPrismaticConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkConstraint
A prismatic constraint.
-
property
prismatic
¶ Describes a prismatic constraint
-
property
-
class
bhkRDTConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
entity_a
¶ Entity A in this constraint.
-
property
entity_b
¶ Entity B in this constraint.
-
property
malleable_constraint
¶
-
property
priority
¶ Usually 1. Higher values indicate higher priority of this constraint?
-
property
ragdoll
¶
-
property
type
¶ Type of constraint.7 = RagDoll Constraint?13 = Malleable Constraint?
-
property
unknown_int
¶ Unknown. Usually 2.
-
property
-
class
bhkRDTMalleableConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A malleable constraint.
-
property
damping
¶
-
property
entity_a
¶ Usually -1?
-
property
entity_b
¶ Usually -1?
-
property
hinge
¶
-
property
limited_hinge
¶
-
property
priority
¶ Usually 1. Higher values indicate higher priority of this constraint?
-
property
ragdoll
¶
-
property
type
¶ Type of constraint.
-
property
unknown_int
¶ Unknown. Usually 2.
-
property
-
class
bhkRagdollConstraint
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkRagdollConstraint
,object
-
class
bhkRagdollTemplate
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Found in Fallout 3, more ragdoll info? (meshesragdollconstraint*.rdt)
-
property
bones
¶ Bones in index
-
property
name
¶
-
property
num_bones
¶ Number of target bones
-
property
-
class
bhkRagdollTemplateData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Data for bhkRagdollTemplate
-
property
constraint
¶ Unknown
-
property
flag_or_num_constraints
¶ a Constraint is present.
- Type
Either a flag or a number of constraints.0
- Type
no Constraint is present.1
-
property
friction
¶ Probably a Friction for bhkRigidBody linked to this bone node.
-
property
mass
¶ Probably a Mass for bhkRigidBody linked to this bone node.
-
property
name
¶
-
property
radius
¶ Probably a Radius for collision object shape of bhkRigidBody linked to this bone node.
-
property
restitution
¶ Probably a Restitution for bhkRigidBody linked to this bone node.
-
property
unknown_int
¶ Unknown. Dependent on value of User Version 2?Value 7 found in Fallout3 meshesragdollconstraintdefault.rdt. This file has User Version 2 = 34.Value 0 found in Fallout3 meshesragdollconstraintstiff.rdt. This file has User Version 2 = 16.
-
property
-
class
bhkRefObject
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkRefObject
,object
-
class
bhkRigidBody
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkRigidBody
,object
-
class
bhkRigidBodyT
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkRigidBody
Unknown.
-
class
bhkSPCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkPCollisionObject
Unknown.
-
class
bhkSerializable
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkRefObject
Havok objects that can be saved and loaded from disk?
-
class
bhkShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSerializable
A Havok Shape?
-
class
bhkShapeCollection
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShape
Havok collision object that uses multiple shapes?
-
class
bhkShapePhantom
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkPhantom
A Havok phantom that uses a Havok shape object for its collision volume instead of just a bounding box.
-
class
bhkSimpleShapePhantom
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShapePhantom
Unknown shape.
-
property
unknown_float
¶ Unknown.
-
property
unknown_floats_2
¶ Unknown. (1,0,0,0,0) x 3.
-
property
unkown_floats
¶ Unknown.
-
property
-
class
bhkSphereRepShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkShape
A havok shape, perhaps with a bounding sphere for quick rejection in addition to more detailed shape data?
-
property
material
¶ The material of the shape.
-
property
radius
¶ The radius of the sphere that encloses the shape.
-
property
-
class
bhkSphereShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkSphereShape
,object
-
class
bhkStiffSpringConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkConstraint
A spring constraint.
-
property
stiff_spring
¶ Stiff Spring constraint.
-
property
-
class
bhkTransformShape
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._bhkTransformShape
,object
-
class
bhkWorldObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSerializable
Havok objects that have a position in the world?
-
property
havok_col_filter
¶
-
property
shape
¶ Link to the body for this collision object.
-
property
-
class
bool
(**kwargs)[source]¶ Bases:
pyffi.object_models.xml.basic.BasicBase
,pyffi.object_models.editable.EditableBoolComboBox
Basic implementation of a 32-bit (8-bit for versions > 4.0.0.2) boolean type.
>>> i = NifFormat.bool() >>> i.set_value('false') >>> i.get_value() False >>> i.set_value('true') >>> i.get_value() True
-
byte
¶ alias of
pyffi.object_models.common.UByte
-
char
¶ alias of
pyffi.object_models.common.Char
-
float
¶ alias of
pyffi.object_models.common.Float
-
games
= {'?': [167772419], 'Atlantica': [335675400], 'Axis and Allies': [167837696], 'Bully SE': [335740937], 'Civilization IV': [67239938, 67240192, 67240448, 167772416, 167837696, 167903232, 335544324], 'Culpa Innata': [67240448], 'Dark Age of Camelot': [33751040, 50332416, 50397184, 67174412, 67240192, 67240448, 167837696], 'Divinity 2': [335740937], 'Emerge': [335675399, 335675400, 335740929, 335740930, 335740931, 335740934, 503316482], 'Empire Earth II': [67240448, 167837696], 'Empire Earth III': [335675399, 335675400], 'Entropia Universe': [167837696], 'Epic Mickey': [335938816], 'Fallout 3': [335675399], 'Freedom Force': [67108864, 67108866], 'Freedom Force vs. the 3rd Reich': [167837696], 'Howling Sword': [335740937], 'Kohan 2': [167837696], 'KrazyRain': [335872000, 335937536], 'Lazeska': [335740937], 'Loki': [167903232], 'Megami Tensei: Imagine': [335609859], 'Morrowind': [67108866], 'NeoSteam': [167837696], 'Oblivion': [50528269, 167772416, 167772418, 167837797, 167837802, 167903232, 335544324, 335544325], 'Prison Tycoon': [167903232], 'Pro Cycling Manager': [167903232], 'Red Ocean': [167903232], 'Rocksmith': [503382019], 'Rocksmith 2014': [503382019], "Sid Meier's Railroads": [335544324], 'Skyrim': [335675399], 'Star Trek: Bridge Commander': [50331648, 50397184], 'The Guild 2': [167837696], 'Warhammer': [335740937], 'Wildlife Park 2': [167837696, 167903232], 'Worldshift': [167903233, 168034305], 'Zoo Tycoon 2': [167772416]}¶
-
class
hkConstraintType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
The type of constraint.
-
BallAndSocket
= 0¶
-
Hinge
= 1¶
-
Prismatic
= 6¶
-
Ragdoll
= 7¶
-
StiffSpring
= 8¶
-
-
class
hkPackedNiTriStripsData
(template=None, argument=None, parent=None)[source]¶ Bases:
pyffi.formats.nif._hkPackedNiTriStripsData
,object
-
class
hkResponseType
(**kwargs)¶ Bases:
pyffi.object_models.xml.enum.EnumBase
-
RESPONSE_INVALID
= 0¶
-
RESPONSE_NONE
= 3¶
-
RESPONSE_REPORTING
= 2¶
-
RESPONSE_SIMPLE_CONTACT
= 1¶
-
-
class
hkTriangle
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A triangle with extra data used for physics.
-
property
normal
¶ This is the triangle’s normal.
-
property
triangle
¶ The triangle.
-
property
welding_info
¶ Additional havok information on how triangles are welded.
-
property
-
int
¶ alias of
pyffi.object_models.common.Int
-
class
physXMaterialRef
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
material_desc
¶ PhysX Material Description
-
property
number
¶ Unknown
-
property
unknown_byte_1
¶ Unknown
-
property
-
short
¶ alias of
pyffi.object_models.common.Short
-
class
string
(**kwargs)[source]¶ Bases:
pyffi.object_models.common.SizedString
-
get_hash
(data=None)[source]¶ Return a hash value for this string.
- Returns
An immutable object that can be used as a hash.
-
get_size
(data=None)[source]¶ Return number of bytes this type occupies in a file.
- Returns
Number of bytes.
-
-
uint
¶ alias of
pyffi.object_models.common.UInt
-
ulittle32
¶ alias of
pyffi.object_models.common.ULittle32
-
ushort
¶ alias of
pyffi.object_models.common.UShort
-
static
version_number
(version_str)[source]¶ Converts version string into an integer.
- Parameters
version_str (str) – The version string.
- Returns
A version integer.
>>> hex(NifFormat.version_number('3.14.15.29')) '0x30e0f1d' >>> hex(NifFormat.version_number('1.2')) '0x1020000' >>> hex(NifFormat.version_number('3.03')) '0x3000300' >>> hex(NifFormat.version_number('NS')) '0xa010000'
-
versions
= {'10.0.1.0': 167772416, '10.0.1.2': 167772418, '10.0.1.3': 167772419, '10.1.0.0': 167837696, '10.1.0.101': 167837797, '10.1.0.106': 167837802, '10.2.0.0': 167903232, '10.2.0.1': 167903233, '10.4.0.1': 168034305, '2.3': 33751040, '20.0.0.4': 335544324, '20.0.0.5': 335544325, '20.1.0.3': 335609859, '20.2.0.7': 335675399, '20.2.0.8': 335675400, '20.3.0.1': 335740929, '20.3.0.2': 335740930, '20.3.0.3': 335740931, '20.3.0.6': 335740934, '20.3.0.9': 335740937, '20.5.0.0': 335872000, '20.6.0.0': 335937536, '20.6.5.0': 335938816, '3.0': 50331648, '3.03': 50332416, '3.1': 50397184, '3.3.0.13': 50528269, '30.0.0.2': 503316482, '30.1.0.3': 503382019, '4.0.0.0': 67108864, '4.0.0.2': 67108866, '4.1.0.12': 67174412, '4.2.0.2': 67239938, '4.2.1.0': 67240192, '4.2.2.0': 67240448}¶
-
xml_alias
= []¶
-
xml_bit_struct
= [<bit_struct 'BSSegmentFlags'>, <bit_struct 'FurnitureEntryPoints'>, <bit_struct 'BSPartFlag'>, <bit_struct 'BSShaderFlags'>, <bit_struct 'BSShaderFlags2'>, <bit_struct 'SkyrimShaderPropertyFlags1'>, <bit_struct 'SkyrimShaderPropertyFlags2'>, <bit_struct 'SkyrimWaterShaderFlags'>, <bit_struct 'DataStreamAccess'>]¶
-
xml_enum
= [<enum 'AlphaFormat'>, <enum 'ApplyMode'>, <enum 'TexType'>, <enum 'KeyType'>, <enum 'LightMode'>, <enum 'OblivionHavokMaterial'>, <enum 'Fallout3HavokMaterial'>, <enum 'SkyrimHavokMaterial'>, <enum 'OblivionLayer'>, <enum 'Fallout3Layer'>, <enum 'SkyrimLayer'>, <enum 'MoppDataBuildType'>, <enum 'MipMapFormat'>, <enum 'PixelFormat'>, <enum 'PixelLayout'>, <enum 'TexClampMode'>, <enum 'TexFilterMode'>, <enum 'VertMode'>, <enum 'CycleType'>, <enum 'FieldType'>, <enum 'BillboardMode'>, <enum 'StencilCompareMode'>, <enum 'ZCompareMode'>, <enum 'StencilAction'>, <enum 'FaceDrawMode'>, <enum 'MotionSystem'>, <enum 'DeactivatorType'>, <enum 'SolverDeactivation'>, <enum 'MotionQuality'>, <enum 'ForceType'>, <enum 'TexTransform'>, <enum 'DecayType'>, <enum 'SymmetryType'>, <enum 'VelocityType'>, <enum 'EmitFrom'>, <enum 'EffectType'>, <enum 'CoordGenType'>, <enum 'EndianType'>, <enum 'TargetColor'>, <enum 'ConsistencyType'>, <enum 'SortingMode'>, <enum 'PropagationMode'>, <enum 'CollisionMode'>, <enum 'BoundVolumeType'>, <enum 'hkResponseType'>, <enum 'BSDismemberBodyPartType'>, <enum 'BSLightingShaderPropertyShaderType'>, <enum 'EffectShaderControlledVariable'>, <enum 'EffectShaderControlledColor'>, <enum 'LightingShaderControlledVariable'>, <enum 'LightingShaderControlledColor'>, <enum 'ExtraVectorsFlags'>, <enum 'hkConstraintType'>, <enum 'AnimationType'>, <enum 'ImageType'>, <enum 'ChannelType'>, <enum 'ChannelConvention'>, <enum 'BSShaderType'>, <enum 'SkyObjectType'>, <enum 'CloningBehavior'>, <enum 'ComponentFormat'>, <enum 'DataStreamUsage'>, <enum 'MeshPrimitiveType'>, <enum 'SyncPoint'>, <enum 'PSLoopBehavior'>]¶
-
xml_file_name
= 'nif.xml'¶
-
xml_file_path
= [None, '/home/docs/checkouts/readthedocs.org/user_builds/pyffi-tagnum/checkouts/update_theme/pyffi/formats/nif/nifxml']¶
-
xml_struct
= [<struct 'Color3'>, <struct 'ByteColor3'>, <struct 'Color4'>, <struct 'ByteColor4'>, <struct '_Footer'>, <struct 'LODRange'>, <struct 'MatchGroup'>, <struct '_Vector3'>, <struct '_Vector4'>, <struct 'Quaternion'>, <struct 'QuaternionXYZW'>, <struct 'Matrix22'>, <struct '_Matrix33'>, <struct '_Matrix44'>, <struct 'MipMap'>, <struct 'NodeGroup'>, <struct 'ns keylin'>, <struct 'ns keyarray'>, <struct 'ns keytan'>, <struct 'SkinShape'>, <struct 'SkinShapeGroup'>, <struct 'SkinWeight'>, <struct 'AVObject'>, <struct '_ControllerLink'>, <struct 'ExportInfo'>, <struct '_Header'>, <struct '_StringPalette'>, <struct 'TBC'>, <struct 'Key'>, <struct 'KeyGroup'>, <struct 'ns keytbc'>, <struct 'ns keyvecarray'>, <struct 'ns keyrotsub'>, <struct 'ns keyrotarray'>, <struct 'ns keyvecarraytyp'>, <struct 'QuatKey'>, <struct '_TexCoord'>, <struct 'TexDesc'>, <struct 'ShaderTexDesc'>, <struct 'TexSource'>, <struct 'Triangle'>, <struct '_SkinPartition'>, <struct 'QTransform'>, <struct 'MTransform'>, <struct '_SkinTransform'>, <struct 'BoundingBox'>, <struct 'FurniturePosition'>, <struct 'hkTriangle'>, <struct 'Morph'>, <struct 'Particle'>, <struct '_SkinData'>, <struct 'SphereBV'>, <struct 'HavokColFilter'>, <struct 'HavokMaterial'>, <struct 'OblivionSubShape'>, <struct 'MotorDescriptor'>, <struct '_RagdollDescriptor'>, <struct '_LimitedHingeDescriptor'>, <struct 'HingeDescriptor'>, <struct 'BallAndSocketDescriptor'>, <struct 'PrismaticDescriptor'>, <struct 'StiffSpringDescriptor'>, <struct 'OldSkinData'>, <struct 'MultiTextureElement'>, <struct 'BoxBV'>, <struct 'CapsuleBV'>, <struct 'HalfSpaceBV'>, <struct 'BoundingVolume'>, <struct 'UnionBV'>, <struct 'MorphWeight'>, <struct 'ArkTexture'>, <struct '_InertiaMatrix'>, <struct 'DecalVectorArray'>, <struct 'BodyPartList'>, <struct 'BSSegment'>, <struct 'BoneLOD'>, <struct 'bhkCMSDMaterial'>, <struct 'bhkCMSDBigTris'>, <struct 'bhkCMSDTransform'>, <struct 'bhkCMSDChunk'>, <struct 'SubConstraint'>, <struct 'bhkRDTConstraint'>, <struct 'bhkRDTMalleableConstraint'>, <struct '_NiObject'>, <struct 'Ni3dsAlphaAnimator'>, <struct 'Ni3dsAnimationNode'>, <struct 'Ni3dsColorAnimator'>, <struct 'Ni3dsMorphShape'>, <struct 'Ni3dsParticleSystem'>, <struct 'Ni3dsPathController'>, <struct 'NiParticleModifier'>, <struct 'NiPSysCollider'>, <struct '_bhkRefObject'>, <struct 'bhkSerializable'>, <struct 'bhkWorldObject'>, <struct 'bhkPhantom'>, <struct 'bhkShapePhantom'>, <struct 'bhkSimpleShapePhantom'>, <struct 'bhkEntity'>, <struct '_bhkRigidBody'>, <struct 'bhkRigidBodyT'>, <struct '_bhkConstraint'>, <struct '_bhkLimitedHingeConstraint'>, <struct '_bhkMalleableConstraint'>, <struct 'bhkStiffSpringConstraint'>, <struct '_bhkRagdollConstraint'>, <struct 'bhkPrismaticConstraint'>, <struct 'bhkHingeConstraint'>, <struct 'bhkBallAndSocketConstraint'>, <struct 'bhkBallSocketConstraintChain'>, <struct 'bhkShape'>, <struct '_bhkTransformShape'>, <struct 'bhkSphereRepShape'>, <struct 'bhkConvexShape'>, <struct '_bhkSphereShape'>, <struct '_bhkCapsuleShape'>, <struct '_bhkBoxShape'>, <struct '_bhkConvexVerticesShape'>, <struct 'bhkConvexTransformShape'>, <struct '_bhkMultiSphereShape'>, <struct 'bhkBvTreeShape'>, <struct '_bhkMoppBvTreeShape'>, <struct 'bhkShapeCollection'>, <struct '_bhkListShape'>, <struct 'bhkMeshShape'>, <struct '_bhkPackedNiTriStripsShape'>, <struct '_bhkNiTriStripsShape'>, <struct 'NiExtraData'>, <struct 'NiInterpolator'>, <struct 'NiKeyBasedInterpolator'>, <struct 'NiFloatInterpolator'>, <struct '_NiTransformInterpolator'>, <struct 'NiPoint3Interpolator'>, <struct 'NiPathInterpolator'>, <struct 'NiBoolInterpolator'>, <struct 'NiBoolTimelineInterpolator'>, <struct 'NiBlendInterpolator'>, <struct '_NiBSplineInterpolator'>, <struct '_NiObjectNET'>, <struct 'NiCollisionObject'>, <struct 'NiCollisionData'>, <struct 'bhkNiCollisionObject'>, <struct 'bhkCollisionObject'>, <struct 'bhkBlendCollisionObject'>, <struct 'bhkPCollisionObject'>, <struct 'bhkSPCollisionObject'>, <struct '_NiAVObject'>, <struct 'NiDynamicEffect'>, <struct 'NiLight'>, <struct 'NiProperty'>, <struct 'NiTransparentProperty'>, <struct 'NiPSysModifier'>, <struct 'NiPSysEmitter'>, <struct 'NiPSysVolumeEmitter'>, <struct 'NiTimeController'>, <struct 'NiInterpController'>, <struct 'NiMultiTargetTransformController'>, <struct 'NiGeomMorpherController'>, <struct 'NiMorphController'>, <struct 'NiMorpherController'>, <struct 'NiSingleInterpController'>, <struct 'NiKeyframeController'>, <struct 'NiTransformController'>, <struct 'NiPSysModifierCtlr'>, <struct 'NiPSysEmitterCtlr'>, <struct 'NiPSysModifierBoolCtlr'>, <struct 'NiPSysModifierActiveCtlr'>, <struct 'NiPSysModifierFloatCtlr'>, <struct 'NiPSysEmitterDeclinationCtlr'>, <struct 'NiPSysEmitterDeclinationVarCtlr'>, <struct 'NiPSysEmitterInitialRadiusCtlr'>, <struct 'NiPSysEmitterLifeSpanCtlr'>, <struct 'NiPSysEmitterSpeedCtlr'>, <struct 'NiPSysGravityStrengthCtlr'>, <struct 'NiFloatInterpController'>, <struct 'NiFlipController'>, <struct 'NiAlphaController'>, <struct 'NiTextureTransformController'>, <struct 'NiLightDimmerController'>, <struct 'NiBoolInterpController'>, <struct 'NiVisController'>, <struct 'NiPoint3InterpController'>, <struct '_NiMaterialColorController'>, <struct 'NiLightColorController'>, <struct 'NiExtraDataController'>, <struct 'NiFloatExtraDataController'>, <struct 'NiBoneLODController'>, <struct 'NiBSBoneLODController'>, <struct '_NiGeometry'>, <struct '_NiTriBasedGeom'>, <struct '_NiGeometryData'>, <struct 'AbstractAdditionalGeometryData'>, <struct '_NiTriBasedGeomData'>, <struct 'bhkBlendController'>, <struct '_BSBound'>, <struct 'BSFurnitureMarker'>, <struct 'BSParentVelocityModifier'>, <struct 'BSPSysArrayEmitter'>, <struct 'BSWindModifier'>, <struct '_hkPackedNiTriStripsData'>, <struct 'NiAlphaProperty'>, <struct 'NiAmbientLight'>, <struct 'NiParticlesData'>, <struct 'NiRotatingParticlesData'>, <struct 'NiAutoNormalParticlesData'>, <struct 'ParticleDesc'>, <struct 'NiPSysData'>, <struct 'NiMeshPSysData'>, <struct 'NiBinaryExtraData'>, <struct 'NiBinaryVoxelExtraData'>, <struct 'NiBinaryVoxelData'>, <struct 'NiBlendBoolInterpolator'>, <struct 'NiBlendFloatInterpolator'>, <struct 'NiBlendPoint3Interpolator'>, <struct 'NiBlendTransformInterpolator'>, <struct 'NiBoolData'>, <struct 'NiBooleanExtraData'>, <struct 'NiBSplineBasisData'>, <struct 'NiBSplineFloatInterpolator'>, <struct 'NiBSplineCompFloatInterpolator'>, <struct 'NiBSplinePoint3Interpolator'>, <struct 'NiBSplineCompPoint3Interpolator'>, <struct '_NiBSplineTransformInterpolator'>, <struct '_NiBSplineCompTransformInterpolator'>, <struct 'BSRotAccumTransfInterpolator'>, <struct '_NiBSplineData'>, <struct 'NiCamera'>, <struct 'NiColorData'>, <struct 'NiColorExtraData'>, <struct 'NiControllerManager'>, <struct 'NiSequence'>, <struct '_NiControllerSequence'>, <struct 'NiAVObjectPalette'>, <struct 'NiDefaultAVObjectPalette'>, <struct 'NiDirectionalLight'>, <struct 'NiDitherProperty'>, <struct 'NiRollController'>, <struct 'NiFloatData'>, <struct 'NiFloatExtraData'>, <struct 'NiFloatsExtraData'>, <struct 'NiFogProperty'>, <struct 'NiGravity'>, <struct 'NiIntegerExtraData'>, <struct 'BSXFlags'>, <struct 'NiIntegersExtraData'>, <struct 'BSKeyframeController'>, <struct '_NiKeyframeData'>, <struct 'NiLookAtController'>, <struct 'NiLookAtInterpolator'>, <struct '_NiMaterialProperty'>, <struct '_NiMorphData'>, <struct '_NiNode'>, <struct 'NiBone'>, <struct 'AvoidNode'>, <struct 'FxWidget'>, <struct 'FxButton'>, <struct 'FxRadioButton'>, <struct 'NiBillboardNode'>, <struct 'NiBSAnimationNode'>, <struct 'NiBSParticleNode'>, <struct 'NiSwitchNode'>, <struct 'NiLODNode'>, <struct 'NiPalette'>, <struct 'NiParticleBomb'>, <struct 'NiParticleColorModifier'>, <struct 'NiParticleGrowFade'>, <struct 'NiParticleMeshModifier'>, <struct 'NiParticleRotation'>, <struct 'NiParticles'>, <struct 'NiAutoNormalParticles'>, <struct 'NiParticleMeshes'>, <struct 'NiParticleMeshesData'>, <struct 'NiParticleSystem'>, <struct 'NiMeshParticleSystem'>, <struct 'NiParticleSystemController'>, <struct 'NiBSPArrayController'>, <struct 'NiPathController'>, <struct 'ChannelData'>, <struct '_ATextureRenderData'>, <struct 'NiPersistentSrcTextureRendererData'>, <struct 'NiPixelData'>, <struct 'NiPlanarCollider'>, <struct 'NiPointLight'>, <struct 'NiPosData'>, <struct 'NiPSysAgeDeathModifier'>, <struct 'NiPSysBombModifier'>, <struct 'NiPSysBoundUpdateModifier'>, <struct 'NiPSysBoxEmitter'>, <struct 'NiPSysColliderManager'>, <struct 'NiPSysColorModifier'>, <struct 'NiPSysCylinderEmitter'>, <struct 'NiPSysDragModifier'>, <struct 'NiPSysEmitterCtlrData'>, <struct 'NiPSysGravityModifier'>, <struct 'NiPSysGrowFadeModifier'>, <struct 'NiPSysMeshEmitter'>, <struct 'NiPSysMeshUpdateModifier'>, <struct 'BSPSysInheritVelocityModifier'>, <struct 'BSPSysHavokUpdateModifier'>, <struct 'BSPSysRecycleBoundModifier'>, <struct 'BSPSysSubTexModifier'>, <struct 'NiPSysPlanarCollider'>, <struct 'NiPSysSphericalCollider'>, <struct 'NiPSysPositionModifier'>, <struct 'NiPSysResetOnLoopCtlr'>, <struct 'NiPSysRotationModifier'>, <struct 'NiPSysSpawnModifier'>, <struct 'NiPSysSphereEmitter'>, <struct 'NiPSysUpdateCtlr'>, <struct 'NiPSysFieldModifier'>, <struct 'NiPSysVortexFieldModifier'>, <struct 'NiPSysGravityFieldModifier'>, <struct 'NiPSysDragFieldModifier'>, <struct 'NiPSysTurbulenceFieldModifier'>, <struct 'BSPSysLODModifier'>, <struct 'BSPSysScaleModifier'>, <struct 'NiPSysFieldMagnitudeCtlr'>, <struct 'NiPSysFieldAttenuationCtlr'>, <struct 'NiPSysFieldMaxDistanceCtlr'>, <struct 'NiPSysAirFieldAirFrictionCtlr'>, <struct 'NiPSysAirFieldInheritVelocityCtlr'>, <struct 'NiPSysAirFieldSpreadCtlr'>, <struct 'NiPSysInitialRotSpeedCtlr'>, <struct 'NiPSysInitialRotSpeedVarCtlr'>, <struct 'NiPSysInitialRotAngleCtlr'>, <struct 'NiPSysInitialRotAngleVarCtlr'>, <struct 'NiPSysEmitterPlanarAngleCtlr'>, <struct 'NiPSysEmitterPlanarAngleVarCtlr'>, <struct 'NiPSysAirFieldModifier'>, <struct 'NiPSysTrailEmitter'>, <struct 'NiLightIntensityController'>, <struct 'NiPSysRadialFieldModifier'>, <struct 'NiLODData'>, <struct 'NiRangeLODData'>, <struct 'NiScreenLODData'>, <struct 'NiRotatingParticles'>, <struct 'NiSequenceStreamHelper'>, <struct 'NiShadeProperty'>, <struct '_NiSkinData'>, <struct 'NiSkinInstance'>, <struct 'NiTriShapeSkinController'>, <struct 'NiClodSkinInstance'>, <struct 'NiSkinPartition'>, <struct 'NiTexture'>, <struct 'NiSourceTexture'>, <struct 'NiSpecularProperty'>, <struct 'NiSphericalCollider'>, <struct 'NiSpotLight'>, <struct 'NiStencilProperty'>, <struct 'NiStringExtraData'>, <struct 'NiStringPalette'>, <struct 'NiStringsExtraData'>, <struct 'NiTextKeyExtraData'>, <struct 'NiTextureEffect'>, <struct 'NiTextureModeProperty'>, <struct 'NiImage'>, <struct 'NiTextureProperty'>, <struct 'NiMultiTextureProperty'>, <struct 'NiTexturingProperty'>, <struct 'NiTransformData'>, <struct 'NiTriShape'>, <struct '_NiTriShapeData'>, <struct 'NiTriStrips'>, <struct '_NiTriStripsData'>, <struct 'NiEnvMappedTriShape'>, <struct 'NiEnvMappedTriShapeData'>, <struct 'NiBezierTriangle4'>, <struct 'NiBezierMesh'>, <struct 'NiClod'>, <struct 'NiClodData'>, <struct 'NiUVController'>, <struct 'NiUVData'>, <struct 'NiVectorExtraData'>, <struct 'NiVertexColorProperty'>, <struct 'NiVertWeightsExtraData'>, <struct 'NiVisData'>, <struct 'NiWireframeProperty'>, <struct 'NiZBufferProperty'>, <struct 'RootCollisionNode'>, <struct 'NiRawImageData'>, <struct 'NiSortAdjustNode'>, <struct 'NiSourceCubeMap'>, <struct 'NiPhysXProp'>, <struct 'physXMaterialRef'>, <struct 'NiPhysXPropDesc'>, <struct 'NiPhysXActorDesc'>, <struct 'NiPhysXBodyDesc'>, <struct 'NiPhysXD6JointDesc'>, <struct 'NiPhysXShapeDesc'>, <struct 'NiPhysXMeshDesc'>, <struct 'NiPhysXMaterialDesc'>, <struct 'NiPhysXKinematicSrc'>, <struct 'NiPhysXTransformDest'>, <struct 'NiArkAnimationExtraData'>, <struct 'NiArkImporterExtraData'>, <struct 'NiArkTextureExtraData'>, <struct 'NiArkViewportInfoExtraData'>, <struct 'NiArkShaderExtraData'>, <struct 'NiLines'>, <struct 'NiLinesData'>, <struct 'Polygon'>, <struct 'NiScreenElementsData'>, <struct 'NiScreenElements'>, <struct 'NiRoomGroup'>, <struct 'NiRoom'>, <struct 'NiPortal'>, <struct 'BSFadeNode'>, <struct 'BSShaderProperty'>, <struct 'BSShaderLightingProperty'>, <struct 'BSShaderNoLightingProperty'>, <struct 'BSShaderPPLightingProperty'>, <struct 'BSEffectShaderPropertyFloatController'>, <struct 'BSEffectShaderPropertyColorController'>, <struct 'BSLightingShaderPropertyFloatController'>, <struct 'BSLightingShaderPropertyColorController'>, <struct 'BSNiAlphaPropertyTestRefController'>, <struct 'BSProceduralLightningController'>, <struct 'BSShaderTextureSet'>, <struct 'WaterShaderProperty'>, <struct 'SkyShaderProperty'>, <struct 'TileShaderProperty'>, <struct 'DistantLODShaderProperty'>, <struct 'BSDistantTreeShaderProperty'>, <struct 'TallGrassShaderProperty'>, <struct 'VolumetricFogShaderProperty'>, <struct 'HairShaderProperty'>, <struct 'Lighting30ShaderProperty'>, <struct 'BSLightingShaderProperty'>, <struct 'BSEffectShaderProperty'>, <struct 'BSWaterShaderProperty'>, <struct 'BSSkyShaderProperty'>, <struct '_BSDismemberSkinInstance'>, <struct 'BSDecalPlacementVectorExtraData'>, <struct 'BSPSysSimpleColorModifier'>, <struct 'BSValueNode'>, <struct 'BSStripParticleSystem'>, <struct 'BSStripPSysData'>, <struct 'BSPSysStripUpdateModifier'>, <struct 'BSMaterialEmittanceMultController'>, <struct 'BSMasterParticleSystem'>, <struct 'BSPSysMultiTargetEmitterCtlr'>, <struct 'BSRefractionStrengthController'>, <struct 'BSOrderedNode'>, <struct 'BSBlastNode'>, <struct 'BSDamageStage'>, <struct 'BSRefractionFirePeriodController'>, <struct 'bhkConvexListShape'>, <struct 'BSTreadTransformData'>, <struct 'BSTreadTransform'>, <struct 'BSTreadTransfInterpolator'>, <struct 'BSAnimNotes'>, <struct 'bhkLiquidAction'>, <struct 'BSMultiBoundNode'>, <struct 'BSMultiBound'>, <struct 'BSMultiBoundData'>, <struct 'BSMultiBoundOBB'>, <struct 'BSMultiBoundSphere'>, <struct 'BSSegmentedTriShape'>, <struct 'BSMultiBoundAABB'>, <struct 'AdditionalDataInfo'>, <struct 'AdditionalDataBlock'>, <struct 'BSPackedAdditionalDataBlock'>, <struct 'NiAdditionalGeometryData'>, <struct 'BSPackedAdditionalGeometryData'>, <struct 'BSWArray'>, <struct 'bhkAabbPhantom'>, <struct 'BSFrustumFOVController'>, <struct 'BSDebrisNode'>, <struct 'bhkBreakableConstraint'>, <struct 'bhkOrientHingedBodyAction'>, <struct 'bhkRagdollTemplate'>, <struct 'bhkRagdollTemplateData'>, <struct 'Region'>, <struct 'NiDataStream'>, <struct 'SemanticData'>, <struct 'MeshData'>, <struct 'MaterialData'>, <struct 'NiRenderObject'>, <struct 'NiMeshModifier'>, <struct 'ExtraMeshDataEpicMickey'>, <struct 'ExtraMeshDataEpicMickey2'>, <struct 'NiMesh'>, <struct 'NiMorphWeightsController'>, <struct 'ElementReference'>, <struct 'NiMorphMeshModifier'>, <struct 'NiSkinningMeshModifier'>, <struct 'NiInstancingMeshModifier'>, <struct 'NiSkinningLODController'>, <struct 'NiPSParticleSystem'>, <struct 'NiPSMeshParticleSystem'>, <struct 'NiPSEmitParticlesCtlr'>, <struct 'NiPSForceActiveCtlr'>, <struct 'NiPSSimulator'>, <struct 'NiPSSimulatorStep'>, <struct 'NiPSSimulatorGeneralStep'>, <struct 'NiPSSimulatorForcesStep'>, <struct 'NiPSSimulatorCollidersStep'>, <struct 'NiPSSimulatorMeshAlignStep'>, <struct 'NiPSSimulatorFinalStep'>, <struct 'NiPSFacingQuadGenerator'>, <struct 'NiShadowGenerator'>, <struct 'NiPSBoundUpdater'>, <struct 'NiPSDragForce'>, <struct 'NiPSGravityForce'>, <struct 'NiPSBoxEmitter'>, <struct 'NiPSMeshEmitter'>, <struct 'NiPSGravityStrengthCtlr'>, <struct 'NiPSPlanarCollider'>, <struct 'NiPSEmitterSpeedCtlr'>, <struct 'NiPSEmitterRadiusCtlr'>, <struct 'NiPSResetOnLoopCtlr'>, <struct 'NiPSSphereEmitter'>, <struct 'NiPSCylinderEmitter'>, <struct 'NiPSEmitterDeclinationCtlr'>, <struct 'NiPSEmitterDeclinationVarCtlr'>, <struct 'NiPSEmitterPlanarAngleCtlr'>, <struct 'NiPSEmitterPlanarAngleVarCtlr'>, <struct 'NiPSEmitterRotAngleCtlr'>, <struct 'NiPSEmitterRotAngleVarCtlr'>, <struct 'NiPSEmitterRotSpeedCtlr'>, <struct 'NiPSEmitterRotSpeedVarCtlr'>, <struct 'NiPSEmitterLifeSpanCtlr'>, <struct 'NiPSBombForce'>, <struct 'NiPSSphericalCollider'>, <struct 'NiPSSpawner'>, <struct 'NiSequenceData'>, <struct 'NiTransformEvaluator'>, <struct 'NiBSplineCompTransformEvaluator'>, <struct 'NiMeshHWInstance'>, <struct 'NiFurSpringController'>, <struct 'CStreamableAssetData'>, <struct 'bhkCompressedMeshShape'>, <struct 'bhkCompressedMeshShapeData'>, <struct 'BSInvMarker'>, <struct 'BSBoneLODExtraData'>, <struct 'BSBehaviorGraphExtraData'>, <struct 'BSLagBoneController'>, <struct 'BSLODTriShape'>, <struct 'BSFurnitureMarkerNode'>, <struct 'BSLeafAnimNode'>, <struct 'BSTreeNode'>]¶
-
Regression tests¶
These tests are used to check for functionality and bugs in the library. They also provide code examples which you may find useful.
Read a NIF file¶
>>> from os.path import dirname
>>> dirpath = __file__
>>> for i in range(4): #recurse up to root repo dir
... dirpath = dirname(dirpath)
>>> repo_root = dirpath
>>> format_root = os.path.join(repo_root, 'tests', 'spells', 'nif', 'files')
>>> stream = open(os.path.join(format_root, 'test.nif'), 'rb')
>>> data = NifFormat.Data()
>>> # inspect is optional; it will not read the actual blocks
>>> data.inspect(stream)
>>> hex(data.version)
'0x14010003'
>>> data.user_version
0
>>> for blocktype in data.header.block_types:
... print(blocktype.decode("ascii"))
NiNode
NiTriShape
NiTriShapeData
>>> data.roots # blocks have not been read yet, so this is an empty list
[]
>>> data.read(stream)
>>> for root in data.roots:
... for block in root.tree():
... if isinstance(block, NifFormat.NiNode):
... print(block.name.decode("ascii"))
test
>>> stream.close()
Parse all NIF files in a directory tree¶
>>> for stream, data in NifFormat.walkData(format_root):
... try:
... # the replace call makes the doctest also pass on windows
... os_path = stream.name
... split = (os_path.split(os.sep))[-5:]
... rejoin = os.path.join(*split).replace(os.sep, "/")
... print("reading %s" % rejoin)
... data.read(stream)
... except Exception:
... print(
... "Warning: read failed due corrupt file,"
... " corrupt format description, or bug.")
reading tests/spells/nif/files/invalid.nif
Warning: read failed due corrupt file, corrupt format description, or bug.
reading tests/spells/nif/files/nds.nif
reading tests/spells/nif/files/neosteam.nif
reading tests/spells/nif/files/test.nif
reading tests/spells/nif/files/test_centerradius.nif
reading tests/spells/nif/files/test_check_tangentspace1.nif
reading tests/spells/nif/files/test_check_tangentspace2.nif
reading tests/spells/nif/files/test_check_tangentspace3.nif
reading tests/spells/nif/files/test_check_tangentspace4.nif
reading tests/spells/nif/files/test_convexverticesshape.nif
reading tests/spells/nif/files/test_dump_tex.nif
reading tests/spells/nif/files/test_fix_clampmaterialalpha.nif
reading tests/spells/nif/files/test_fix_cleanstringpalette.nif
reading tests/spells/nif/files/test_fix_detachhavoktristripsdata.nif
reading tests/spells/nif/files/test_fix_disableparallax.nif
reading tests/spells/nif/files/test_fix_ffvt3rskinpartition.nif
reading tests/spells/nif/files/test_fix_mergeskeletonroots.nif
reading tests/spells/nif/files/test_fix_tangentspace.nif
reading tests/spells/nif/files/test_fix_texturepath.nif
reading tests/spells/nif/files/test_grid_128x128.nif
reading tests/spells/nif/files/test_grid_64x64.nif
reading tests/spells/nif/files/test_mopp.nif
reading tests/spells/nif/files/test_opt_collision_complex_mopp.nif
reading tests/spells/nif/files/test_opt_collision_mopp.nif
reading tests/spells/nif/files/test_opt_collision_packed.nif
reading tests/spells/nif/files/test_opt_collision_to_boxshape.nif
reading tests/spells/nif/files/test_opt_collision_to_boxshape_notabox.nif
reading tests/spells/nif/files/test_opt_collision_unpacked.nif
reading tests/spells/nif/files/test_opt_delunusedbones.nif
reading tests/spells/nif/files/test_opt_dupverts.nif reading tests/spells/nif/files/test_opt_emptyproperties.nif reading tests/spells/nif/files/test_opt_grid_layout.nif reading tests/spells/nif/files/test_opt_mergeduplicates.nif reading tests/spells/nif/files/test_opt_vertex_cache.nif reading tests/spells/nif/files/test_opt_zeroscale.nif reading tests/spells/nif/files/test_skincenterradius.nif reading tests/spells/nif/files/test_vertexcolor.nif
Create a NIF model from scratch and write to file¶
>>> root = NifFormat.NiNode()
>>> root.name = 'Scene Root'
>>> blk = NifFormat.NiNode()
>>> root.add_child(blk)
>>> blk.name = 'new block'
>>> blk.scale = 2.4
>>> blk.translation.x = 3.9
>>> blk.rotation.m_11 = 1.0
>>> blk.rotation.m_22 = 1.0
>>> blk.rotation.m_33 = 1.0
>>> ctrl = NifFormat.NiVisController()
>>> ctrl.flags = 0x000c
>>> ctrl.target = blk
>>> blk.add_controller(ctrl)
>>> blk.add_controller(NifFormat.NiAlphaController())
>>> strips = NifFormat.NiTriStrips()
>>> root.add_child(strips, front = True)
>>> strips.name = "hello world"
>>> strips.rotation.m_11 = 1.0
>>> strips.rotation.m_22 = 1.0
>>> strips.rotation.m_33 = 1.0
>>> data = NifFormat.NiTriStripsData()
>>> strips.data = data
>>> data.num_vertices = 5
>>> data.has_vertices = True
>>> data.vertices.update_size()
>>> for i, v in enumerate(data.vertices):
... v.x = 1.0+i/10.0
... v.y = 0.2+1.0/(i+1)
... v.z = 0.03
>>> data.update_center_radius()
>>> data.num_strips = 2
>>> data.strip_lengths.update_size()
>>> data.strip_lengths[0] = 3
>>> data.strip_lengths[1] = 4
>>> data.has_points = True
>>> data.points.update_size()
>>> data.points[0][0] = 0
>>> data.points[0][1] = 1
>>> data.points[0][2] = 2
>>> data.points[1][0] = 1
>>> data.points[1][1] = 2
>>> data.points[1][2] = 3
>>> data.points[1][3] = 4
>>> data.num_uv_sets = 1
>>> data.has_uv = True
>>> data.uv_sets.update_size()
>>> for i, v in enumerate(data.uv_sets[0]):
... v.u = 1.0-i/10.0
... v.v = 1.0/(i+1)
>>> data.has_normals = True
>>> data.normals.update_size()
>>> for i, v in enumerate(data.normals):
... v.x = 0.0
... v.y = 0.0
... v.z = 1.0
>>> strips.update_tangent_space()
>>> from tempfile import TemporaryFile
>>> stream = TemporaryFile()
>>> nifdata = NifFormat.Data(version=0x14010003, user_version=10)
>>> nifdata.roots = [root]
>>> nifdata.write(stream)
>>> stream.close()
Get list of versions and games¶
>>> for vnum in sorted(NifFormat.versions.values()):
... print('0x%08X' % vnum)
0x02030000
0x03000000
0x03000300
0x03010000
0x0303000D
0x04000000
0x04000002
0x0401000C
0x04020002
0x04020100
0x04020200
0x0A000100
0x0A000102
0x0A000103
0x0A010000
0x0A010065
0x0A01006A
0x0A020000
0x0A020001
0x0A040001
0x14000004
0x14000005
0x14010003
0x14020007
0x14020008
0x14030001
0x14030002
0x14030003
0x14030006
0x14030009
0x14050000
0x14060000
0x14060500
0x1E000002
0x1E010003
>>> for game, versions in sorted(NifFormat.games.items(), key=lambda x: x[0]):
... print("%s " % game + " ".join('0x%08X' % vnum for vnum in versions))
? 0x0A000103
Atlantica 0x14020008
Axis and Allies 0x0A010000
Bully SE 0x14030009
Civilization IV 0x04020002 0x04020100 0x04020200 0x0A000100 0x0A010000 0x0A020000 0x14000004
Culpa Innata 0x04020200
Dark Age of Camelot 0x02030000 0x03000300 0x03010000 0x0401000C 0x04020100 0x04020200 0x0A010000
Divinity 2 0x14030009
Emerge 0x14020007 0x14020008 0x14030001 0x14030002 0x14030003 0x14030006 0x1E000002
Empire Earth II 0x04020200 0x0A010000
Empire Earth III 0x14020007 0x14020008
Entropia Universe 0x0A010000
Epic Mickey 0x14060500
Fallout 3 0x14020007
Freedom Force 0x04000000 0x04000002
Freedom Force vs. the 3rd Reich 0x0A010000
Howling Sword 0x14030009
Kohan 2 0x0A010000
KrazyRain 0x14050000 0x14060000
Lazeska 0x14030009
Loki 0x0A020000
Megami Tensei: Imagine 0x14010003
Morrowind 0x04000002
NeoSteam 0x0A010000
Oblivion 0x0303000D 0x0A000100 0x0A000102 0x0A010065 0x0A01006A 0x0A020000 0x14000004 0x14000005
Prison Tycoon 0x0A020000
Pro Cycling Manager 0x0A020000
Red Ocean 0x0A020000
Rocksmith 0x1E010003
Rocksmith 2014 0x1E010003
Sid Meier's Railroads 0x14000004
Skyrim 0x14020007
Star Trek: Bridge Commander 0x03000000 0x03010000
The Guild 2 0x0A010000
Warhammer 0x14030009
Wildlife Park 2 0x0A010000 0x0A020000
Worldshift 0x0A020001 0x0A040001
Zoo Tycoon 2 0x0A000100
Reading an unsupported NIF file¶
>>> file = os.path.join(format_root, 'invalid.nif')
>>> stream = open(file, 'rb')
>>> data = NifFormat.Data()
>>> data.inspect(stream) # the file seems ok on inspection
>>> data.read(stream)
Traceback (most recent call last):
...
ValueError: ...
>>> stream.close()
Template types¶
>>> block = NifFormat.NiTextKeyExtraData()
>>> block.num_text_keys = 1
>>> block.text_keys.update_size()
>>> block.text_keys[0].time = 1.0
>>> block.text_keys[0].value = 'hi'
Links¶
>>> NifFormat.NiNode._has_links
True
>>> NifFormat.NiBone._has_links
True
>>> skelroot = NifFormat.NiNode()
>>> geom = NifFormat.NiTriShape()
>>> geom.skin_instance = NifFormat.NiSkinInstance()
>>> geom.skin_instance.skeleton_root = skelroot
>>> [block.__class__.__name__ for block in geom.get_refs()]
['NiSkinInstance']
>>> [block.__class__.__name__ for block in geom.get_links()]
['NiSkinInstance']
>>> [block.__class__.__name__ for block in geom.skin_instance.get_refs()]
[]
>>> [block.__class__.__name__ for block in geom.skin_instance.get_links()]
['NiNode']
Strings¶
>>> extra = NifFormat.NiTextKeyExtraData()
>>> extra.num_text_keys = 2
>>> extra.text_keys.update_size()
>>> extra.text_keys[0].time = 0.0
>>> extra.text_keys[0].value = "start"
>>> extra.text_keys[1].time = 2.0
>>> extra.text_keys[1].value = "end"
>>> for extrastr in extra.get_strings(None):
... print(extrastr.decode("ascii"))
start
end