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
¶
-
property
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
¶
-
property
block_size
¶
-
property
data
¶
-
property
data_sizes
¶
-
property
has_data
¶
-
property
num_blocks
¶
-
property
num_data
¶
-
property
-
class
AdditionalDataInfo
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
block_index
¶
-
property
channel_offset
¶
-
property
data_type
¶
-
property
num_channel_bytes
¶
-
property
num_channel_bytes_per_element
¶
-
property
num_total_bytes_per_element
¶
-
property
unknown_byte_1
¶
-
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
¶
-
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
¶
-
property
controls_base_skeleton
¶
-
property
-
class
BSBlastNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
unknown_byte_1
¶
-
property
unknown_short_2
¶
-
property
-
class
BSBoneLODExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown
-
property
bone_l_o_d_count
¶
-
property
bone_l_o_d_info
¶
-
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
¶
-
property
unknown_short_2
¶
-
property
-
class
BSDebrisNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node.
-
property
unknown_byte_1
¶
-
property
unknown_short_2
¶
-
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
¶
-
property
unknown_float_1
¶
-
property
vector_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
¶
-
property
emissive_multiple
¶
-
property
falloff_start_angle
¶
-
property
falloff_start_opacity
¶
-
property
falloff_stop_angle
¶
-
property
falloff_stop_opacity
¶
-
property
greyscale_texture
¶
-
property
shader_flags_1
¶
-
property
shader_flags_2
¶
-
property
soft_falloff_depth
¶
-
property
source_texture
¶
-
property
texture_clamp_mode
¶
-
property
uv_offset
¶
-
property
uv_scale
¶
-
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
¶
-
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
¶
-
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
¶
-
property
-
class
BSFurnitureMarker
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown. Marks furniture sitting positions?
-
property
num_positions
¶
-
property
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
¶
-
property
-
class
BSKeyframeController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyframeController
An extended keyframe controller.
-
property
data_2
¶
-
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
¶
-
property
level_1_size
¶
-
property
level_2_size
¶
-
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
¶
-
property
linear_velocity
¶
-
property
maximum_distance
¶
-
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
¶
-
property
emissive_color
¶
-
property
emissive_multiple
¶
-
property
environment_map_scale
¶
-
property
eye_cubemap_scale
¶
-
property
glossiness
¶
-
property
hair_tint_color
¶
-
property
left_eye_reflection_center
¶
-
property
lighting_effect_1
¶
-
property
lighting_effect_2
¶
-
property
max_passes
¶
-
property
parallax_envmap_strength
¶
-
property
parallax_inner_layer_texture_scale
¶
-
property
parallax_inner_layer_thickness
¶
-
property
parallax_refraction_scale
¶
-
property
refraction_strength
¶
-
property
right_eye_reflection_center
¶
-
property
scale
¶
-
property
shader_flags_1
¶
-
property
shader_flags_2
¶
-
property
skin_tint_color
¶
-
property
sparkle_parameters
¶
-
property
specular_color
¶
-
property
specular_strength
¶
-
property
texture_clamp_mode
¶
-
property
texture_set
¶
-
property
uv_offset
¶
-
property
uv_scale
¶
-
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
¶
-
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
¶
-
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
¶
-
property
num_particle_systems
¶
-
property
particle_systems
¶
-
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
¶
-
property
-
class
BSMultiBoundAABB
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSMultiBoundData
Bethesda-specific node.
-
property
extent
¶
-
property
position
¶
-
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
¶
-
property
unknown_int
¶
-
property
-
class
BSMultiBoundOBB
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSMultiBoundData
Oriented bounding box.
-
property
center
¶
-
property
rotation
¶
-
property
size
¶
-
property
-
class
BSMultiBoundSphere
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSMultiBoundData
Bethesda-specific node.
-
property
radius
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
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
¶
-
property
is_static_bound
¶
-
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
¶
-
property
nodes
¶
-
property
num_nodes
¶
-
property
-
class
BSPSysInheritVelocityModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_int_1
¶
-
property
-
class
BSPSysLODModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
uknown_float_1
¶
-
property
uknown_float_2
¶
-
property
uknown_float_3
¶
-
property
uknown_float_4
¶
-
property
-
class
BSPSysMultiTargetEmitterCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
Particle system (multi?) emitter controller.
-
property
data
¶
-
property
unknown_int_1
¶
-
property
unknown_short_1
¶
-
property
visibility_interpolator
¶
-
property
-
class
BSPSysRecycleBoundModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
unknown_float_6
¶
-
property
unknown_int_1
¶
-
property
-
class
BSPSysScaleModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
-
property
floats
¶
-
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
¶
-
property
color_1_start_percent
¶
-
property
color_2_end_percent
¶
-
property
color_2_start_percent
¶
-
property
colors
¶
-
property
fade_in_percent
¶
-
property
fade_out_percent
¶
-
property
-
class
BSPSysStripUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Bethesda-Specific (mesh?) Particle System Modifier.
-
property
update_delta_time
¶
-
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
¶
-
property
frame_count
¶
-
property
frame_count_fudge
¶
-
property
loop_start_frame
¶
-
property
loop_start_frame_fudge
¶
-
property
start_frame
¶
-
property
start_frame_fudge
¶
-
property
-
class
BSPackedAdditionalDataBlock
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
atom_sizes
¶
-
property
block_offsets
¶
-
property
data
¶
-
property
has_data
¶
-
property
num_atoms
¶
-
property
num_blocks
¶
-
property
num_total_bytes
¶
-
property
num_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
¶
-
property
blocks
¶
-
property
num_block_infos
¶
-
property
num_blocks
¶
-
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
¶
-
property
-
class
BSPartFlag
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
Editor flags for the Body Partitions.
-
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
¶
-
property
byte_2
¶
-
property
byte_3
¶
-
property
distance_weight
¶
-
property
float_2
¶
-
property
float_5
¶
-
property
fork
¶
-
property
interpolator_10
¶
-
property
interpolator_2_mutation
¶
-
property
interpolator_3
¶
-
property
interpolator_4
¶
-
property
interpolator_5
¶
-
property
interpolator_6
¶
-
property
interpolator_7
¶
-
property
interpolator_8
¶
-
property
interpolator_9_arc_offset
¶
-
property
strip_width
¶
-
property
unknown_short_1
¶
-
property
unknown_short_2
¶
-
property
unknown_short_3
¶
-
property
-
class
BSRefractionFirePeriodController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Bethesda-specific node.
-
property
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
¶
-
property
internal_index
¶
-
property
unknown_byte_1
¶
-
property
-
class
BSSegmentFlags
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
An unsigned 32-bit integer, describing what’s inside the segment.
-
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
¶
-
property
segment
¶
-
property
-
class
BSShaderFlags
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.bit_struct.BitStructBase
Shader Property Flags
-
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
Shader Property Flags 2
-
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
¶
-
property
-
class
BSShaderNoLightingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderLightingProperty
Bethesda-specific property.
-
property
falloff_start_angle
¶
-
property
falloff_start_opacity
¶
-
property
falloff_stop_angle
¶
-
property
falloff_stop_opacity
¶
-
property
file_name
¶
-
property
-
class
BSShaderPPLightingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderLightingProperty
Bethesda-specific Shade node.
-
property
emissive_color
¶
-
property
refraction_fire_period
¶
-
property
refraction_strength
¶
-
property
texture_set
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
-
class
BSShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Bethesda-specific Property node
-
property
environment_map_scale
¶
-
property
shader_flags
¶
-
property
shader_flags_2
¶
-
property
shader_type
¶
-
property
smooth
¶
-
property
-
class
BSShaderTextureSet
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Bethesda-specific Texture Set.
-
property
num_textures
¶
-
property
textures
¶
-
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
¶
-
property
source_texture
¶
-
property
uv_offset
¶
-
property
uv_scale
¶
-
property
-
class
BSStripPSysData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysData
Bethesda-Specific (mesh?) Particle System Data.
-
property
unknown_byte_6
¶
-
property
unknown_float_8
¶
-
property
unknown_int_7
¶
-
property
unknown_short_5
¶
-
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
¶
-
property
num_tread_transforms
¶
-
property
tread_transforms
¶
-
property
-
class
BSTreadTransform
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Bethesda-specific node.
-
property
name
¶
-
property
transform_1
¶
-
property
transform_2
¶
-
property
-
class
BSTreadTransformData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Bethesda-specific node.
-
property
rotation
¶
-
property
scale
¶
-
property
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
¶
-
property
bones_1
¶
-
property
num_bones_1
¶
-
property
num_bones_2
¶
-
property
-
class
BSValueNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Bethesda-Specific node. Found on fxFire effects
-
property
unknown_byte
¶
-
property
value
¶
-
property
-
class
BSWArray
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Bethesda-specific node.
-
property
items
¶
-
property
num_items
¶
-
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
¶
-
property
uv_offset
¶
-
property
uv_scale
¶
-
property
water_direction
¶
-
property
water_shader_flags
¶
-
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
¶
-
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 present Bit 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
¶
-
property
unknown_floats_1
¶
-
property
unknown_floats_2
¶
-
property
unknown_int_1
¶
-
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
¶
-
property
part_flag
¶
-
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
¶
-
property
distance
¶
-
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
¶
-
property
rotation
¶
-
property
translation
¶
-
property
unknown_int
¶
-
property
-
class
BoundingVolume
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
box
¶
-
property
capsule
¶
-
property
collision_type
¶
-
property
half_space
¶
-
property
sphere
¶
-
property
union
¶
-
property
-
class
BoxBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Box Bounding Volume
-
property
axis
¶
-
property
center
¶
-
property
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
¶
-
property
g
¶
-
property
r
¶
-
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
¶
-
property
b
¶
-
property
g
¶
-
property
r
¶
-
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
¶
-
property
origin
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
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
¶
-
property
convention
¶
-
property
type
¶
-
property
unknown_byte_1
¶
-
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
¶
-
property
g
¶
-
property
r
¶
-
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
¶
-
property
b
¶
-
property
g
¶
-
property
r
¶
-
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
Determines how the data stream is accessed?
-
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
¶
-
property
num_vectors
¶
-
property
points
¶
-
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
¶
-
property
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
¶
-
property
export_info_1
¶
-
property
export_info_2
¶
-
property
unknown
¶
-
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
Furniture entry points. It specifies the direction(s) from where the actor is able to enter (and leave) the position.
-
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
¶
-
property
entry_properties
¶
-
property
heading
¶
-
property
offset
¶
-
property
orientation
¶
-
property
position_ref_1
¶
-
property
position_ref_2
¶
-
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.
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
-
class
FxWidget
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Firaxis-specific UI widgets?
-
property
unknown_292_bytes
¶
-
property
unknown_3
¶
-
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
¶
-
property
normal
¶
-
property
unknown_float_1
¶
-
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
¶
-
property
layer
¶
-
property
unknown_short
¶
-
property
-
class
HavokMaterial
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
material
¶
-
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
¶
-
property
axle_b
¶
-
property
perp_2_axle_in_a_1
¶
-
property
perp_2_axle_in_a_2
¶
-
property
perp_2_axle_in_b_1
¶
-
property
perp_2_axle_in_b_2
¶
-
property
pivot_a
¶
-
property
pivot_b
¶
-
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
¶
-
property
forward
¶
-
property
tbc
¶
-
property
time
¶
-
property
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
¶
-
property
keys
¶
-
property
num_keys
¶
-
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
¶
-
property
near_extent
¶
-
property
unknown_ints
¶
-
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
¶
-
property
scale
¶
-
property
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
¶
-
property
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
¶
-
property
material_name
¶
-
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
¶
-
property
m_12
¶
-
property
m_21
¶
-
property
m_22
¶
-
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
¶
-
property
is_per_instance
¶
-
property
num_components
¶
-
property
num_submeshes
¶
-
property
stream
¶
-
property
submesh_to_region_map
¶
-
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
¶
-
property
offset
¶
-
property
width
¶
-
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
¶
-
property
interpolation
¶
-
property
keys
¶
-
property
num_keys
¶
-
property
unknown_int
¶
-
property
vectors
¶
-
property
-
class
MorphWeight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
interpolator
¶
-
property
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
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
unknown_float_6
¶
-
property
-
class
MultiTextureElement
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
clamp
¶
-
property
filter
¶
-
property
has_image
¶
-
property
image
¶
-
property
ps_2_k
¶
-
property
ps_2_l
¶
-
property
unknown_short_3
¶
-
property
uv_set
¶
-
property
-
class
Ni3dsAlphaAnimator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown.
-
property
num_1
¶
-
property
num_2
¶
-
property
parent
¶
-
property
unknown_1
¶
-
property
unknown_2
¶
-
property
-
class
Ni3dsAnimationNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown. Only found in 2.3 nifs.
-
property
child
¶
-
property
count
¶
-
property
has_data
¶
-
property
name
¶
-
property
unknown_array
¶
-
property
unknown_floats_1
¶
-
property
unknown_floats_2
¶
-
property
unknown_short
¶
-
property
-
class
Ni3dsColorAnimator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶
-
property
-
class
Ni3dsMorphShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶
-
property
-
class
Ni3dsParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶
-
property
-
class
Ni3dsPathController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown!
-
property
unknown_1
¶
-
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
¶
-
property
blocks
¶
-
property
num_block_infos
¶
-
property
num_blocks
¶
-
property
num_vertices
¶
-
property
-
class
NiAlphaController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiFloatInterpController
Time controller for transparency.
-
property
data
¶
-
property
-
class
NiAlphaProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Transparency. Flags 0x00ED.
-
property
flags
¶
-
property
threshold
¶
-
property
unknown_int_2
¶
-
property
unknown_short_1
¶
-
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
¶
-
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
¶
-
property
-
class
NiBSplineCompFloatInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBSplineFloatInterpolator
Unknown.
-
property
base
¶
-
property
bias
¶
-
property
multiplier
¶
-
property
offset
¶
-
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
¶
-
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
¶
-
property
count_1
¶
-
property
count_2
¶
-
property
data_2
¶
-
property
num_bezier_triangles
¶
-
property
points_1
¶
-
property
points_2
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
-
class
NiBezierTriangle4
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Sub data of NiBezierMesh
-
property
matrix
¶
-
property
unknown_1
¶
-
property
unknown_2
¶
-
property
unknown_3
¶
-
property
unknown_4
¶
-
property
unknown_5
¶
-
property
unknown_6
¶
-
property
vector_1
¶
-
property
vector_2
¶
-
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: hidden Bits 1-2: collision mode Bit 3: unknown (set in most official meshes) Bits 5-6: billboard mode
Collision modes: 00 NONE 01 USE_TRIANGLES 10 USE_OBBS 11 CONTINUE
Billboard modes: 00 ALWAYS_FACE_CAMERA 01 ROTATE_ABOUT_UP 10 RIGID_FACE_CAMERA 11 ALWAYS_FACE_CENTER
-
property
billboard_mode
¶
-
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
¶
-
property
-
class
NiBinaryVoxelData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Voxel data object.
-
property
num_unknown_bytes_2
¶
-
property
num_unknown_vectors
¶
-
property
unknown_5_ints
¶
-
property
unknown_7_floats
¶
-
property
unknown_bytes_1
¶
-
property
unknown_bytes_2
¶
-
property
unknown_short_1
¶
-
property
unknown_short_2
¶
-
property
unknown_short_3
¶
-
property
unknown_vectors
¶
-
property
-
class
NiBinaryVoxelExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Voxel extra data object.
-
property
data
¶
-
property
unknown_int
¶
-
property
-
class
NiBlendBoolInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
An interpolator for a bool.
-
property
bool_value
¶
-
property
-
class
NiBlendFloatInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
An interpolator for a float.
-
property
float_value
¶
-
property
-
class
NiBlendInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpolator
An extended type of interpolater.
-
property
unknown_int
¶
-
property
unknown_short
¶
-
property
-
class
NiBlendPoint3Interpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBlendInterpolator
Interpolates a point?
-
property
point_value
¶
-
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
¶
-
property
num_node_groups
¶
-
property
num_node_groups_2
¶
-
property
num_shape_groups
¶
-
property
num_shape_groups_2
¶
-
property
shape_groups_1
¶
-
property
shape_groups_2
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
-
class
NiBoolData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Timed boolean data.
-
property
data
¶
-
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
¶
-
property
data
¶
-
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
¶
-
property
-
class
NiCamera
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
Camera object.
-
property
frustum_bottom
¶
-
property
frustum_far
¶
-
property
frustum_left
¶
-
property
frustum_near
¶
-
property
frustum_right
¶
-
property
frustum_top
¶
-
property
lod_adjust
¶
-
property
unknown_int
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
unknown_link
¶
-
property
unknown_short
¶
-
property
use_orthographic_projection
¶
-
property
viewport_bottom
¶
-
property
viewport_left
¶
-
property
viewport_right
¶
-
property
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
¶
-
property
collision_mode
¶
-
property
propagation_mode
¶
-
property
use_abv
¶
-
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 that is visible and possibly (if the body allows for it) interactive. The node itself is simple, it only has three properties. For this type of collision object, bhkRigidBody or bhkRigidBodyT is generally used.
-
property
target
¶
-
property
-
class
NiColorData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Color data for material color controller.
-
property
data
¶
-
property
-
class
NiColorExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown.
-
property
data
¶
-
property
-
class
NiControllerManager
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
Unknown. Root of all controllers?
-
property
controller_sequences
¶
-
property
cumulative
¶
-
property
num_controller_sequences
¶
-
property
object_palette
¶
-
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
¶
-
property
data
¶
-
property
num_bytes
¶
-
property
num_components
¶
-
property
num_regions
¶
-
property
regions
¶
-
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
¶
-
property
objs
¶
-
property
unknown_int
¶
-
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
¶
-
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
¶
-
property
affected_nodes
¶
-
property
num_affected_node_list_pointers
¶
-
property
num_affected_nodes
¶
-
property
switch_state
¶
-
property
-
class
NiEnvMappedTriShape
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
Unknown
-
property
child_2
¶
-
property
child_3
¶
-
property
children
¶
-
property
num_children
¶
-
property
unknown_1
¶
-
property
unknown_matrix
¶
-
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
¶
-
property
next_extra_data
¶
-
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
¶
-
property
images
¶
-
property
num_sources
¶
-
property
sources
¶
-
property
texture_slot
¶
-
property
unknown_int_2
¶
-
property
-
class
NiFloatData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Possibly the 1D position along a 3D path.
-
property
data
¶
-
property
-
class
NiFloatExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Float extra data.
-
property
float_data
¶
-
property
-
class
NiFloatExtraDataController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraDataController
Unknown.
-
property
controller_data
¶
-
property
num_extra_bytes
¶
-
property
unknown_bytes
¶
-
property
unknown_extra_bytes
¶
-
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
¶
-
property
float_value
¶
-
property
-
class
NiFloatsExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Unknown.
-
property
data
¶
-
property
num_floats
¶
-
property
-
class
NiFogProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Describes… fog?
-
property
flags
¶
-
property
fog_color
¶
-
property
fog_depth
¶
-
property
-
class
NiFurSpringController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiTimeController
-
property
bones
¶
-
property
bones_2
¶
-
property
num_bones
¶
-
property
num_bones_2
¶
-
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
¶
-
property
data
¶
-
property
extra_flags
¶
-
property
interpolator_weights
¶
-
property
interpolators
¶
-
property
num_interpolators
¶
-
property
num_unknown_ints
¶
-
property
unknown_2
¶
-
property
unknown_ints
¶
-
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
¶
-
property
force
¶
-
property
position
¶
-
property
type
¶
-
property
unknown_float_1
¶
-
property
-
class
NiImage
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
-
property
file_name
¶
-
property
image_data
¶
-
property
unknown_float
¶
-
property
unknown_int
¶
-
property
use_external
¶
-
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
¶
-
property
-
class
NiIntegersExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Integers data.
-
property
data
¶
-
property
num_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
¶
-
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
¶
-
property
lod_level_data
¶
-
property
lod_levels
¶
-
property
num_lod_levels
¶
-
property
-
class
NiLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiDynamicEffect
Light source.
-
property
ambient_color
¶
-
property
diffuse_color
¶
-
property
dimmer
¶
-
property
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
¶
-
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
¶
-
property
unknown_1
¶
-
property
-
class
NiLookAtInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpolator
Unknown.
-
property
look_at
¶
-
property
rotation
¶
-
property
scale
¶
-
property
target
¶
-
property
translation
¶
-
property
unknown_link_1
¶
-
property
unknown_link_2
¶
-
property
unknown_link_3
¶
-
property
unknown_short
¶
-
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
¶
-
property
datas
¶
-
property
instancing_enabled
¶
-
property
modifiers
¶
-
property
num_datas
¶
-
property
num_modifiers
¶
-
property
num_submeshes
¶
-
property
primitive_type
¶
-
property
unknown_100
¶
-
property
unknown_101
¶
-
property
unknown_102
¶
-
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
¶
-
property
num_complete_points
¶
-
property
num_submit_points
¶
-
property
submit_points
¶
-
property
-
class
NiMeshPSysData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysData
Particle meshes data.
-
property
num_unknown_ints_1
¶
-
property
unknown_byte_3
¶
-
property
unknown_int_2
¶
-
property
unknown_ints_1
¶
-
property
unknown_node
¶
-
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
¶
-
property
flags
¶
-
property
num_elements
¶
-
property
num_targets
¶
-
property
-
class
NiMorphWeightsController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
-
property
interpolators
¶
-
property
num_interpolators
¶
-
property
num_targets
¶
-
property
target_names
¶
-
property
unknown_2
¶
-
property
-
class
NiMorpherController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
Unknown! Used by Daoc.
-
property
data
¶
-
property
-
class
NiMultiTargetTransformController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiInterpController
Unknown.
-
property
extra_targets
¶
-
property
num_extra_targets
¶
-
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
texture_elements
¶
-
property
unknown_int
¶
-
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
¶
-
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
¶
-
property
unknown_25
¶
-
property
unknown_26
¶
-
property
-
class
NiPSParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
-
property
emitter
¶
-
property
generator
¶
-
property
simulator
¶
-
property
unknown_10
¶
-
property
unknown_11
¶
-
property
unknown_12
¶
-
property
unknown_15
¶
-
property
unknown_16
¶
-
property
unknown_17
¶
-
property
unknown_19
¶
-
property
unknown_20
¶
-
property
unknown_21
¶
-
property
unknown_22
¶
-
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_5
¶
-
property
unknown_6
¶
-
property
unknown_7
¶
-
property
unknown_8
¶
-
property
unknown_9
¶
-
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
¶
-
property
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
¶
-
property
num_colliders
¶
-
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
¶
-
property
num_forces
¶
-
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
¶
-
property
color_loop_behavior
¶
-
property
grow_generation
¶
-
property
grow_time
¶
-
property
num_color_keys
¶
-
property
num_rotation_keys
¶
-
property
num_size_keys
¶
-
property
rotation_keys
¶
-
property
rotation_loop_behavior
¶
-
property
shrink_generation
¶
-
property
shrink_time
¶
-
property
size_keys
¶
-
property
size_loop_behavior
¶
-
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
¶
-
property
rotation_keys
¶
-
property
rotation_loop_behavior
¶
-
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
¶
-
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
¶
-
property
spawn_on_death
¶
-
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
¶
-
property
unknown_boolean_1
¶
-
property
unknown_boolean_2
¶
-
property
unknown_boolean_3
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
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
¶
-
property
bomb_object
¶
-
property
decay
¶
-
property
decay_type
¶
-
property
delta_v
¶
-
property
symmetry_type
¶
-
property
-
class
NiPSysBoundUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown particle system modifier.
-
property
update_skip
¶
-
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
¶
-
property
height
¶
-
property
width
¶
-
property
-
class
NiPSysCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Particle system collider.
-
property
bounce
¶
-
property
collider_object
¶
-
property
die_on_collide
¶
-
property
next_collider
¶
-
property
parent
¶
-
property
spawn_modifier
¶
-
property
spawn_on_collide
¶
-
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
¶
-
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
¶
-
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
¶
-
property
radius
¶
-
property
-
class
NiPSysData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiRotatingParticlesData
Particle system data.
-
property
aspect_ratio
¶
-
property
has_subtexture_offset_u_vs
¶
-
property
has_unknown_floats_3
¶
-
property
num_subtexture_offset_u_vs
¶
-
property
particle_descriptions
¶
-
property
subtexture_offset_u_vs
¶
-
property
unknown_byte_4
¶
-
property
unknown_floats_3
¶
-
property
unknown_int_4
¶
-
property
unknown_int_5
¶
-
property
unknown_int_6
¶
-
property
unknown_short_1
¶
-
property
unknown_short_2
¶
-
property
unknown_short_3
¶
-
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
¶
-
property
use_direction
¶
-
property
-
class
NiPSysDragModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown.
-
property
drag_axis
¶
-
property
parent
¶
-
property
percentage
¶
-
property
range
¶
-
property
range_falloff
¶
-
property
-
class
NiPSysEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
A particle emitter?
-
property
declination
¶
-
property
declination_variation
¶
-
property
initial_color
¶
-
property
initial_radius
¶
-
property
life_span
¶
-
property
life_span_variation
¶
-
property
planar_angle
¶
-
property
planar_angle_variation
¶
-
property
radius_variation
¶
-
property
speed
¶
-
property
speed_variation
¶
-
property
-
class
NiPSysEmitterCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierCtlr
Particle system emitter controller.
-
property
data
¶
-
property
visibility_interpolator
¶
-
property
-
class
NiPSysEmitterCtlrData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Particle system emitter controller data.
-
property
float_keys
¶
-
property
num_visibility_keys
¶
-
property
visibility_keys
¶
-
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
¶
-
property
field_object
¶
-
property
magnitude
¶
-
property
max_distance
¶
-
property
use_max_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
¶
-
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
¶
-
property
force_type
¶
-
property
gravity_axis
¶
-
property
gravity_object
¶
-
property
strength
¶
-
property
turbulence
¶
-
property
turbulence_scale
¶
-
property
unknown_byte
¶
-
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
¶
-
property
fade_generation
¶
-
property
fade_time
¶
-
property
grow_generation
¶
-
property
grow_time
¶
-
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
¶
-
property
emission_type
¶
-
property
emitter_meshes
¶
-
property
initial_velocity_type
¶
-
property
num_emitter_meshes
¶
-
property
-
class
NiPSysMeshUpdateModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown.
-
property
meshes
¶
-
property
num_meshes
¶
-
property
-
class
NiPSysModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Generic particle system modifier object.
-
property
active
¶
-
property
name
¶
-
property
order
¶
-
property
target
¶
-
property
-
class
NiPSysModifierActiveCtlr
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifierBoolCtlr
Unknown.
-
property
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
¶
-
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
¶
-
property
-
class
NiPSysPlanarCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysCollider
Particle Collider object which particles will interact with.
-
property
height
¶
-
property
width
¶
-
property
x_axis
¶
-
property
y_axis
¶
-
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 particle velocity in force field.
-
property
radial_type
¶
-
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
¶
-
property
initial_rotation_angle
¶
-
property
initial_rotation_angle_variation
¶
-
property
initial_rotation_speed
¶
-
property
initial_rotation_speed_variation
¶
-
property
random_initial_axis
¶
-
property
random_rot_speed_sign
¶
-
property
-
class
NiPSysSpawnModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysModifier
Unknown particle modifier.
-
property
life_span
¶
-
property
life_span_variation
¶
-
property
max_num_to_spawn
¶
-
property
min_num_to_spawn
¶
-
property
num_spawn_generations
¶
-
property
percentage_spawned
¶
-
property
spawn_dir_chaos
¶
-
property
spawn_speed_chaos
¶
-
property
unknown_int
¶
-
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
¶
-
property
-
class
NiPSysSphericalCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysCollider
Particle Collider object which particles will interact with.
-
property
radius
¶
-
property
-
class
NiPSysTrailEmitter
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPSysEmitter
Guild 2-Specific node
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
unknown_float_6
¶
-
property
unknown_float_7
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
unknown_int_4
¶
-
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
¶
-
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
¶
-
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
¶
-
property
-
class
NiPalette
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A color palette.
-
property
num_entries
¶
-
property
palette
¶
-
property
unknown_byte
¶
-
property
-
class
NiParticleBomb
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
A particle modifier.
-
property
decay
¶
-
property
decay_type
¶
-
property
delta_v
¶
-
property
direction
¶
-
property
duration
¶
-
property
position
¶
-
property
start
¶
-
property
symmetry_type
¶
-
property
-
class
NiParticleColorModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
color_data
¶
-
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
¶
-
property
grow
¶
-
property
-
class
NiParticleMeshModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
num_particle_meshes
¶
-
property
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
¶
-
property
-
class
NiParticleModifier
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A particle system modifier.
-
property
controller
¶
-
property
next_modifier
¶
-
property
-
class
NiParticleRotation
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
initial_axis
¶
-
property
random_initial_axis
¶
-
property
rotation_speed
¶
-
property
-
class
NiParticleSystem
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticles
A particle system.
-
property
modifiers
¶
-
property
num_modifiers
¶
-
property
unknown_int_1
¶
-
property
unknown_short_2
¶
-
property
unknown_short_3
¶
-
property
world_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
¶
-
property
emit_rate
¶
-
property
emit_start_time
¶
-
property
emit_stop_time
¶
-
property
emitter
¶
-
property
horizontal_angle
¶
-
property
horizontal_direction
¶
-
property
lifetime
¶
-
property
lifetime_random
¶
-
property
num_particles
¶
-
property
num_valid
¶
-
property
old_emit_rate
¶
-
property
old_speed
¶
-
property
particle_extra
¶
-
property
particle_lifetime
¶
-
property
particle_link
¶
-
property
particle_timestamp
¶
-
property
particle_unknown_short
¶
-
property
particle_unknown_vector
¶
-
property
particle_velocity
¶
-
property
particle_vertex_id
¶
-
property
particles
¶
-
property
size
¶
-
property
speed
¶
-
property
speed_random
¶
-
property
start_random
¶
-
property
trailer
¶
-
property
unknown_byte
¶
-
property
unknown_color
¶
-
property
unknown_float_1
¶
-
property
unknown_float_13
¶
-
property
unknown_floats_2
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_link
¶
-
property
unknown_link_2
¶
-
property
unknown_normal
¶
-
property
unknown_short_2
¶
-
property
unknown_short_3
¶
-
property
vertical_angle
¶
-
property
vertical_direction
¶
-
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
¶
-
property
has_rotation_angles
¶
-
property
has_rotation_axes
¶
-
property
has_rotations
¶
-
property
has_sizes
¶
-
property
has_uv_quadrants
¶
-
property
num_active
¶
-
property
num_particles
¶
-
property
num_uv_quadrants
¶
-
property
particle_radius
¶
-
property
radii
¶
-
property
rotation_angles
¶
-
property
rotation_axes
¶
-
property
rotations
¶
-
property
sizes
¶
-
property
unknown_byte_1
¶
-
property
unknown_byte_2
¶
-
property
unknown_link
¶
-
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
¶
-
property
pos_data
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_int_1
¶
-
property
unknown_short
¶
-
property
unknown_short_2
¶
-
property
-
class
NiPathInterpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyBasedInterpolator
Unknown interpolator.
-
property
float_data
¶
-
property
pos_data
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_int
¶
-
property
unknown_short
¶
-
property
unknown_short_2
¶
-
property
-
class
NiPersistentSrcTextureRendererData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.ATextureRenderData
-
property
num_faces
¶
-
property
num_pixels
¶
-
property
pixel_data
¶
-
property
unknown_int_6
¶
-
property
unknown_int_7
¶
-
property
-
class
NiPhysXActorDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
shape_description
¶
-
property
unknown_byte_1
¶
-
property
unknown_byte_2
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_4
¶
-
property
unknown_int_5
¶
-
property
unknown_int_6
¶
-
property
unknown_quat_1
¶
-
property
unknown_quat_2
¶
-
property
unknown_quat_3
¶
-
property
unknown_ref_0
¶
-
property
unknown_ref_1
¶
-
property
unknown_ref_2
¶
-
property
unknown_refs_3
¶
-
property
-
class
NiPhysXBodyDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
unknown_bytes
¶
-
property
-
class
NiPhysXD6JointDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
unknown_bytes
¶
-
property
-
class
NiPhysXKinematicSrc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
unknown_bytes
¶
-
property
-
class
NiPhysXMaterialDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown node.
-
property
unknown_byte_1
¶
-
property
unknown_byte_2
¶
-
property
unknown_int
¶
-
property
-
class
NiPhysXMeshDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
num_vertices
¶
-
property
unknown_byte_1
¶
-
property
unknown_byte_2
¶
-
property
unknown_bytes_0
¶
-
property
unknown_bytes_1
¶
-
property
unknown_bytes_2
¶
-
property
unknown_bytes_3
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_4
¶
-
property
unknown_ints_1
¶
-
property
unknown_short_1
¶
-
property
unknown_short_2
¶
-
property
unknown_shorts_1
¶
-
property
vertices
¶
-
property
-
class
NiPhysXProp
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObjectNET
Unknown PhysX node.
-
property
num_dests
¶
-
property
prop_description
¶
-
property
transform_dests
¶
-
property
unknown_byte
¶
-
property
unknown_float_1
¶
-
property
unknown_int
¶
-
property
unknown_int_1
¶
-
property
unknown_refs_1
¶
-
property
-
class
NiPhysXPropDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
actor_descs
¶
-
property
joint_descs
¶
-
property
material_descs
¶
-
property
num_dests
¶
-
property
num_joints
¶
-
property
num_materials
¶
-
property
unknown_byte_6
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
unknown_int_5
¶
-
property
unknown_string_4
¶
-
property
-
class
NiPhysXShapeDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
mesh_description
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
unknown_int_4
¶
-
property
unknown_int_5
¶
-
property
unknown_int_7
¶
-
property
unknown_int_8
¶
-
property
unknown_quat_1
¶
-
property
unknown_quat_2
¶
-
property
unknown_quat_3
¶
-
property
unknown_short_1
¶
-
property
unknown_short_2
¶
-
property
-
class
NiPhysXTransformDest
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Unknown PhysX node.
-
property
node
¶
-
property
unknown_byte_1
¶
-
property
unknown_byte_2
¶
-
property
-
class
NiPixelData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.ATextureRenderData
A texture.
-
property
num_faces
¶
-
property
num_pixels
¶
-
property
pixel_data
¶
-
property
-
class
NiPlanarCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
unknown_float_1
¶
-
property
unknown_float_10
¶
-
property
unknown_float_11
¶
-
property
unknown_float_12
¶
-
property
unknown_float_13
¶
-
property
unknown_float_14
¶
-
property
unknown_float_15
¶
-
property
unknown_float_16
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
unknown_float_6
¶
-
property
unknown_float_7
¶
-
property
unknown_float_8
¶
-
property
unknown_float_9
¶
-
property
unknown_short
¶
-
property
unknown_short_2
¶
-
property
-
class
NiPoint3InterpController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
A controller that interpolates point 3 data?
-
property
data
¶
-
property
target_color
¶
-
property
-
class
NiPoint3Interpolator
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiKeyBasedInterpolator
Unknown.
-
property
data
¶
-
property
point_3_value
¶
-
property
-
class
NiPointLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiLight
A point light.
-
property
constant_attenuation
¶
-
property
linear_attenuation
¶
-
property
quadratic_attenuation
¶
-
property
-
class
NiPortal
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
A Portal
-
property
num_vertices
¶
-
property
target
¶
-
property
unknown_flags
¶
-
property
unknown_short_2
¶
-
property
vertices
¶
-
property
-
class
NiPosData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Position data.
-
property
data
¶
-
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
¶
-
property
num_lod_levels
¶
-
property
-
class
NiRawImageData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Raw image data.
-
property
height
¶
-
property
image_type
¶
-
property
rgb_image_data
¶
-
property
rgba_image_data
¶
-
property
width
¶
-
property
-
class
NiRenderObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiAVObject
An object that can be rendered.
-
property
active_material
¶
-
property
material_data
¶
-
property
material_needs_update_default
¶
-
property
num_materials
¶
-
property
-
class
NiRollController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiSingleInterpController
Unknown.
-
property
data
¶
-
property
-
class
NiRoom
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Grouping node for nodes in a Portal
-
property
in_portals
¶
-
property
items
¶
-
property
num_in_portals
¶
-
property
num_items
¶
-
property
num_portals_2
¶
-
property
num_walls
¶
-
property
portals_2
¶
-
property
wall_plane
¶
-
property
-
class
NiRoomGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Grouping node for nodes in a Portal
-
property
num_rooms
¶
-
property
rooms
¶
-
property
shell_link
¶
-
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
¶
-
property
rotations_2
¶
-
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
¶
-
property
num_polygons
¶
-
property
polygon_indices
¶
-
property
polygons
¶
-
property
unknown_u_short_1
¶
-
property
unknown_u_short_2
¶
-
property
unknown_u_short_3
¶
-
property
used_triangle_points
¶
-
property
used_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
¶
-
property
bound_radius
¶
-
property
proportion_count
¶
-
property
proportion_levels
¶
-
property
world_center
¶
-
property
world_radius
¶
-
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
¶
-
property
name
¶
-
property
num_controlled_blocks
¶
-
property
text_keys
¶
-
property
text_keys_name
¶
-
property
unknown_int_1
¶
-
property
unknown_int_4
¶
-
property
unknown_int_5
¶
-
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
¶
-
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
¶
-
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
¶
-
property
data
¶
-
property
num_bones
¶
-
property
skeleton_root
¶
-
property
skin_partition
¶
-
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
¶
-
property
skin_partition_blocks
¶
-
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
¶
-
property
bone_transforms
¶
-
property
bones
¶
-
property
flags
¶
-
property
num_bones
¶
-
property
skeleton_root
¶
-
property
skeleton_transform
¶
-
property
-
class
NiSortAdjustNode
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiNode
Unknown node. Found in Loki.
-
property
sorting_mode
¶
-
property
unknown_int_2
¶
-
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
¶
-
property
direct_render
¶
-
property
file_name
¶
-
property
is_static
¶
-
property
persist_render_data
¶
-
property
pixel_data
¶
-
property
pixel_layout
¶
-
property
unknown_byte
¶
-
property
unknown_link
¶
-
property
use_external
¶
-
property
use_mipmaps
¶
-
property
-
class
NiSpecularProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Gives specularity to a shape. Flags 0x0001.
-
property
flags
¶
-
property
-
class
NiSphericalCollider
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiParticleModifier
Unknown.
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
unknown_short_1
¶
-
property
unknown_short_2
¶
-
property
-
class
NiSpotLight
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiPointLight
A spot.
-
property
cutoff_angle
¶
-
property
exponent
¶
-
property
unknown_float
¶
-
property
-
class
NiStencilProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Allows control of stencil testing.
-
property
draw_mode
¶
-
property
fail_action
¶
-
property
flags
¶
-
property
pass_action
¶
-
property
stencil_enabled
¶
-
property
stencil_function
¶
-
property
stencil_mask
¶
-
property
stencil_ref
¶
-
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
¶
-
property
string_data
¶
-
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
¶
-
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
¶
-
property
num_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
¶
-
property
unknown_int_1
¶
-
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
¶
-
property
text_keys
¶
-
property
unknown_int_1
¶
-
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
¶
-
property
coordinate_generation_type
¶
-
property
image
¶
-
property
model_projection_matrix
¶
-
property
model_projection_transform
¶
-
property
ps_2_k
¶
-
property
ps_2_l
¶
-
property
source_texture
¶
-
property
texture_clamping
¶
-
property
texture_filtering
¶
-
property
texture_type
¶
-
property
unknown
¶
-
property
unknown_float
¶
-
property
unknown_short
¶
-
property
unknown_vector
¶
-
property
-
class
NiTextureModeProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Unknown
-
property
ps_2_k
¶
-
property
ps_2_l
¶
-
property
unknown_ints
¶
-
property
unknown_short
¶
-
property
-
class
NiTextureProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
-
property
flags
¶
-
property
image
¶
-
property
unknown_ints_1
¶
-
property
unknown_ints_2
¶
-
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
¶
-
property
operation
¶
-
property
texture_slot
¶
-
property
unknown_2
¶
-
property
-
class
NiTexturingProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Describes an object’s textures.
-
property
apply_mode
¶
-
property
base_texture
¶
-
property
bump_map_luma_offset
¶
-
property
bump_map_luma_scale
¶
-
property
bump_map_matrix
¶
-
property
bump_map_texture
¶
-
property
dark_texture
¶
-
property
decal_0_texture
¶
-
property
decal_1_texture
¶
-
property
decal_2_texture
¶
-
property
decal_3_texture
¶
-
property
detail_texture
¶
-
property
flags
¶
-
property
gloss_texture
¶
-
property
glow_texture
¶
-
property
has_base_texture
¶
-
property
has_bump_map_texture
¶
-
property
has_dark_texture
¶
-
property
has_decal_0_texture
¶
-
property
has_decal_1_texture
¶
-
property
has_decal_2_texture
¶
-
property
has_decal_3_texture
¶
-
property
has_detail_texture
¶
-
property
has_gloss_texture
¶
-
property
has_glow_texture
¶
-
property
has_normal_texture
¶
-
property
has_unknown_2_texture
¶
-
property
normal_texture
¶
-
property
num_shader_textures
¶
-
property
shader_textures
¶
-
property
texture_count
¶
-
property
unknown_2_float
¶
-
property
unknown_2_texture
¶
-
property
-
class
NiTimeController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
A generic time controller object.
-
property
flags
¶
-
property
frequency
¶
-
property
next_controller
¶
-
property
phase
¶
-
property
start_time
¶
-
property
stop_time
¶
-
property
target
¶
-
property
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
¶
-
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
¶
-
property
bones
¶
-
property
num_bones
¶
-
property
vertex_counts
¶
-
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
¶
-
property
unknown_short
¶
-
property
-
class
NiUVData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Texture coordinate data.
-
property
uv_groups
¶
-
property
-
class
NiVectorExtraData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiExtraData
Extra vector data.
-
property
unknown_float
¶
-
property
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
¶
-
property
num_vertices
¶
-
property
weight
¶
-
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
¶
-
property
lighting_mode
¶
-
property
vertex_mode
¶
-
property
-
class
NiVisController
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiBoolInterpController
Time controller for visibility.
-
property
data
¶
-
property
-
class
NiVisData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Visibility data for a controller.
-
property
keys
¶
-
property
num_keys
¶
-
property
-
class
NiWireframeProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiProperty
Unknown.
-
property
flags
¶
-
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
¶
-
property
function
¶
-
property
-
class
NodeGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A group of NiNodes references.
-
property
nodes
¶
-
property
num_nodes
¶
-
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
¶
-
property
num_vertices
¶
-
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
¶
-
property
vertex_index
¶
-
property
vertex_weight
¶
-
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
¶
-
property
lifetime
¶
-
property
timestamp
¶
-
property
unknown_short
¶
-
property
unknown_vector
¶
-
property
velocity
¶
-
property
vertex_id
¶
-
property
-
class
ParticleDesc
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Particle Description.
-
property
translation
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_floats_1
¶
-
property
unknown_int_1
¶
-
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
¶
-
property
num_vertices
¶
-
property
triangle_offset
¶
-
property
vertex_offset
¶
-
property
-
class
PrismaticDescriptor
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
friction
¶
-
property
max_distance
¶
-
property
min_distance
¶
-
property
pivot_a
¶
-
property
pivot_b
¶
-
property
plane_a
¶
-
property
plane_b
¶
-
property
rotation_a
¶
-
property
rotation_b
¶
-
property
rotation_matrix_a
¶
-
property
sliding_a
¶
-
property
sliding_b
¶
-
property
unknown_byte_1
¶
-
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
¶
-
property
scale
¶
-
property
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
¶
-
property
time
¶
-
property
value
¶
-
property
-
class
Quaternion
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A quaternion.
-
property
w
¶
-
property
x
¶
-
property
y
¶
-
property
z
¶
-
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
¶
-
property
x
¶
-
property
y
¶
-
property
z
¶
-
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
¶
-
property
name
¶
-
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
¶
-
property
map_index
¶
-
property
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
¶
-
property
skin_instance
¶
-
property
-
class
SkinShapeGroup
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
Unknown.
-
property
link_pairs
¶
-
property
num_link_pairs
¶
-
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
¶
-
property
weight
¶
-
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
¶
-
property
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
Skyrim Shader Property Flags 1
-
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
Skyrim Shader Property Flags 2
-
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
Skyrim water shader property flags
-
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 the solver deactivates objects. The solver works on a per object basis. Note: Solver deactivation does not save CPU, but reduces creeping of movable 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
¶
-
property
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
¶
-
property
pivot_a
¶
-
property
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
¶
-
property
hinge
¶
-
property
limited_hinge
¶
-
property
num_entities
¶
-
property
priority
¶
-
property
prismatic
¶
-
property
ragdoll
¶
-
property
stiff_spring
¶
-
property
type
¶
-
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
¶
-
property
c
¶
-
property
t
¶
-
property
-
class
TallGrassShaderProperty
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.BSShaderProperty
Bethesda-specific node.
-
property
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
¶
-
property
clamp_mode
¶
-
property
filter_mode
¶
-
property
flags
¶
-
property
has_texture_transform
¶
-
property
ps_2_k
¶
-
property
ps_2_l
¶
-
property
source
¶
-
property
tiling
¶
-
property
transform_type
¶
-
property
translation
¶
-
property
unknown_1
¶
-
property
unknown_short
¶
-
property
uv_set
¶
-
property
w_rotation
¶
-
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
¶
-
property
pixel_data
¶
-
property
unknown_byte
¶
-
property
unknown_link
¶
-
property
use_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
¶
-
property
-
class
Triangle
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
List of three vertex indices.
-
property
v_1
¶
-
property
v_2
¶
-
property
v_3
¶
-
property
-
class
UnionBV
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
bounding_volumes
¶
-
property
num_bv
¶
-
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
¶
-
property
-
class
bhkBallSocketConstraintChain
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkSerializable
A Ball and Socket Constraint chain.
-
property
floats_1
¶
-
property
links
¶
-
property
links_2
¶
-
property
num_floats
¶
-
property
num_links
¶
-
property
num_links_2
¶
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
property
-
class
bhkBlendCollisionObject
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.bhkCollisionObject
Unknown.
-
property
unknown_float_1
¶
-
property
unknown_float_2
¶
-
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
¶
-
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
¶
-
property
sub_constraint
¶
-
property
threshold
¶
-
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
¶
-
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
¶
-
property
material_index
¶
-
property
num_indices
¶
-
property
num_indices_2
¶
-
property
num_strips
¶
-
property
num_vertices
¶
-
property
strips
¶
-
property
transform_index
¶
-
property
translation
¶
-
property
unknown_short_1
¶
-
property
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
¶
-
property
layer
¶
-
property
material
¶
-
property
short_set_to_0
¶
-
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
¶
-
property
translation
¶
-
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
¶
-
property
radius
¶
-
property
scale
¶
-
property
target
¶
-
property
unknown_4_bytes
¶
-
property
unknown_float_1
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_float_5
¶
-
property
unknown_floats_1
¶
-
property
unknown_int_1
¶
-
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
¶
-
property
big_verts
¶
-
property
bits_per_index
¶
-
property
bits_per_w_index
¶
-
property
bounds_max
¶
-
property
bounds_min
¶
-
property
chunk_materials
¶
-
property
chunk_transforms
¶
-
property
chunks
¶
-
property
error
¶
-
property
mask_index
¶
-
property
mask_w_index
¶
-
property
num_big_tris
¶
-
property
num_big_verts
¶
-
property
num_chunks
¶
-
property
num_materials
¶
-
property
num_transforms
¶
-
property
unknown_byte_1
¶
-
property
unknown_byte_2
¶
-
property
unknown_int_12
¶
-
property
unknown_int_3
¶
-
property
unknown_int_4
¶
-
property
unknown_int_5
¶
-
property
unknown_int_6
¶
-
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 a separate collision nodes without a list shape for those.
Also, shapes collected in a bhkListShape may not have the correct walking noise, so only use it for non-walkable objects.
-
property
material
¶
-
property
num_sub_shapes
¶
-
property
sub_shapes
¶
-
property
unknown_byte_1
¶
-
property
unknown_float_1
¶
-
property
unknown_floats
¶
-
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
¶
-
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
¶
-
property
unknown_float_2
¶
-
property
unknown_float_3
¶
-
property
unknown_float_4
¶
-
property
unknown_int_1
¶
-
property
unknown_int_2
¶
-
property
unknown_int_3
¶
-
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
¶
-
property
num_unknown_floats
¶
-
property
strips_data
¶
-
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
¶
-
property
flags
¶
-
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
¶
-
property
-
class
bhkRDTConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
-
property
entity_a
¶
-
property
entity_b
¶
-
property
malleable_constraint
¶
-
property
priority
¶
-
property
ragdoll
¶
-
property
type
¶
-
property
unknown_int
¶
-
property
-
class
bhkRDTMalleableConstraint
(template=None, argument=None, parent=None)¶ Bases:
pyffi.object_models.xml.struct_.StructBase
A malleable constraint.
-
property
damping
¶
-
property
entity_a
¶
-
property
entity_b
¶
-
property
hinge
¶
-
property
limited_hinge
¶
-
property
priority
¶
-
property
ragdoll
¶
-
property
type
¶
-
property
unknown_int
¶
-
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
¶
-
property
name
¶
-
property
num_bones
¶
-
property
-
class
bhkRagdollTemplateData
(template=None, argument=None, parent=None)¶ Bases:
pyffi.formats.nif.NiObject
Data for bhkRagdollTemplate
-
property
constraint
¶
-
property
flag_or_num_constraints
¶
-
property
friction
¶
-
property
mass
¶
-
property
name
¶
-
property
radius
¶
-
property
restitution
¶
-
property
unknown_int
¶
-
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
¶
-
property
unknown_floats_2
¶
-
property
unkown_floats
¶
-
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
¶
-
property
radius
¶
-
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
¶
-
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
¶
-
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
¶
-
property
triangle
¶
-
property
welding_info
¶
-
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
¶
-
property
number
¶
-
property
unknown_byte_1
¶
-
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/latest/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