Skyrim箱庭DIY

MODによる固有の環境不具合は自分で直して快適ゲーム。CTDにさようなら。Do It Yourself!!

【Skyrim】SkyrimにおけるBehaviorの構造イメージざっくり解説



スポンサーリンク

Havok
アニメーション周りの改変をしてSkyrimを遊んでいれば、「behavior」という単語を時々目にする筈です。アニメーション改変において極めて重要なのですが、

behaviorって何してんの?

と聞かれても、答えられる人は結構少数派に思えます。おおよそ各所の解説でも「アニメーション設定ファイル」とか「管理ファイル」等で濁してることが多いかと。まあ間違ってはいないのですが、これだけだとイメージ掴みにくいですよね。

behaviorのイメージを掴んでないことこそが、

FNISやNEMESISでトラブルを起こす最大の原因

と言って良いでしょう。

そこで今回は、このbehaviorについて、大雑把にメモっておくことにします。
そもそも僕自身も、そんなbehaviorを知ってる訳ではないので( ; ゚Д゚)

※いつも通り、今回もちゃんと調べたり実験もした上で書いてますが、それでも間違いがあったり、僕が根本的に理解を誤ってる事柄もあるかもです。その前提でお願いします。

Skyrimにおけるアニメーションのコントロール

Skyrimのアニメーションは、外製エンジンである「Havok Behavior」がコントロールしています。Bethesda社ではなく、Havok社の製品ですね。物理エンジンであるHavok Phisicsと合わせて、実にスマートなアニメーションを実現してるのはご存じの通り。色々なゲームタイトルで採用されています。
アニメーションの再生には、必ずこのHavok Behaviorを通します。Skyrimのプラグインから、直接アニメーションを操作することはできません(コンソールやスクリプトから直接再生できるアニメーションは、そうなるようにbehaviorが組まれてるだけ)。

強攻撃ボタンが押された時の流れを、超アバウトに説明すると・・・こんな感じ。
behaviorさんのお仕事
この例で重要なことは、

  1. behaviorが「強攻撃」という状態及び遷移(出し方的な)を知っている
  2. behaviorが「1HM_SneakAttackPower.hkx」というアニメーションファイルを知っている
  3. アニメーションファイル「1HM_SneakAttackPower.hkx」が存在する

という点です。Havok Behaviorは、behaviorファイル(正確にはファイル群を携えたプロジェクト)に従ってアニメーションをコントロールします。

behaviorが知っている=behaviorファイルに記述がある

ということです。
ここに齟齬が発生すると、アニメーションが出ずに棒立ちしたり、T-pose(案山子)で固まるといった不具合が出ます。



新規アニメーションの追加

ダクソのようなローリング回避を追加する、Dodge MCOというMODがあります。
これをインストールした「だけ」だと、こんな具合にbehaviorさんが困ります。
behaviorさんの知らない状態
これは、

  1. behaviorが「ローリング」という状態及び遷移を知らない
  2. behaviorがローリングに必要なアニメーションファイルを知らない
  3. アニメーションファイルは存在するが、behaviorが知らないので使えない

からです。
プラグイン、スクリプト、アニメーションファイルも全て準備万端なのに、behaviorがアニメーションの出し方を知らないが故、このままだと動きません。

動かすためにはどうしたら良いでしょう?
behaviorに「ローリング」という状態及び遷移の仕方、それとローリングに使うアニメーションファイルを教える必要があります。つまりbehaviorを”modding”する訳ですが・・・。

前述のようにHavok Behaviorは外製エンジンです。SkyrimはBethesdaがMOD公認なのは周知の事実ですが、Bethesdaの権限で社外製品のmoddingまで許可することは出来ないと思われます。その為、CKでbehaviorに対して変更を加えることはできません。

そこでかの有名な、FNIS及びNEMESISの出番です。
どちらも追加アニメーションに合わせて、behaviorを更新してくれます。

FNIS及びNEMESIS=behaviorを書き換えるMOD

です。
ただしDodge MCOに関しては、FNISではbehaviorを作れない為、NEMESISのみです。
FNISとNEMESISに関しては、また別記事でいずれ。

どうでしょう、behaviorを「管理」や「設定」と表記してることが多い気がしますが、実際は「制御」のイメージだと思います。


Behaviorファイルの格納フォルダ

SkyrimでHavok Behaviorが使う、behaviorファイル群の場所をメモっておきます。
人間種族用とそれ以外用で場所が違います。

人間種族用behaviorファイル

プレイヤを含む人間種族用のbehavior関連ファイルは、以下にあります。
※ちょっと過不足あったので修正しました

Data
└─meshes
    └─actors
        └─Character
            │  animationdatasinglefile.txt
            │  animationsetdatasinglefile.txt
            │  defaultfemale.hkx
            │  defaultmale.hkx
            │  
            ├─behaviors
            │      0_master.hkx
            │      1hm_behavior.hkx
            │      1hm_locomotion.hkx
            │      AttackBehavior.hkx
            │      bashbehavior.hkx
            │      behavior.hkx
            │      blockbehavior.hkx
            │      bow_direction_behavior.hkx
            │      crossbow_direction_behavior.hkx
            │      horsebehavior.hkx
            │      idlebehavior.hkx
            │      magicbehavior.hkx
            │      magicmountedbehavior.hkx
            │      magic_readied_direction_behavior.hkx
            │      mt_behavior.hkx
            │      shoutmounted_behavior.hkx
            │      shout_behavior.hkx
            │      sprintbehavior.hkx
            │      staggerbehavior.hkx
            │      weapequip.hkx
            │      WeapUnequip.hkx
            │      
            ├─character assets
            │      skeleton.hkx
            │      
            ├─character assets female
            │      skeleton_female.hkx
            │      
            ├─characters
            │      defaultmale.hkx
            │      
            ├─characters female
            │      defaultfemale.hkx
            │      
            └─_1stperson
                │  firstperson.hkx
                │  
                ├─behaviors
                │      0_master.hkx
                │      1hm_behavior.hkx
                │      1hm_locomotion.hkx
                │      bashbehavior.hkx
                │      blockbehavior.hkx
                │      bow_direction_behavior.hkx
                │      crossbow_direction_behavior.hkx
                │      horsebehavior.hkx
                │      idlebehavior.hkx
                │      magicbehavior.hkx
                │      magicmountedbehavior.hkx
                │      mt_behavior.hkx
                │      shoutmounted_behavior.hkx
                │      shout_behavior.hkx
                │      sprintbehavior.hkx
                │      staggerbehavior.hkx
                │      weapequip.hkx
                │      
                └─characters
                        firstperson.hkx                       

skeleton.hkx及びskeleton_female.hkxを、間違えて消さないように( ; ゚Д゚)
これはFNISやNEMESISで再生成されません。


人間以外用behaviorファイル

熊と犬を例に。他もactors直下に入ってます。

\Data\meshes\actors\
├─bear
│  ├─behaviors
│  │      bearbehavior.hkx
│  │      
│  ├─character assets
│  │      skeleton.hkx
│  │      
│  └─characters
│          bearcharacter.hkx
│          
└─canine
    ├─behaviors
    │      dogbehavior.hkx
    │      
    ├─behaviors wolf
    │      wolfbehavior.hkx
    │      
    ├─character assets dog
    │      skeleton.hkx
    │      
    ├─character assets wolf
    │      skeleton.hkx
    │      
    ├─characters dog
    │      dog.hkx
    │      
    └─characters wolf
            wolf.hkx

各種族ごとに1つのbehaviorファイルです。これらがFNISやNEMESISの更新対象です
あとは人間種族同様にskeleton.hkxと、defaultmale.hkxみたいなプロジェクトのrootかな?

とりあえずざっくり説明、ということでこの辺で。
もうちょっとだけ詳細を掘り下げた物も、現在準備中。


LE時代のプレイヤキャラだったちまいのを、なんとかSEに持ち込み。色々様変わりしましたが…。
行方不明で見つからないassetも数しれず_| ̄|○
LEより転生
Miqo'te followerと合体させて、5人目のmiqo'teに転生('_')
なすの様作の髪も神だったので、髪型も変更したでござる。
この方のHDTドキュメントには大変お世話になりました、今のプレイヤキャラの髪関係で(TдT) アリガトウ

続きはこちら
skmod.hatenablog.com