Meshes
The meshes within this mod (.nif) have all been created from scratch using the following process:
Model Creation
- Create a new model using 3ds Max.
How to use 3ds Max is an entirely different subject that won't be covered here. I will say that it looked rather intimidating at first (as a new user), but actually isn't that bad. I've managed to learn the basics within a week or so, it probably helps if you have some Photoshop experience.
(Optional) Modify material mappings (UVW Xform) to change textures, specifically how they appear on your model. - Export as .NIF (https://github.com/figment/max_nif_plugin/releases).
.NIF Creation
- Create a new .NIF using NifSkope (version set to 20.2.0.7 within settings).
- Insert block "BSXFlags".
Connect Points
- Insert block "BSConnectPoint::Parents" to enable snapping.
- Set "Num Connect Points" to change the number of connect points.
- Update the array by right clicking on "Connect Points", followed by "Array" > "Update".
You can modify the size of all arrays within NifSkope this way. - Add Connect Points and test in-game. The basics of configuring these is as follows:
The "Variable Name" allows you to group connect points, it tells the engine whether or not two points should be snapped together. You can also use the "-Dif" modifier to prevent a point snapping to itself. For example:
Your "Connect Point" variable is named "MyConnectPoint":
- MyConnectPoint will snap to MyConnectPoint as well as MyConnectPoint-Dif.
- MyConnectPoint-Dif will only snap to MyConnectPoint, not to MyConnectPoint-Dif.
Finally there are four variables which configure how the object is presented in-game:
P-WS-Rotation - Position of the object when the player holds it, after selecting it from the build menu (relative to crosshair). Also controls object position within the build menu icon.
P-WS-Origin - Not sure about this one. Vanilla foundation is set to bottom of object (-224).
P-WS-SinkMax - How far the object CAN be placed into the ground.
P-WS-SinkMin - How far the object HAS to be placed into the ground.
Open vanilla meshes to see which Connect Points are used by the game (i.e. P-Floor or P-Balcony01).
Import Model
- Open your previously exported model (preferably using a new NifSkope window).
- Copy "BSTriShape" and paste it into your new .nif.
Materials / Textures
- Insert block "BSLightingShaderProperty".
- Add the path that leads to your material within the "Name" property (right click > edit).
- Click on "BSTriShape" and go to "BSProperties".
- Enter the block number of "BSLightingShaderProperty" (left of it) to attach.
Collision
There are currently no tools available to create custom collisions, you'll have to copy vanilla ones which have roughly the same dimensions. The blocks are named bhkNPCollisionObject, those nested within a NiNode are probably most useful (you can copy the entire branch and then edit the transform to change the position of it).
Build Menu
There are two record types which are used to add a new category (FO4Edit).
FormId
Adds a new level/sub-category (see "WorkshopMenuMain" or "WorkshopMenu01Build"). This also requires a RecipeFilter at the top, without any attached objects (only an art object should be attached). Every other FormId or RecipeFilter should be placed after.
Keyword
Also known as a RecipeFilter. Constructible Objects are attached to this, which in turn displays them within the menu.
Category Icon
This relates to the menu FormId and allows you to attach an icon. It is basically a regular object, just not constructible (it pulls the model from a .nif, just like a static object).
Create an art object within FO4Edit and the RecipeFilter keyword.
Constructible Object
Contains the information about an object within the build menu.
Pickup/Drop Sound - Sound played when the player picks up or puts down the object.
Components - Required materials in order to build.
Created Object - Points to the actual object (i.e. Static in case of foundations).
Category - Point it towards a RecipeFilter, this will assign it to a category.
Transform
Configures the menu icon, like position and angle.
Static Object
This configures the actual object within the world. Use it to assign a .nif, change the name and modify navmesh geometry.
(there are other object records, static is used by this mod)...
5 comments
The meshes within this mod (.nif) have all been created from scratch using the following process:
Model Creation
How to use 3ds Max is an entirely different subject that won't be covered here. I will say that it looked rather intimidating at first (as a new user), but actually isn't that bad. I've managed to learn the basics within a week or so, it probably helps if you have some Photoshop experience.
(Optional) Modify material mappings (UVW Xform) to change textures, specifically how they appear on your model.
.NIF Creation
Connect Points
You can modify the size of all arrays within NifSkope this way.
The "Variable Name" allows you to group connect points, it tells the engine whether or not two points should be snapped together. You can also use the "-Dif" modifier to prevent a point snapping to itself. For example:
Your "Connect Point" variable is named "MyConnectPoint":
- MyConnectPoint will snap to MyConnectPoint as well as MyConnectPoint-Dif.
- MyConnectPoint-Dif will only snap to MyConnectPoint, not to MyConnectPoint-Dif.
Finally there are four variables which configure how the object is presented in-game:
P-WS-Rotation - Position of the object when the player holds it, after selecting it from the build menu (relative to crosshair). Also controls object position within the build menu icon.
P-WS-Origin - Not sure about this one. Vanilla foundation is set to bottom of object (-224).
P-WS-SinkMax - How far the object CAN be placed into the ground.
P-WS-SinkMin - How far the object HAS to be placed into the ground.
Open vanilla meshes to see which Connect Points are used by the game (i.e. P-Floor or P-Balcony01).
Import Model
Materials / Textures
Collision
There are currently no tools available to create custom collisions, you'll have to copy vanilla ones which have roughly the same dimensions. The blocks are named bhkNPCollisionObject, those nested within a NiNode are probably most useful (you can copy the entire branch and then edit the transform to change the position of it).
Build Menu
There are two record types which are used to add a new category (FO4Edit).
FormId
Adds a new level/sub-category (see "WorkshopMenuMain" or "WorkshopMenu01Build"). This also requires a RecipeFilter at the top, without any attached objects (only an art object should be attached). Every other FormId or RecipeFilter should be placed after.
Keyword
Also known as a RecipeFilter. Constructible Objects are attached to this, which in turn displays them within the menu.
Category Icon
This relates to the menu FormId and allows you to attach an icon. It is basically a regular object, just not constructible (it pulls the model from a .nif, just like a static object).
Create an art object within FO4Edit and the RecipeFilter keyword.
Constructible Object
Contains the information about an object within the build menu.
Pickup/Drop Sound - Sound played when the player picks up or puts down the object.
Components - Required materials in order to build.
Created Object - Points to the actual object (i.e. Static in case of foundations).
Category - Point it towards a RecipeFilter, this will assign it to a category.
Transform
Configures the menu icon, like position and angle.
Static Object
This configures the actual object within the world. Use it to assign a .nif, change the name and modify navmesh geometry.
(there are other object records, static is used by this mod)...
P.D. sry I made a mistake and posted it in the wrong place.