Kenshi
Not enough ratings
MODガイド アニメーション設定編
By Lucius
主にFCSのアニメーション設定を説明しています。
   
Award
Favorite
Favorited
Unfavorite
Kenshiのアニメーション管理方法について
  • Kenshiのアニメーションは、原則としてString IDではなくNameで管理しています。
    ANIMATIONやCOMBAT_TECHNIQUEのNameが重複した場合は、1つしか認識しません。
    また、施設使用時のアニメーションやクロスボウのリロードアニメーションは、ゲームデータ上String IDで紐づけしますが、ゲーム実行中は名前で紐づきます。

  • disabledをTrueにすると使用不可になります。
    アニメーションMODの競合が他の方法で解決できないときに使います。


戦闘アニメーション(COMBAT_TECHNIQUE)
  • 共有データとなっており、全てのCOMBAT_TECHNIQUEデータが全てのキャラクターに適用されます。


人型キャラクターのアニメーション(ANIMATION)
  • こちらも共有データとなっており、全てのANIMATIONデータが全ての人型キャラクターに適用されます。


動物キャラクターのアニメーション(ANIMAL_ANIMATION)
  • ANIMAL_CHARACTERごとに設定が必要です。

  • ANIMAL_ANIMATIONのNameは、ANIMAL_CHARACTERのanimationsの中で重複しなければ問題ありません。

  • 一部のアニメーションは、ANIMATIONと同名にしないと再生できません。
アニメーションの適用
キャラクターにアニメーションを適用する方法は2種類です。


1. メインskeleton
mesh単位にアニメーションを適用します。
meshファイルにリンク先のskeletonファイル名が設定されています。

メリット
  • 待機アニメーションを追加できる
  • MOD種族用のパッチMODは基本的に不要

デメリット
  • 同じ方向性のMODが競合する
  • 競合を解消するには、メインskeletonのマージが必要になる


2. 追加skeleton
種族またはキャラクター単位にアニメーションを適用します。

メリット
  • 競合しにくい
  • メインskeletonのアニメーションであれば簡単にオーバーライドできる

デメリット
  • MOD種族用のパッチMODが必須
  • 追加skeletonのアニメーションを別の追加skeletonでオーバーライドするには、工夫が必要
アニメーションの分類
用途や条件により以下に分類できます。
  • 待機アニメーション
  • 移動アニメーション
  • すり足移動・ストレイフアニメーション
  • オーバーレイアニメーション
  • 作業アニメーション
  • 怯みアニメーション
  • 攻撃アニメーション
  • 防御アニメーション
  • 回避アニメーション
  • 特別なアニメーション
待機アニメーション
必須条件
  • weather type:WA_NONE
  • layer:overlay以外 ※人間はall(すり足移動アニメーションはupper)、動物はlowerを推奨
  • idle:True

有効な設定項目
  • being carried ※仕様上、Trueは使用不可
  • carrying left ※注意事項あり。詳細は後述
  • carrying right ※仕様上、Trueは使用不可
  • category
  • has weapon L ※YESの挙動についてはFCS:ANIMATION(条件)を参照
  • has weapon R
  • stealth mode
  • leg damage関連
  • katanas等
  • is combat mode ※YESはすり足移動アニメーションのみ
  • idle chance
  • idle time max
  • idle time min

以下は無効
  • unarmed ※FCS:ANIMATION(武器カテゴリ)を参照


通常待機アニメーション
キャラクターエディターで選択可能にするには、has weapon Lとhas weapon Rの両方をNOにします。

通常待機アニメーションは、CHARACTER_APPEARANCEのidle stanceに保存されますが、ANIMATIONが無効または存在しない場合は、動物と同様に待機アニメーションをランダム抽選します。
ランダム化は画期的かもしれませんが、担ぎ上げ中は後述の問題を引き起こすので、ランダム化しない方がいいです。


追加skeletonの注意点
ポートレートは追加skeletonに対応しておらず、アニメーションを新規追加するとポートレートに正しく描画されません。
また、追加skeletonでアニメーションをオーバーライドした場合、ポートレートにはオーバーライド前(メインskeleton)のアニメーションで描画されます。
(シーンがメインと異なっており、ポートレートのシーンで追加skeletonをリンクしていないのが原因と推測)


carrying leftの注意点
待機アニメーションの抽選は、carrying left(being carriedとcarrying rightも)を無視しますが、これらが現在の状態と不一致だと再抽選されます。

再抽選の度に異なるアニメーションが選択されると震えてしまうので、条件を排他的にして、武器カテゴリごとに1種類だけとなるようにしてください。

武術はidle chanceを調整し、他の武器カテゴリ用のアニメーションが選択されないようにすると震えを防止できます。

どうしても武器カテゴリごとに複数種類のアニメーションを用意したい場合は、carrying leftがFalse版とTrue版をそれぞれ用意することで震えを一瞬だけにできます。
移動アニメーション
layerをlowerとupperに分けて作成します。
水泳はlayerを分割できないので、allで作成します。
また、動物はlowerで作成します。

各種設定とキャラクターの状態に応じて各アニメーションのウェイトを計算してブレンドした結果が再生されます。
移動速度によっては歩きと小走りが混ざったアニメーションになったり、負傷具合によってはやや足を引きずったアニメーションになったりします。


lower
必須条件
  • weather type:WA_NONE
  • layer:lower
  • idle:False
  • move speed:0以外

track exclusionは以下を推奨
  • delete below waist:False
  • delete body head:True
  • delete L arm:True
  • delete R arm:True
  • delete weapons:True

有効な設定項目
  • category
  • is combat mode ※YESはすり足移動アニメーションのみ
  • stealth mode
  • leg damage関連
  • max speed
  • min speed
  • move speed

以下は無効
  • being carried
  • carrying left
  • carrying right
  • has weapon L
  • has weapon R
  • katanas等


upper、all(水泳)
必須条件
  • weather type:WA_NONE
  • layer:upper ※水泳はall
  • idle:False
  • move speed:0以外

track exclusionは以下を推奨
  • delete below waist:True ※水泳はFalse
  • delete body head:False
  • delete L arm:False
  • delete R arm:False
  • delete weapons:False

有効な設定項目
  • being carried ※仕様上、Trueは使用不可
  • carrying left
  • carrying right ※仕様上、Trueは使用不可
  • category
  • has weapon L ※YESの挙動についてはFCS:ANIMATION(条件)を参照
  • has weapon R
  • is combat mode ※YESは不可
  • stealth mode
  • leg damage関連
  • max speed
  • min speed
  • move speed
  • katanas等

以下は無効
  • unarmed ※FCS:ANIMATION(武器カテゴリ)を参照
すり足移動・ストレイフアニメーション
すり足移動アニメーション
戦闘中の静止・前進・後退で使用します。

layerをlowerとupperに分けて作成します。
動物はlowerで作成します。

少し特殊な仕様になっており、lowerは移動アニメーション、upperは移動速度の影響を受ける待機アニメーションです。
ただし、upperはポーズ固定です。(再生位置が0固定)


lower
必須条件は、移動アニメーションに加えて以下の通り
  • 戦闘中になるので、is combat modeはYES
    動物は戦闘中とそれ以外で分ける必要がなければEITHER
  • 後退アニメーション用にmin speedやmove speedがマイナスになっているデータが必要


upper
必須条件は、待機アニメーションに加えて以下の通り
  • 戦闘中になるので、is combat modeはYES
  • speed関連はバニラの値を推奨
    • max speed:99
    • mim speed:-99
    • move speed:0 ※待機アニメーションの必須条件
    ちなみに「sword ready (carry)」は値の範囲が狭いので、担ぎ上げ中は少し奇妙なすり足移動になっています。


武術用のアニメーションについて
他のアニメーションと同様にunarmedが無効ですが、武術の場合、has weapon RはYESよりもEITHERを優先するようになっています。
バニラはこの仕様を利用して「MA idle1」をEITHER、その他をYESにすることで、武術のときは「MA idle1」のウェイトが高くなるようにしています。



ストレイフアニメーション
戦闘中の横移動で使用します。

人間はstrafe lowerで固定です。upperはすり足移動アニメーションと同様

動物は以下の条件になります。
  • weather type:WA_NONE
  • layer:overlay以外
  • idle:False
  • move speed:0
  • strafe speed max:0より大きい
strafe animに設定した場合は無条件でストレイフアニメーションになります。
ただし、有効なアニメーションは1つのみでanimationsの昇順が優先です。
作業アニメーション
機械の操作タスク等は以下が必須条件
  • weather type:WA_NONE
  • layer:overlay以外
  • idle:False
  • move speed:0
  • strafe speed max:0


ノード
作業アニメーションは、設備のコリジョンを無視して再生できますが、解除した瞬間にめり込んでいたキャラクターがはじき出されてしまいます。
これを防止するため、ノードでアニメーションの再生地点を制御します。

ノードの設定方法は、こちらのガイドを参照


トレーニングアニメーション
special toolは無効です。
また、SKILL_ATTACK以外は手に武器を装備できません。
この仕様により、武器スキルや近接防御のトレーニングはエア素振りしかできません。


睡眠アニメーション
気絶中に再生するとplay speedの設定を無視して常に0.1倍速になります。
また、睡眠中にセーブ&ロードすると気絶扱いで0.1倍速になります。
この不整合を回避するため、睡眠アニメーションのplay speedは0.1を推奨します。


檻のアニメーション
以下は監専用の設定です。また、作業者ではなく囚人のアニメーションになります。
  • animation dazed
  • animation KO
  • animation lockpick
  • animation medic
オーバーレイアニメーション
人間のみ使用可能です。

以下の種類があります。
  • 担ぎ上げアニメーション
  • 負傷アニメーション
  • 天候アニメーション


担ぎ上げアニメーション
carrying left arm onlyで固定


負傷アニメーション
部位の残HP率に応じてLOCATIONAL_DAMAGEのpain animに設定したアニメーションを再生します。

必須条件
  • weather type:WA_NONE
  • layer:overlay

以下の設定が有効です。
  • uses left arm
  • uses right arm

左腕故障時のフォールバック
左腕が使えない状態になると自動的に右腕版へフォールバックできます。
  • pain animにuses left armがTrueのANIMATIONを設定
  • uses right armがTrueかつNameの末尾に「-R」が付いたANIMATIONを作成 ※pain animへの追加は不要


天候アニメーション
必須条件
  • weather type:WA_NONE以外

以下の設定が有効です。
  • uses left arm
  • uses right arm
怯みアニメーション
必須条件
  • weather type:WA_NONE
  • layer:overlay以外
  • idle:False
  • move speed:0
  • strafe speed max:0
  • stunmbles:1つ以上

また、以下の設定が有効です。
  • category
  • has weapon L
  • has weapon R
  • is combat mode
  • stealth mode
  • leg damage関連
  • max speed ※999推奨
  • min speed ※-999推奨
  • big stumble
  • chance
  • stumble from ※FRONTとREARのみ有効
防御アニメーション
layerをlowerとupperに分けて作成します。


lower
すり足移動と共通です。従ってANIMATIONデータを使用します。


upper
暗黙的に下半身のトラックが除去されます。(delete below waistがTrueと同じ扱い)

必須条件
  • is blockはTrue
  • is dodgeはFalse
  • is stumble dodgeはFalse

また、以下の設定が有効です。
  • katanas等 ※skill category animation overrideではなくskill categoryで判定します
  • attack direction 1


attack direction
攻撃側のattack directionに応じて、防御側に適切なattack directionを用意しないと防御できません。
  • 後方以外からの攻撃
    攻撃側と同じattack directionが必要です。

  • 後方からの攻撃
    • CUT_DOWNWARD:CUT_REAR_DOWNWARD
    • CUT_RIGHT:CUT_REAR_RIGHT
    • CUT_LEFT:CUT_REAR_RIGHT
    • それ以外は攻撃側と同じ


防御成否の判定について
  • 防御成否の判定はアニメーション抽選前に行います。
    防御失敗になると間違ったattack directionが選択されます。

  • 防御成功率は最低5%、最大95%です。
    相手が人間かつ武術の場合は、防御側の素の武術に応じて0.5~1.1倍の補正がかかります。
    ※設定ミスの疑いがあり、武術が0.925以下なら0.5倍、1.135以上なら1.1倍になります。

  • 攻撃が遅い場合(ビークシングなど)は、攻撃発生前に再抽選することがあります。

  • アニメーションを約50%再生しないと防御できないため、防御速度が遅いと間に合いません。
攻撃アニメーション
相手を追尾するように動きます。


AoE(攻撃範囲)について
発生ポイントはキャラクターの座標に依存し、ボーンは関係ありません。

範囲は以下の要素が関係します。
  • attack direction
  • WEAPONのlength
  • RACEのpathfind footprint radius
  • scale ※動物のみ

大きさは以下の通り
  • 奥行
    WEAPONのlengthで決まります。

  • 横幅
    attack directionとRACEのpathfind footprint radiusで決まります。
    • CUT_RIGHTとCUT_LEFT以外
      RACEのpathfind footprint radiusで決まります。
      移動しやすくするためにpathfind footprint radiusを下げるとAoEが狭くなります。

    • CUT_RIGHTとCUT_LEFT
      固定(3~4人分くらい)

  • 縦幅
    attack directionで決まります。
    • CUT_RIGHTとCUT_LEFT以外
      固定

    • CUT_RIGHTとCUT_LEFT
      固定ですが、他よりも狭いです。(1/3ぐらい)
動物はscaleに応じて範囲を拡縮します。
特別なアニメーション
以下のアニメーションはハードコーディングされているため、削除やリネームは禁止です。

  • aimH
    クロスボウの構えアニメーション
    共通のため、専用の構えアニメーションは不可

  • bowing
    崇拝タスクのアニメーション

  • breathing noarms
    呼吸アニメーション

  • carry me
    担がれた状態のアニメーション

  • carrying left arm only
    担ぎ上げ状態のアニメーション

  • chop down static
    処刑タスクのアニメーション

  • combatstance
    砲台の構えアニメーション
    共通のため、専用の構えアニメーションは不可

  • crawl use
    うつ伏せ時の治療タスクやピッキングタスクのアニメーション

  • eat
    捕食タスクのアニメーション

  • head turning
    NPCがプレイヤーを注視する用のアニメーション

  • idle_stand_guard, idle_stand_normal, idle_stand_timid
    外見がランダムなNPCのデフォルト待機アニメーション
    性格で決定されます。
    PT_BRAVE:idle_stand_guard
    PT_FEARFUL:idle_stand_timid
    その他の性格:idle_stand_normal

  • knockout
    ステルスKOタスクのアニメーション

  • medic
    治療タスクやピッキングタスク、建築タスクなどのアニメーション

  • reload 1 phase
    クロスボウのリロード中のデフォルトアニメーション

  • shoulder lift B
  • shoulder lift left
    キャラクターを担ぐ、下す際のアニメーション

  • sleeponfloor
    地面に寝るタスクのアニメーション

  • squat T
    しゃがみ、立ち上がり用のアニメーション
    立ち上がりアニメーションは、しゃがみアニメーションの逆再生です。

  • stand 1
    収監時のデフォルトアニメーション

  • standing up 3
    うつ伏せからの起立アニメーション

  • stonemine
    ドア破壊タスクなどのアニメーション
    動物は攻撃アニメーションを再生するので、このアニメーションの適用は不要です。
    また、施設使用時のデフォルトアニメーションでもあります。

  • strafe lower
    人間のストレイフアニメーション

以下はキャラクターエディター用のアニメーションです。
ゲームデータには存在せず、.skeletonのアニメーション名を直接指定しています。
  • neck set
    首の前後

  • postures
    姿勢

  • shoulder set
    肩の上下
FCS:ANIMATION
  • reverse looping
    効果なし

  • anim name
    .skeletonファイルのアニメーション名を指定

  • disabled
    ANIMATIONデータを無効化するかどうかを指定

  • disables movement
    アニメーション再生中にプレイヤー操作による移動命令を無効化するかどうかを指定

  • is action
    他のアニメーションの影響を無効にするかどうかを指定

  • layer
    アニメーションのレイヤーを指定
    • lower
    • upper
    • all
    • overlay

  • loop
    ループ再生の有無を指定

  • normalize
    weightを正規化するかどうかを指定

  • play speed
    再生速度を指定

    マイナスにすると逆再生になります。

  • relocates
    アニメーションで移動した場合に元の位置に戻すかどうかを指定

  • synch offset
    同期再生の開始位置を0~1の範囲で指定
    ※synchsがTrueのみ有効

  • synchs
    同期再生の対象かどうかを指定

    主に移動アニメーションのlowerとupperを同期して再生する目的で使用します。

  • idle chance
    待機アニメーションの相対的な抽選確率を指定

  • idle time max、idle time min
    待機アニメーションの再生時間の最大値と最小値を指定

    待機アニメーションの抽選時に再生時間をランダムに決定します。

  • big stumble
    大怯みかどうかを指定

    Trueは大怯み、Flaseなら小怯みになります。
    また、大怯みと小怯みは、被ダメージ量と怯み耐性で判定します。
    怯み耐性の最大値は、stumble damage max * damage multiplierになります。
    バニラだと打たれ強さが100なら52ダメージ超えで大怯みになります。

  • chance
    怯みアニメーションの相対的な抽選確率を指定

  • stumble from
    被弾方向を指定
    ※FRONTとREARのみ有効

  • events
    サウンドの再生タイミングを指定 ※値はパーセント

    アニメーションではなく設備の機能に紐づける場合は、BUILDING_FUNCTIONALITYのanimation eventsで設定します。
FCS:ANIMATION(track exclusion, overrides)
特定のボーンに対してアニメーショントラックの除去やポーズの優先設定を行います。
ANIMATION_FILEのpreprocessをTrueにした.skeletonファイルが対象です。
「base animations」はこのために用意されており、変更は禁止です。

また、preprocessをTrueにしても動物のアニメーションに対しては効果がありません。
※CTD防止効果はあります。

track exclusion
設定項目と除去対象のボーンは以下の通りです。
  • delete below waist
    • Bip01
    • Bip01 Pelvis
    • Bip01 R Thigh
    • Bip01 L Thigh
    • Bip01 R Calf
    • Bip01 L Calf
    • Bip01 R Foot
    • Bip01 L Foot
    • Bip01 R Toe0
    • Bip01 L Toe0

  • delete body head
    • Bip01 Spin
    • Bip01 Spine1
    • Bip01 Spine2
    • Bip01 Neck
    • Bip01 Head

  • delete L arm
    • Bip01 L Clavicle
    • Bip01 L UpperArm
    • Bip01 L Forearm
    • Bip01 L Hand

  • delete R arm
    • Bip01 R Clavicle
    • Bip01 R UpperArm
    • Bip01 R Forearm
    • Bip01 R Hand

  • delete root
    • Bip01

  • delete spine0
    • Bip01 Spine

  • delete tail
    人間はBip01 Tail等を持たないため不要

  • delete weapons
    • Bip01 Prop1
    • Bip01 Prop2

overrides
ボーンをオーバーライドすると他のアニメーションによる変化が無効になります。

設定項目とオーバーライド対象のボーンは以下の通りです。
  • override head
    • Bip01 Neck
    • Bip01 Head

  • override L arm
    • Bip01 L Clavicle
    • Bip01 L UpperArm
    • Bip01 L Forearm
    • Bip01 L Hand
    • Bip01 Prop1

  • override R arm
    • Bip01 R Clavicle
    • Bip01 R UpperArm
    • Bip01 R Forearm
    • Bip01 R Hand
    • Bip01 Prop2
FCS:ANIMATION(条件)
  • weather type
    天候の影響を指定
    ※WA_NONE以外にすると待機や移動アニメーション等として扱えなくなるので注意

  • being carried
    担がれているかどうかを指定
    ※常にcarry meを再生するので使えないかも

  • carrying left
    左手の担ぎ上げ有無を指定
    ※待機アニメーションは不具合あり(待機アニメーションを参照)

  • carrying right
    右手の担ぎ上げ有無を指定
    ※実質使用不可

  • uses left arm
    オーバーレイアニメーション専用
    左腕が必須かどうかを指定

    Trueなら左腕が使えない状態(欠損や担ぎ上げ中など)だと使用不可になります。

  • uses right arm
    オーバーレイアニメーション専用
    右腕が必須かどうかを指定

    Trueなら右腕が使えない状態(欠損や抜刀中など)だと使用不可になります。

  • category
    使用可能なキャラクターの状態を指定
    • ANIM_NORMAL:通常の状態
    • ANIM_GROUNDED:伏せた状態
    • ANIM_SWIMMING:水中 ※swimがTrueの種族のみ

  • has weapon L
    左手の武器の装備有無を指定
    • NO:装備なし
    • EITHER:どちらでも
    • YES:装備あり ※実質使用不可

  • has weapon R
    右手の武器の装備有無を指定
    • NO:装備なし
    • EITHER:どちらでも
    • YES:装備あり

    has weapon Lとhas weapon Rを両方ともYESに設定した場合は、左手の装備有無を無視して右手に装備していれば条件が成立します。

  • is combat mode
    戦闘中かどうかを指定
    • NO:戦闘中以外
    • EITHER:どちらでも
    • YES:戦闘中 ※敵との距離が一定以内かつ他のタスクは未実行であること

  • stealth mode
    隠密中かどうかを指定
    • NO:隠密中以外
    • EITHER:どちらでも
    • YES:隠密中

  • idle
    待機アニメーションかどうかを指定

  • strafe speed max
    動物専用

    0より大きいとストレイフアニメーションになります。
FCS:ANIMATION(武器カテゴリ)
抜刀状態(手に武器を装備している状態)で各武器カテゴリの使用可否を指定
  • 1 handed:鈍器 ※後述参照
  • blunt:鈍器
  • hackers:鉈武器
  • heavey weapons:重武器
  • kanatas:刀
  • polearm:長柄武器
  • sabre:サーベル
  • unarmed:効果なし ※後述参照


1 handed
bluntと同じ扱いです。
SKILL_BLUNTは、bluntと1 handedのどちらかがTrueなら有効になります。
bluntで管理した方がわかりやすいので、1 handedはFalseを推奨します。


武術について
挙動が他の武器カテゴリと異なり、kanatasやunarmedなどの設定を無視します。
従って、他の武器カテゴリのアニメーションが再生されます。

抜刀時の待機アニメーションの場合は、idle chanceを大幅に引き上げることで武術のアニメーションをほぼ確実に抽選可能です。(他が100なら武術用は1000000)
FCS:ANIMATION(leg damage)
左脚または右脚の残HP率を条件に指定
左右の内、低い方が優先(同じなら右を優先)

以下のルールでウェイトを計算します。移動アニメーションはウェイトに応じてアニメーションをブレンドし、待機アニメーションは抽選確率の重みになります。
  • max > 99の場合はmaxが101に修正されます。
  • min < 1の場合はminが-101に修正されます。
  • min ≧ 1の場合はmaxでウェイト0、idealでウェイト1、minでウェイト0になります。
  • min < 1の場合はmaxでウェイト0、ideal~minでウェイト1になります。

右脚の残HP率
右脚の残HP率の計算はバグがあり、最大HPが右脚ではなく左脚を参照しています。
義肢により左右の最大HPに差が開くと想定外のアニメーションが選択されてしまいます。

なお、このバグはアニメーションのみ影響し、ステータスには影響しません。
FCS:ANIMATION(移動速度)
移動速度を条件に指定

以下のルールでウェイトを計算します。ウェイトに応じてアニメーションをブレンドします。
  • min speed ≧ 1の場合はmax speedでウェイト0、move speedでウェイト1、min speedでウェイト0になります。
  • min speed < 1の場合はmax speedでウェイト0、move speed~min speedでウェイト1になります。

後ろ歩きは移動速度をマイナスとして扱います。
walk upper swordはmin speedが0のため、抜刀中に後ろ歩きが発生すると上半身がIポーズになる不具合があります。(複数人で防御態勢をONにして戦闘指示を出すと確認できます)
FCS:COMBAT_TECHNIQUE
全般
  • anim name
    .skeletonファイルのアニメーション名を指定

  • anim speed mult
    再生速度を調整

  • gains ground
    効果なし

    攻撃アニメーションと回避アニメーションは、この設定に関係なくTrue扱いになり実際に移動します。
    防御アニメーションは、この設定に関係なくFalse扱いになります。(必要に応じてすり足移動します)

  • disabled
    COMBAT_TECHNIQUEを無効化するかどうかを指定

  • is block
    防御アニメーションかどうかを指定

  • is dodge
    回避アニメーションかどうかを指定

  • is prone
    伏せ状態のアニメーションかどうかを指定

  • is stumble dodge
    怯み中の回避アニメーションかどうかを指定

  • use L arm、use R arm
    効果なし

攻撃発動条件
  • attack distance
    技を使用可能な最大距離

    この値と武器のlengthで決まります。

  • attack distance min vs static
    技を使用可能な最小距離

    武器のlengthは考慮しません。
    移動を伴う攻撃はこの値で制限しないと相手に接近し過ぎてしまいます。

    厳密には、使用確率が大幅に下がるだけなので、他に使用可能な技がない、もしくは使用確率が低ければ発動します。

  • chance
    技の使用確率の乗数

  • limb 1、limb 2...
    NULL_LIMB以外にすると対応する部位がある程度負傷すると使用確率が下がり、欠損や骨折になると使用不可になります。

  • max encumbrance
    攻撃アニメーション専用

    荷物の重量負荷がこの値を超えると技が使用不可になります。
    ジャンプを伴う攻撃を制限するといった用途に使います。

  • max skill、min skill
    攻撃アニメーション専用

    技を使用可能なスキルレベルの最大値と最小値です。
    スキルはfloat型です。全部使用不可になる範囲が存在しないように注意

  • 1 handed
    効果なし

  • blunt
    鈍器用

  • hackers
    鉈武器用

  • heavey weapons
    重武器用

  • kanatas
    刀用

  • polearm
    長柄武器用

  • sabre
    サーベル用

  • unarmed
    武術用

  • animal
    動物武器用

    SKILL_KATANAS(0)~ATTACK_POLEARMS(8)にすると無効になります。
    従って、ATTACK_ELEPHANT(9)以上が必須になりますが、NUM_SKILL_TYPES(22)以上は、不正なメモリアクセスを引き起こしてバグります。

タイミング関連
  • num frames
    攻撃タイミングなどを決定するための基準値を指定

    アニメーションのフレーム数ではありません。(OGREは長さをフレーム数で管理していません)
    従って、Blender上のフレーム数と異なっても問題ありません。

    以下の項目は、num framesで割った値を使用します。
    例えばnum framesを60、anim blocked frame 1を15にすると再生時間が25%に到達したタイミングで攻撃が発生します。

  • anim hesitate point
    攻撃前にアニメーションをキャンセルできるタイミングを指定(多分)

  • acceptable end time
    他の行動をとるためにアニメーションを終了できるタイミングを指定

    anim stop frameとこれの時間が短いほど隙のない攻撃になります。

  • anim blocked frame 1、anim blocked frame 2...
    AoEの発生タイミングを指定

  • anim stop frame 1、anim stop frame 2...
    攻撃終了タイミングを指定

  • events
    サウンドの再生タイミングを指定
    num framesが1の場合は、パーセント扱いです。

攻撃の特性
  • attack direction 1、attack direction 2...
    攻撃種別を指定

    CUT_PIERCEDは、内部的にはクロスボウと砲台用のattack directionです。
    hit multを無視するので、同じ部位に連続ヒットしにくくなるデメリットがあります。
    素直にCUT_THRUSTを使った方がいいです。

  • low strike
    TrueにするとLOCATIONAL_DAMAGEのbody part typeがPART_HEADまたはPART_ARMの部位に当たらなくなります。

  • max simultaneous hits
    巻き込める最大数を指定

  • power 1、power 2...
    ダメージ乗数(%)を指定

  • num techniques
    攻撃発生回数

    3以上はanim blocked frame 3などの追加が必要です。
TIPS:メインskeletonの編集方法(画像準備中)
拙作のアドオンを使った方法を説明します。


バニラのメインskeletonをインポート

male_skeleton.skeletonまたはfemale_skeleton.skeletonを選択し、以下にチェックマークがあること確認してインポートを実行
  • アニメーションをインポート
  • フレームレートを調整
    male_skeletonは25FPS、female_skeletonは30FPS

NLAトラックにバニラのアニメーションが追加されますが、差し替えたいアニメーション以外は削除禁止です。


(任意)アーマチュアを選択した状態でmeshをインポート
以下にチェックマークがあること確認してインポートを実行
  • 選択したアーマチュアを使用


作成したアクションをNLAトラックに追加
Blender 3.6あたりから、NLAトラック追加時にトラック名がアクション名と同じになりますが、古いバージョンは、トラック名が適当です。
アドオンは、トラック名ではなくアクション名でエクスポートするので問題ありません。気になる人は、アクション名に修正してください。


アーマチュアを選択してskeletonをエクスポート
以下にチェックマークがあること確認してエクスポートを実行
  • アニメをエクスポート
TIPS:Blenderで武器やspecial toolをアタッチ
Bip01 Prop2は、武器やspecial toolが追従するためのボーンですが、Blenderでアニメーションを作成する際、位置回転をどうすればいいのか分かりにくいです。

ということで、Blenderで武器やspecial toolを追従させる方法を掲載します。
(あくまでも一例にすぎず、様々な方法があります)


1.アタッチポイント用のemptyを追加

2.emptyのペアレントをBip01 Prop2に設定
いくつか方法がありますが、今回はオブジェクトコンストレイントのチャイルドを使います。

ターゲット:male_skeletonまたはfemale_skeleton
ボーン:Bip01 Prop2
位置:全てON
回転:全てON
スケール:任意
逆補正を解除

3.emptyをZ軸回りに90度回転

4.武器のペアレントをemptyに設定

オブジェクトコンストレイント:チャイルド
ターゲット:empty
位置:全てON
回転:全てON
スケール:全てOFF
逆補正を解除


画像のように武器が追従できれば完了です。
TIPS:ノードを考慮したアニメーションの作成方法
バニラの「sleepinbed」のようにノードが基準になるアニメーションを作成する際にオブジェクトとの位置関係を直感的に扱う方法を説明します。


1.必要なオブジェクトをインポート
  • nodemarker
  • 対象となる建物等



2.emptyを追加し、建物の子にする



3.nodemarkerをemptyの子にする

4.キャラクターのメッシュとアーマチュアをnodemarkerの子にする



5.nodemarkerをZ軸回りに90度回転

6.emptyの位置と回転を調整する

emptyのトランスフォームはBUILDINGのnodesの座標になります。
BlenderとKenshiの座標変換表はこのガイドを参照

後は普通にアニメーションを作成します。



ノードがない場合は以下のようになります。

応用:special toolとphysics attachment
special toolは手に装備するので、physics attachmentが有効です。
この仕様を利用してオブジェクトを任意のボーンに追従可能です。
応用:クロスボウ専用の待機・移動アニメーション
クロスボウはSKILL_KATANAS扱いになるので、固有アニメーションを作るのは不可能だと言われていましたが、以下の方法で実装可能です。


FCSで設定可能にする
FCSで設定可能な項目はfcs.defというテキストファイルで定義しています。
以下の項目を追加します。
  • CROSSBOWにskill category
  • ANIMATIONにcrossbow
編集方法がよくわからなければワークショップから編集済みfcs.defを入手できます。


FCSで設定する
CROSSBOWのskill categoryにSKILL_BOWを設定します。
項目が存在しない場合は、アイテムウィンドウ右上のメニューにある「Add Missing Fields」をクリックすると追加できます。


注意事項
skill categoryをSKILL_BOWにする場合は、水泳や隠密アニメーション等もcrossbowをTrueにしてください。
応用:キャラクター固有アニメーション
条件付きで実装可能です。

専用ガイド(準備中)