Category:NifSE
NifSE | |
---|---|
Author(s) | |
Current Version | 1.0 β:1 (GetPluginVersion returns 0x0001001F (65567)) |
Description |
NifSE is an interface between OBSE and Niflib, allowing scripts to use Niflib functions to manipulate 3D mesh files during runtime. |
Installation |
|
Download |
|
Source Code | |
Discussions | |
OBSE Name | "NifSE"
(for use with IsPluginInstalled/GetPluginVersion) |
Using NifSE
With NifSE installed and operating, and the CS opened with OBSE, you may use any of the NifSE functions (below) in a script.
The first step to using NifSE is NifOpen. NifOpen has NifSE load a NIF file into memory so that you can manipulate it. This process be set to read-only or writable using an optional boolean argument with NifOpen; this argument defaults to false (read-only).
Example
As an example of using NifSE, consider this code:
ref playerWeapon string_var filepath short nifID Begin GameMode if ( playerWeapon != player.GetEquippedObject 16 ) if ( playerWeapon ) let filepath := NifGetOriginalPath nifID SetModelPath $filepath playerWeapon NifClose nifID endif let playerWeapon := player.GetEquippedObject 16 let filepath := GetModelPath playerWeapon let nifID := NifOpen $filepath 1 let filepath := NifGetPath nifID SetModelPath $filepath playerWeapon endif End
Every time the player equips a new weapon, creates a copy of the weapon's model that can be edited using NifSE, and sets the weapon's model to the copy. If a previous weapon had been affected, sets that weapon's model back to its original file, and closes that nif in NifSE. From here, one would presumably have further blocks dedicated to determining when to apply various changes using the other NifSE functions.
NIF Structure
NIF files are made up of a series of blocks, or NiObjects, which contain various different types of data. To understand NIF files and how to manipulate them, one must understand both the block hierarchy, and the structure of the NIF.
For the actual structure of NIF files, one starts with the root. The root is a NiNode block that is the first block in almost all NIF files (and therefore has blockID of 0, the default value of that parameter in NifSE functions). The root has a list of "Children" which are NiAVObject blocks. Since NiNode is a form of NiAVObject itself, these children can also be NiNode blocks, or other forms of NiAVObject. Further, since NiAVObject is sub-class of NiObjectNET, both the root and all of its Children have a list of Extra Data, which are NiExtraData-derived blocks.
For the rest of the NIF block hierarchy, start with the NiObject, the most basic block, and explore the hierarchy. For NifSE's purposes, only certain blocks are shown, since these are the only blocks that NifSE can interact with. To understand the full scope of NIF blocks, see the Niflib Documentation.
Subcategories
This category has the following 14 subcategories, out of 14 total.
!
A
E
M
N
O
P
S
T
V
Pages in category "NifSE"
The following 147 pages are in this category, out of 147 total.
!
- Template:NifSE Example
- Template:NifSE NiAlphaProperty Type List
- Template:NifSE NiAlphaProperty Blend Functions
- Template:NifSE NiAlphaProperty Test Functions
- Template:NifSE NiAVObject Type List
- Template:NifSE NiCollisionObject Type List
- Template:NifSE NiExtraData Type List
- Template:NifSE NiExtraData Array Type List
- Template:NifSE NiExtraData Numerical Type List
- Template:NifSE NiMaterialProperty Type List
- Template:NifSE NiNode Type List
- Template:NifSE NiObject Type List
- Template:NifSE NiObjectNET Type List
- Template:NifSE NiProperty Type List
- Template:NifSE NiSourceTexture Type List
- Template:NifSE NiStencilProperty Type List
- Template:NifSE NiStencilProperty Face Draw Modes
- Template:NifSE NiStencilProperty Stencil Actions
- Template:NifSE NiStencilProperty Stencil Functions
- Template:NifSE NiTexturingProperty Type List
- Template:NifSE NiTexturingProperty Texture Slots
- Template:NifSE NiVertexColorProperty Type List
- Template:NifSE NiVertexColorProperty Lighting Modes
- Template:NifSE NiVertexColorProperty Vertex Modes
A
- NiAlphaPropertyGetBlendState
- NiAlphaPropertyGetDestinationBlendFunction
- NiAlphaPropertyGetSourceBlendFunction
- NiAlphaPropertyGetTestFunction
- NiAlphaPropertyGetTestState
- NiAlphaPropertyGetTestThreshold
- NiAlphaPropertyGetTriangleSortMode
- NiAlphaPropertySetBlendState
- NiAlphaPropertySetDestinationBlendFunction
- NiAlphaPropertySetSourceBlendFunction
- NiAlphaPropertySetTestFunction
- NiAlphaPropertySetTestState
- NiAlphaPropertySetTestThreshold
- NiAlphaPropertySetTriangleSortMode
- NiAVObjectAddProperty
- NiAVObjectClearCollisionObject
- NiAVObjectCopyCollisionObject
- NiAVObjectDeleteProperty
- NiAVObjectGetCollisionMode
- NiAVObjectGetCollisionObject
- NiAVObjectGetLocalRotation
- NiAVObjectGetLocalScale
- NiAVObjectGetLocalTransform
- NiAVObjectGetLocalTranslation
- NiAVObjectGetNumProperties
- NiAVObjectGetProperties
- NiAVObjectGetPropertyByType
- NiAVObjectSetCollisionMode
- NiAVObjectSetLocalRotation
- NiAVObjectSetLocalScale
- NiAVObjectSetLocalTransform
- NiAVObjectSetLocalTranslation
E
M
- NiMaterialPropertyGetAmbientColor
- NiMaterialPropertyGetDiffuseColor
- NiMaterialPropertyGetEmissiveColor
- NiMaterialPropertyGetGlossiness
- NiMaterialPropertyGetSpecularColor
- NiMaterialPropertyGetTransparency
- NiMaterialPropertySetAmbientColor
- NiMaterialPropertySetDiffuseColor
- NiMaterialPropertySetEmissiveColor
- NiMaterialPropertySetGlossiness
- NiMaterialPropertySetSpecularColor
- NiMaterialPropertySetTransparency
N
O
S
- NiSourceTextureGetFile
- NiSourceTextureIsExternal
- NiSourceTextureSetExternalTexture
- NiStencilPropertyGetFaceDrawMode
- NiStencilPropertyGetFailAction
- NiStencilPropertyGetPassAction
- NiStencilPropertyGetStencilFunction
- NiStencilPropertyGetStencilMask
- NiStencilPropertyGetStencilRef
- NiStencilPropertyGetStencilState
- NiStencilPropertyGetZFailAction
- NiStencilPropertySetFaceDrawMode
- NiStencilPropertySetFailAction
- NiStencilPropertySetPassAction
- NiStencilPropertySetStencilFunction
- NiStencilPropertySetStencilMask
- NiStencilPropertySetStencilRef
- NiStencilPropertySetStencilState
- NiStencilPropertySetZFailAction
T
- NiTexturingPropertyAddTextureSource
- NiTexturingPropertyDeleteTextureSource
- NiTexturingPropertyGetTextureCenterOffset
- NiTexturingPropertyGetTextureClampMode
- NiTexturingPropertyGetTextureCount
- NiTexturingPropertyGetTextureFilterMode
- NiTexturingPropertyGetTextureFlags
- NiTexturingPropertyGetTextureRotation
- NiTexturingPropertyGetTextureSource
- NiTexturingPropertyGetTextureTiling
- NiTexturingPropertyGetTextureTranslation
- NiTexturingPropertyGetTextureUVSet
- NiTexturingPropertyHasTexture
- NiTexturingPropertySetTextureCenterOffset
- NiTexturingPropertySetTextureClampMode
- NiTexturingPropertySetTextureCount
- NiTexturingPropertySetTextureFilterMode
- NiTexturingPropertySetTextureFlags
- NiTexturingPropertySetTextureRotation
- NiTexturingPropertySetTextureTiling
- NiTexturingPropertySetTextureTranslation
- NiTexturingPropertySetTextureUVSet
- NiTexturingPropertyTextureHasTransform