Difference between revisions of "Category:NifSE"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>DragoonWraith
imported>DragoonWraith
Line 2: Line 2:


{{OBSE Plugin
{{OBSE Plugin
|Version=1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:2
|Version=1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:4
|InternalVer=0x0001002F (65583)
|InternalVer=0x0001004F (65615)
|Name=NifSE
|Name=NifSE
|Author=[[User:DragoonWraith|DragoonWraith]]
|Author=[[User:DragoonWraith|DragoonWraith]]
Line 11: Line 11:
# Unzip archive to <tt>Oblivion\Data\</tt> folder; ensure NifSE.dll is in <tt>Oblivion\Data\OBSE\Plugins\</tt> and that there is a <tt>Oblivion\Data\Meshes\ni\</tt> folder.
# Unzip archive to <tt>Oblivion\Data\</tt> folder; ensure NifSE.dll is in <tt>Oblivion\Data\OBSE\Plugins\</tt> and that there is a <tt>Oblivion\Data\Meshes\ni\</tt> folder.
|Download=
|Download=
* [http://www.tesnexus.com/downloads/file.php?id=21292 NifSE at TES Nexus]
* [http://code.google.com/p/nifse/ NifSE at Google Code] (through <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:4)
* [http://code.google.com/p/nifse/ NifSE at Google Code]
* [http://www.tesnexus.com/downloads/file.php?id=21292 NifSE at TES Nexus] (through <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:2)
|Source=[http://code.google.com/p/nifse/source/checkout NifSE SVN at Google Code]
|Source=[http://code.google.com/p/nifse/source/checkout NifSE SVN at Google Code]
|Discussions=
|Discussions=
* [http://forums.bethsoft.com/index.php?/topic/1114745-betarelzwipz-nifse-v10/ <nowiki>[BETA/RELz/WIPz]</nowiki> NifSE v1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:1]
* [http://forums.bethsoft.com/index.php?/topic/1114745-betarelzwipz-nifse-v10/ <nowiki>[BETA/RELz/WIPz]</nowiki> NifSE v1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:1 - <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">β</span>:4]
* [http://forums.bethsoft.com/index.php?/topic/1092017-alpha-nifse-v10-a11/ <nowiki>[Alpha]</nowiki> NifSE v1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">α</span>1.1-<span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">α</span>:6]
* [http://forums.bethsoft.com/index.php?/topic/1092017-alpha-nifse-v10-a11/ <nowiki>[Alpha]</nowiki> NifSE v1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">α</span>1.1-<span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">α</span>:6]
* [http://forums.bethsoft.com/index.php?/topic/1089336-alpha-nifse-v10/ <nowiki>[Alpha]</nowiki> NifSE v1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">α</span>1.0]
* [http://forums.bethsoft.com/index.php?/topic/1089336-alpha-nifse-v10/ <nowiki>[Alpha]</nowiki> NifSE v1.0 <span style="font-size:145%;font-family:Cambria,serif;font-style:italic;">α</span>1.0]

Revision as of 20:05, 20 January 2011



NifSE
Author(s)

DragoonWraith

Current Version 1.0 β:4 (GetPluginVersion returns 0x0001004F (65615))
Description

NifSE is an interface between OBSE and Niflib, allowing scripts to use Niflib functions to manipulate 3D mesh files during runtime.

Installation
  1. Download alpha from Google Code (see below).
  2. Unzip archive to Oblivion\Data\ folder; ensure NifSE.dll is in Oblivion\Data\OBSE\Plugins\ and that there is a Oblivion\Data\Meshes\ni\ folder.
Download
Source Code

NifSE SVN at Google 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

N

O

P

Pages in category "NifSE"

The following 147 pages are in this category, out of 147 total.