Reyhard/Sandbox/Character Gear Creation/Headgear/Asset Preparation – User

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
Line 100: Line 100:
=== Creating colliders ===
=== Creating colliders ===
First step towards creating proper collider will be making of a new object, which should receive one of the [[Arma Reforger:FBX Import#Collider shape|colliders prefixes]] (in this case '''UTM_''' prefix was used). For instance, sometimes it is feasible to create nice collider out of regular mesh by removing all unnecessary elements and then [https://docs.blender.org/manual/en/latest/modeling/modifiers/generate/decimate.html decimating it] below ~150 faces. Other option is to create mesh from scratch which shouldn't be that big task in case of helmet but it might be bit more time consuming so choice is up to creator.
First step towards creating proper collider will be making of a new object, which should receive one of the [[Arma Reforger:FBX Import#Collider shape|colliders prefixes]] (in this case '''UTM_''' prefix was used). For instance, sometimes it is feasible to create nice collider out of regular mesh by removing all unnecessary elements and then [https://docs.blender.org/manual/en/latest/modeling/modifiers/generate/decimate.html decimating it] below ~150 faces. Other option is to create mesh from scratch which shouldn't be that big task in case of helmet but it might be bit more time consuming so choice is up to creator.
[[File:armareforger-new-headgear-helmet-firegeo.gif]]


In both cases, here are few things to consider:
In both cases, here are few things to consider:
Line 106: Line 108:
** It is not recommended to use exact thickness of the helmet - instead it is enough to use material with predefined thickness
** It is not recommended to use exact thickness of the helmet - instead it is enough to use material with predefined thickness
* [[Arma Reforger:FBX Import#Collider shape|UTM (Trimeshes) colliders]] can be used
* [[Arma Reforger:FBX Import#Collider shape|UTM (Trimeshes) colliders]] can be used
Once collider is done, it will be necessary to connect it to one of the existing colliders. Due to nature of colliders, they '''don't support skinning''' and they have to be parented to bone via '''[https://docs.blender.org/manual/en/latest/scene_layout/object/properties/relations.html#relations Relations]'''


==== Setting relations: Using Make Parent ====
==== Setting relations: Using Make Parent ====
 
Any object can be quite easily parented via '''[https://docs.blender.org/manual/en/latest/scene_layout/object/editing/parent.html#bone-parent Make Parent]''' action. To do so, perform following steps:
* <nowiki>https://docs.blender.org/manual/en/latest/scene_layout/object/editing/parent.html#bone-parent</nowiki>
* Select '''collider object'''
** Select collider object
* Select '''Armature''' as second object with Left {{Controls|LShift|LMB}}combo
** Select as second object Armature with {{Controls|LMB}}
* Switch to '''Pose Mode''' with both objects selected
** Switch to edit mode
* Select '''Head''' bone
** Select head bone
** Tip: you can turn on bone names for easier navigation!
** Switch to pose mode
* Open [https://docs.blender.org/manual/en/latest/interface/controls/templates/operator_search.html#menu-search Menu Search] ( {{Controls|Tab}} using [https://docs.blender.org/manual/en/latest/interface/keymap/industry_compatible.html#general Industry Compatible Keymap]  )
** Select Head bone
** Search for '''Make Parent''' &  select it
*** Tip: you can turn on bone names for easier navigation!
** Select '''Bone''' in '''Set Parent To''' menu
** Open [https://docs.blender.org/manual/en/latest/interface/controls/templates/operator_search.html#menu-search Menu Search] ( {{Controls|Tab}} using [https://docs.blender.org/manual/en/latest/interface/keymap/industry_compatible.html#general Industry Compatible Keymap]  )
** In '''Make Parent''' menu in bottom left corner select '''Keep Transform''' option
*** Search for '''Make Parent''' &  select it
[[File:armareforger-new-headgear-relation-action.gif]]


==== Setting relations: Using Relations tab ====
==== Setting relations: Using Relations tab ====
Line 125: Line 128:
** Reposition collider to correct location
** Reposition collider to correct location
* If collider is suddenly very small, make sure that scale of the armature is correct
* If collider is suddenly very small, make sure that scale of the armature is correct
[[File:armareforger-new-headgear-relation-manual.gif]]


=== Creating material ===
=== Creating material ===

Revision as of 17:31, 1 August 2023

Mesh Preparation

General

When it comes to character gear, you might notice that default rotation of character is different compared to other assets. This is caused by the fact, that in game animations are created using motion capture & Motion Builder software, which expects different orientation that the game.

It is no longer necessary to rotate equipment by 180 degrees - keep in mind though that Character_Template.FBX & Head_Template.FBX have orientation set in a way, which allows to use this model in creation of animations in Motion Builder or similar software.

Positioning of helmet without any reference points is quite tricky and that's why it might be handy to load some reference model. To do so, perform following steps:

  • Import HeadSize_Template.fbx into scene with your model
    • This special contains all vanilla heads available molded into one entity - with this you can ensure that there will be no clipping with any of the existing models
  • Adjust position of the helmet and straps so it fit that universal head

If everything went fine, you should end up with something like this:

armareforger-new-headgear-head-template.png

Once you verified that helmet model doesn't need more adjustments, delete HeadSize_Template mesh from the scene since it will be no longer necessary.

Rigging

After properly positioning model, it is time for getting skeleton in and then rigging the asset. Sample Helmet is an asset imported from A3, so it already has some skinning on it, which in case of helmets will be fully usable but if you have some fresh asset, you can consider two options, which are described below.

In any case, first step on to do list will be importing of skeleton and empty bones from template file.

Importing skeleton

Armature and Empty Objects necessary for equipment to be animated in game

Importing skeleton into scene where you have your helmet can be done in few simple steps:

  • Keep your Blender instance with helmet open
  • Download & then open Character_Weights_Template.blend file in 2nd instance of Blender
  • Switch to Object Mode
  • Unhide Memory Points collection and select all empty objects over there (there should be six of them in total)
    • Tip: You can select multiple empty objects Left Shift modifier
  • Copy all those objects with Ctrl + C combination
  • Switch over to Blender instance containing your helmet and paste objects into Blender with Ctrl + V shortcut

After that, verify that in primary instance of the Blender (the one with helmet model) following things are true:

  • Make sure that you also imported empty objects (from Memory Points collections)
  • Armature object is called Armature - keep it this way!
  • It is important that model contains only Armature and empty objects from the template!
    • In total, 163 bones/empty objects (156 bones and 6 dummy objects) should be present when model is imported into Workbench - see note in Importing model section

armareforger-new-headgear-skeleton-full.png

Skinning asset

Once skeleton is present in the scene, it is possible to start process of skinning mesh to the bones. This can be using one of tw

Transfer weights

Currently, only Basebody_Male_Head_01.xob has its face skinned and there are no facial animations yet it in-game, so it's rather tricky to verify if weights are working correctly. In any case, weights transfer is

In this article, Enfusion links are used. With those links it is possible to open specific resource just by simply clicking on that link. Enfusion links has to be manually activated in Workbench options (Workbench -> Options -> Workbench -> Register "enfusion://" protocol) before it can be used]

In any case, weights transfer can be done in following steps:

  • Copy reference mesh (f.e. Character_Weights_Template.blend can be used) to the scene with helmet
  • Select Helmet mesh with Left Mouse Button
    • You might want to separate chin strap to separate object and keep helmet hard shell assigned to Head vertex group
  • Select reference mesh
  • Switch to Weight Paint mode
  • From the menu in top left corner, select Weights -> Transfer Weights option
    • In top left corner of the viewport, there should be now Transfer Mesh Data menu which you can expand
    • Change Source Layers Selection to By Name
  • Click with Left Mouse Button somewhere in the viewport to confirm the transfer
Tip: You can also use Sample Helmet as source object for weight transfer.

Manual skinning

Vertex Groups present in Object_LOD0

If you don't want to use transfer weight tool or you quickly want to test if helmet is working in game, then you can skin the helmet manually. To do so, perform following actions:

  • Select helmet model (in this case Object_LOD0) and switch to Object Mode
  • Navigate to Data tab in Properties window and locate Vertex Group section
  • Add appropriate Vertex Groups for your helmet via + button (1)
    • Once vertex group is added, you can change its name by double clicking on it with Left Mouse Button

Now, depending whether you want to simply assign everything to one bone (for instance when you are doing a hat or you don't want to skin chin strap to chin yet), you can either chose one of the options:

Simple skinning

As title suggest, this skinning is very simple - whole mesh will be basically skinned to single bone - Head. To do

  • Add just one Head vertex group via + button (1) located at the right side
  • Switch to Edit Mode while having Object_LOD0 selected and select all faces with i.e. Ctrl + A shortcut
  • Click on Head vertex group and then click on Assign button
Tip: Alternatively, if you are using model from A3, you can also try to renaming Vertex Groups so they match Arma Reforger bones
Weight Painting

Using weight paint allows you to skin influences between maximum 4 bones. In order to achieve that, perform following actions:

  • Switch to Weight Paint mode
  • Create vertex groups for things you want to skin - in case of helmet with chin strap, FacialJaw & Head bone would be sufficient
  • Select one of the vertex groups and starts painting weights with Left Mouse Button
Vanilla helmets are right now only using one bone - Head - for whole model (including chin strap) although that might change in the future.

Armature modifier

Once asset is skinned with one of the above methods, there is one more thing to do in order to link vertex groups with skeleton and thus achieve animated asset:

  • In Modifiers tab, add new Armature modifier via Add Modifier (1) button
    • In Object property, select Armature as object to deform with

armareforger-new-headgear-aramture-modifier.png

After that, you could quickly verify if asset is skinned by selecting Armature and switching to Pose Mode. In this mode you can try to move bones and see if mesh is following them.

Colliders

Helmets in Arma Reforger are using actual colliders for protection of the character so its quite important to set it correctly.

Creating colliders

First step towards creating proper collider will be making of a new object, which should receive one of the colliders prefixes (in this case UTM_ prefix was used). For instance, sometimes it is feasible to create nice collider out of regular mesh by removing all unnecessary elements and then decimating it below ~150 faces. Other option is to create mesh from scratch which shouldn't be that big task in case of helmet but it might be bit more time consuming so choice is up to creator.

armareforger-new-headgear-helmet-firegeo.gif

In both cases, here are few things to consider:

  • Shape should fit the helmet
  • Should be fairly simple
    • It is not recommended to use exact thickness of the helmet - instead it is enough to use material with predefined thickness
  • UTM (Trimeshes) colliders can be used

Once collider is done, it will be necessary to connect it to one of the existing colliders. Due to nature of colliders, they don't support skinning and they have to be parented to bone via Relations

Setting relations: Using Make Parent

Any object can be quite easily parented via Make Parent action. To do so, perform following steps:

  • Select collider object
  • Select Armature as second object with Left ⇧ Shift + Left Mouse Buttoncombo
  • Switch to Pose Mode with both objects selected
  • Select Head bone
    • Tip: you can turn on bone names for easier navigation!
  • Open Menu Search ( ↹ Tab using Industry Compatible Keymap )
    • Search for Make Parent &  select it
    • Select Bone in Set Parent To menu
    • In Make Parent menu in bottom left corner select Keep Transform option

armareforger-new-headgear-relation-action.gif

Setting relations: Using Relations tab

  • Create a new object and in Relations tab set relation to Head
    • Reposition collider to correct location
  • If collider is suddenly very small, make sure that scale of the armature is correct

armareforger-new-headgear-relation-manual.gif

Creating material

  • Perform research - try to find thickness and density of material
  • Create new inherited material - usage of one of the existing materials is recommended
    • This way, you will inherit for instance correct particle effects, sounds and decals
    • In vanilla game those visual & sound effects are still being worked on (0.9.9)
  • Fill in those values to that new material and then adjust Kinetic Resistance so it matches desired protection level
    • You can use following spreadsheet for those calculations

Materials & Layer Preset

  • Collider should FireGeo Layer Preset
  • UCX or simple shapes are recommended
  • Use previously created material or one of the existing gamemats from game, which matches ballistic properties of your helmet

Creating Item variant

  • Make copy of your helmet (FBX/Blend) and open it
  • Remove skeleton and all empty objects
  • Modify model of helmet so it appears like lying on flat surface
    • For instance, straps can be deformed so they are resting on surface
  • No skeleton needed
  • Collider can be even simpler shape, but it is also possible to reuse previously created one

Importing model

  • Make sure that Export skinning option is checked and reimport the model via Reimport resource button
  • Make sure that you have 163 bones in total
    • In Details tab, you can find current amount of bones and dummies in Bones section. First number represents amount of bones and second, number of dummies. By default, bones which are not affecting any mesh (there is no Vertex Group representing