Difference between revisions of "Arcane University:Nifskope Weapons Setup"
(Added in some info on the NiStringExtraData block and the values used for various weapons.) |
(→Scabbard Model (Scb) - NiTriShape) |
||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
This guide will details all there is to know about setting up weapons models to be game-ready. | This guide will details all there is to know about setting up weapons models to be game-ready. | ||
− | This is a workflow-agnostic tutorial | + | This is a workflow-agnostic tutorial, focused on NifSkope. As long as your workflow allows you to export a custom model to a NIF containing only the geometry, you can follow along to get your weapon game-ready. |
− | As long as your workflow | ||
− | + | == General Considerations == | |
− | + | There are a few things to know before getting started: | |
− | + | Skyrim only supports a limited number of weapons variations: | |
− | = General Considerations = | + | * One-Handed |
− | + | ** Dagger | |
− | There | + | ** Sword |
− | Skyrim only | + | ** War Axe |
− | * | + | ** Mace |
− | ** | + | * Two-Handed |
− | ** | ||
− | ** | ||
− | ** | ||
− | * | ||
** Greatsword | ** Greatsword | ||
** Battleaxe | ** Battleaxe | ||
** Warhammer | ** Warhammer | ||
* Ranged | * Ranged | ||
− | ** | + | ** Bow |
− | ** | + | ** Crossbow |
* Special | * Special | ||
− | ** | + | ** Staff |
− | Anything you may see in mods are just models setup to look somewhat right (or not) as one of the above | + | Anything you may see in mods are just models setup to look somewhat right (or not) as one of the above types. |
− | Aside the gameplay | + | Aside the gameplay differences, the weapon type defines: |
* Where the weapon will go on the 3rd person model when sheathed | * Where the weapon will go on the 3rd person model when sheathed | ||
+ | * Where the player character will grip the model when holding it | ||
* Which animation set it will be using | * Which animation set it will be using | ||
* Which kind of impact it will create when hitting things (sounds and visuals) | * Which kind of impact it will create when hitting things (sounds and visuals) | ||
− | |||
− | If the last point (impacts) don't matter much here, the other 3 set the limitation | + | If the last point (impacts) don't matter much here, the other 3 set the limitation on how different your model can be from the target weapon type. |
− | |||
− | As such, it is important to know in advance which weapon type your weapon will | + | If the handle is too big, the player's hand will clip inside it. If the blade is too long, it may clip through the ground when sheathed. If a bow is too wide, it may obstruct player's view when aiming. As such, it is important to know in advance which weapon type your weapon will use. A good strategy is to use one of the vanilla weapons as a reference when modeling. |
+ | Another thing to keep in mind is that Skyrim supports special first person models, which may be higher quality than their world model/third person model, as it won't be used for cluttering, or when worn by NPCs. | ||
− | + | It is not mandatory to provide a different model for first person and third person, unless the first person model absolutely needs to have additional detail, but this is something to keep in mind when designing generic weapons that may be used in the hundreds by a level designer to clutter an armory. Unique weapons are safer to make with high detail, since they will only ever appear once in the game scene. | |
− | It is not mandatory to provide a different model for | ||
− | |||
− | |||
+ | == Pre-requisites == | ||
To follow this tutorial, you will need: | To follow this tutorial, you will need: | ||
− | * | + | * NifSkope |
* Skyrim Legendary Edition | * Skyrim Legendary Edition | ||
* The Creation Kit | * The Creation Kit | ||
* A way to export/convert a model's geometry from your modelling software to a NIF. | * A way to export/convert a model's geometry from your modelling software to a NIF. | ||
− | = Anatomy of a weapon NIF = | + | == Anatomy of a weapon NIF == |
− | + | === Inventory Position - BSInvMarker === | |
− | |||
− | |||
− | == Inventory Position - BSInvMarker == | ||
− | |||
In your inventory, your item will always be viewed from the positive y-axis. In order to change how it is viewed in the inventory, insert a BSInvMarker into the BSFadeNode, within the 'Extra Data List': | In your inventory, your item will always be viewed from the positive y-axis. In order to change how it is viewed in the inventory, insert a BSInvMarker into the BSFadeNode, within the 'Extra Data List': | ||
*First, create the BSInvMarker by right-clicking onto the BSFadeNode and using <code>Block > Insert > Bethesda > BSInvMarker</code>. | *First, create the BSInvMarker by right-clicking onto the BSFadeNode and using <code>Block > Insert > Bethesda > BSInvMarker</code>. | ||
Line 74: | Line 63: | ||
You cannot enter negative values in the fields, so make sure to start from negative values in Blender, since they will be made positive via the formula. If you do not have negative values to begin with, subtract 360 degrees again and again until you do. | You cannot enter negative values in the fields, so make sure to start from negative values in Blender, since they will be made positive via the formula. If you do not have negative values to begin with, subtract 360 degrees again and again until you do. | ||
− | == Metadata - BSXFlags = | + | === Metadata - BSXFlags === |
− | |||
− | |||
− | In order to make sure your weapon is sheathed in the correct position, you need to add a NiStringExtraData block to the BSFadeNode. This needs to have <code>Prn</code> as its name, and one of the values in the table below as its string data. This (in part) lets the game know where the weapon is sheathed and what kind of animations are used. If this block is not present in your nif, the weapon will likely show up at your feet. The following table shows which values are used | + | === Weapon Type - NiStringExtraData (Prn) === |
+ | In order to make sure your weapon is sheathed in the correct position, you need to add a NiStringExtraData block to the BSFadeNode. This needs to have <code>Prn</code> as its name, and one of the values in the table below as its string data. This (in part) lets the game know where the weapon is sheathed and what kind of animations are used. If this block is not present in your nif, the weapon will likely show up at your feet. The following table shows which values are used in vanilla Skyrim, and by which kind of weapons. | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
Line 87: | Line 75: | ||
| QUIVER || Arrows | | QUIVER || Arrows | ||
|- | |- | ||
− | | SHIELD || Shields, some | + | | SHIELD || Shields, some staves, torches |
|- | |- | ||
| WeaponAxe || (War/Hand)Axes | | WeaponAxe || (War/Hand)Axes | ||
Line 99: | Line 87: | ||
| WeaponMace || Mace | | WeaponMace || Mace | ||
|- | |- | ||
− | | WeaponStaff || Most | + | | WeaponStaff || Most staves |
|- | |- | ||
| WeaponSword || (One-handed) Swords | | WeaponSword || (One-handed) Swords | ||
− | |||
− | |||
|} | |} | ||
− | == Collision - bhkCollisionObject == | + | === Collision - bhkCollisionObject === |
+ | |||
+ | === Scabbard Model (Scb) - NiTriShape === | ||
− | + | The NiTriShape that is used for the scabbard needs to be called "<code>Scb</code>" in order for it to remain at the correct place, instead of moving with the weapon. | |
− | == Blood Lighting - NiTriShape == | + | === Blood Lighting - NiTriShape === |
− | == Blood Effects - NiTriShape == | + | === Blood Effects - NiTriShape === |
− | == Weapon Model - NiTriShape(s) == | + | === Weapon Model - NiTriShape(s) === |
− | = Example = | + | === Example === |
Latest revision as of 06:02, 3 December 2021
This guide will details all there is to know about setting up weapons models to be game-ready.
This is a workflow-agnostic tutorial, focused on NifSkope. As long as your workflow allows you to export a custom model to a NIF containing only the geometry, you can follow along to get your weapon game-ready.
General Considerations[edit]
There are a few things to know before getting started: Skyrim only supports a limited number of weapons variations:
- One-Handed
- Dagger
- Sword
- War Axe
- Mace
- Two-Handed
- Greatsword
- Battleaxe
- Warhammer
- Ranged
- Bow
- Crossbow
- Special
- Staff
Anything you may see in mods are just models setup to look somewhat right (or not) as one of the above types.
Aside the gameplay differences, the weapon type defines:
- Where the weapon will go on the 3rd person model when sheathed
- Where the player character will grip the model when holding it
- Which animation set it will be using
- Which kind of impact it will create when hitting things (sounds and visuals)
If the last point (impacts) don't matter much here, the other 3 set the limitation on how different your model can be from the target weapon type.
If the handle is too big, the player's hand will clip inside it. If the blade is too long, it may clip through the ground when sheathed. If a bow is too wide, it may obstruct player's view when aiming. As such, it is important to know in advance which weapon type your weapon will use. A good strategy is to use one of the vanilla weapons as a reference when modeling.
Another thing to keep in mind is that Skyrim supports special first person models, which may be higher quality than their world model/third person model, as it won't be used for cluttering, or when worn by NPCs.
It is not mandatory to provide a different model for first person and third person, unless the first person model absolutely needs to have additional detail, but this is something to keep in mind when designing generic weapons that may be used in the hundreds by a level designer to clutter an armory. Unique weapons are safer to make with high detail, since they will only ever appear once in the game scene.
Pre-requisites[edit]
To follow this tutorial, you will need:
- NifSkope
- Skyrim Legendary Edition
- The Creation Kit
- A way to export/convert a model's geometry from your modelling software to a NIF.
Anatomy of a weapon NIF[edit]
Inventory Position - BSInvMarker[edit]
In your inventory, your item will always be viewed from the positive y-axis. In order to change how it is viewed in the inventory, insert a BSInvMarker into the BSFadeNode, within the 'Extra Data List':
- First, create the BSInvMarker by right-clicking onto the BSFadeNode and using
Block > Insert > Bethesda > BSInvMarker
. - Increase the
Num Extra Data List
by one and refresh theExtra Data list
array. This will add an empty entry to theExtra Data list
array. - Insert the number of the BSInvMarker to this array. In vanilla nifs, the BSInvMarker appears to be first, before
BSX
orPRN
blocks, so you may need to reshuffle the numbers in the array to match this.
The BSInvMarker affects how the model is viewed in the inventory, thought the following fields:
- Zoom affects how large the item will appear - if it is too small in the inventory, increase this value.
- The three fields Rotation X, Rotation Y and Rotation Z each influence rotation of the item in the inventory. They are integers representing the number of radians*1000 turned around each respective axis. This is always clockwise when viewed from the positive side of the respective axis. To see how this looks in something like Blender, view it from the positive y axis, set the rotation mode to
ZYX Euler
, and use the following formula to determine the rotation in degrees for each axis:
rotation in degrees = -360 * field value / (2*pi*1000)
It is important to remember the - here, since the rotation in Blender is the opposite direction. If you have a rotation in Blender that you want to show in the inventory, use this formula (same settings, so ZYX Euler
rotation mode and viewed from the positive y-axis):
field value = -1000 * 2*pi* (rotation in degrees/360)
You cannot enter negative values in the fields, so make sure to start from negative values in Blender, since they will be made positive via the formula. If you do not have negative values to begin with, subtract 360 degrees again and again until you do.
Metadata - BSXFlags[edit]
Weapon Type - NiStringExtraData (Prn)[edit]
In order to make sure your weapon is sheathed in the correct position, you need to add a NiStringExtraData block to the BSFadeNode. This needs to have Prn
as its name, and one of the values in the table below as its string data. This (in part) lets the game know where the weapon is sheathed and what kind of animations are used. If this block is not present in your nif, the weapon will likely show up at your feet. The following table shows which values are used in vanilla Skyrim, and by which kind of weapons.
String Data | Used by |
---|---|
QUIVER | Arrows |
SHIELD | Shields, some staves, torches |
WeaponAxe | (War/Hand)Axes |
WeaponBack | Greatswords, warhammers, battleaxes |
WeaponBow | Bows, crossbows |
WeaponDagger | Daggers |
WeaponMace | Mace |
WeaponStaff | Most staves |
WeaponSword | (One-handed) Swords |
Collision - bhkCollisionObject[edit]
Scabbard Model (Scb) - NiTriShape[edit]
The NiTriShape that is used for the scabbard needs to be called "Scb
" in order for it to remain at the correct place, instead of moving with the weapon.