Fromsoftware's custom generator class. They are based on hkbManualSelectorGenerators and hardcoded to select child generator based on the player's TAE section. In addition, they include all hkbScriptGenerator functionality, automatically generating functions of the form [state name]_on[function type], if the enableScript hkparam is enabled. It supports all script generator function types.
CustomManualSelectorGenerators most commonly have the suffix _CMSG when they are used for their primary purpose as selector generators. When only their script generating functionality is used their naming is not so consistent. For instance the CMSG above Rolling_SM is called Rolling_CMSG as expected, however the CMSG above Move_Blend is called Move Selector even though its selection functionality is unused here and it functions solely as a script generator.
| Name | Type | Default | Description |
|---|---|---|---|
| variableBindingSet | reference | null | reference to a variableBindingSet |
| userData | int | 0 | Maps the generator to its onUpdate function in hks, must be unique for each state |
| name | string | “[name]_CMSG” | name of the CMSG |
| generators | reference list | a list of child generators, for CMSGs these are always hkbClipGenerators | |
| offsetType | offsetType | IdleCategory | Determines which TAE section type to use, see offsetType for used values |
| animId | int | animation ID of the CMSG | |
| animeEndEventType | animeEndEventType | FireIdleEvent | determines what happens when the animation ends, see animeEndEventType for used values |
| enableScript | bool | true | enables/disables hkbScriptGenerator]functionality |
| enableTae | bool | true | enables/disables the use of tae for the animation. |
| changeTypeOfSelection | enum | SELF_TRANSITION | |
| generatorChangedTransitionEffect | reference | null | overrides transition effect applied by the state machine at CMSG level |
| checkAnimEndSlotNo | int | -1 | |
| replanningAI | enable/disable | Enable |
Child object of an [havok_behavior_reference#hkbBlenderGenerator] which determines relative weight to other children, individual bone weights and root motion weight as well as referencing a child generator.
| Name | Type | Default | Description |
|---|---|---|---|
| variableBindingSet | reference | null | reference to a variableBindingSet |
| generator | reference | null | reference to a child generator |
| boneWeights | reference | null | reference to an hkbBoneWeightArray |
| weight | float | 1.0 | float which determines to what degree the child is blended in based on its proximity to the blendParameter hkparam of its parent hkbBlenderGenerator |
| worldFromModelWeight | float | 1.0 | sets root motion weight between 0 and 1, unaffected by blendParameter of parent hkbBlenderGenerator |
HkbVariables are an integral part of more complex behavior systems and serve to drastically reduce the work you do in hks. They are also incredibly versatile as they can be bound to any hkparam on any hkobject, which allows you to modify said values through hks.