Skyrim箱庭DIY

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

【Skyrim】ポーズ系MODのNEMESIS専用化実験



スポンサーリンク

前回はNEMESISで、クロスボウのブレンドを変更する改造behaviorを試しました。behaviorを自由に改変できるのがNEMESISの強みですね。そこで今回は、FNIS同様の新規アニメーション追加を試します。

FNIS用ポーズMODであるKinoko Poseの一部を、NEMESIS専用に改造します。楽しいポーズが多いので、なかなかお勧め度の高い一品。3つほどNEMESIS専用化します。behaviorファイルを作り直すだけなので、同梱の指輪で動作可能です。

やっぱり今回も結構長いですぬ。ポーズMODはFNISの方が簡単だろうと思う位には長い('_')
NEMESISには手作業ならではの高い自由度がありますが、こういうアニメーションorポーズ追加は、MOD固有のbehaviorファイルを自動生成できるFNISの方が向いてそうです。NEMESISでも動きますし。

※人様のMODなので、今回はサンプルファイル無しです。ご了承を。

環境準備編はこちら。
skmod.hatenablog.com

前回と同じ内容は基本飛ばしますので、こちらも参照をば。
skmod.hatenablog.com

NEMESIS専用化した76番ポーズ。AnimObject付きですが問題無さそう。
KinokoPose

実験前の下準備

Kinoko Poseをそのままインストールした状態だと、FNIS用アニメーションとしてNEMESISに組み込まれてしまいます。今回これは困るので、

data\meshes\actors\character\animations\cpkp\FNIS_cpkp_List.txt
data\meshes\actors\character\behaviors\FNIS_cpkp_Behavior.hkx

の2つをどかしておきます。behaviorファイルの方は入れっぱなしでも問題無い筈ですが(テキストファイルどかしておけば0_master.hkxと繋がらない)、まあ一応位な。

もう1つ。FNIS_cpkp_Behavior.hkxを、Skyrim Behavior Toolで触るbehaviorフォルダに入れておきます。動作面では無くても問題無いんですが、node設定をFNIS for Moddersが生成したbehaviorからパク・・・いや参考にする為('_')

んでは、作業開始でござる。


xmlで新規アニメーションファイルの追加

SBTを起動する前に、Kinoko Poseで使う新規アニメーションファイルをxmlで追加しておきます。僕が試した限りでは、SBTで新規アニメーションファイルの追加をすると、パスが正しく設定されない為。xmlで追加した後、hkx変換して、SBTの作業フォルダに上書きします。

defaultmale.hkxdefaultfemale.hkxに追加します。characterフォルダ直下の2KBのやつではないので注意

Data\meshes\actors\Character\characters\defaultmale.hkx
Data\meshes\actors\Character\characters female\defaultfemale.hkx

の2つ。

この2つなんですが、"SOBA"版のxmlをhkxに戻せなかった為、HKX Extractorのoriginalsフォルダのファイルをxml変換しました。
原因は、Bone Weightがnumelements=99なのにパラメータが100個ある為、不整合起こしてると思われます。ただNEMESIS同梱のxmlも同様なので、何かしら変換する手がある筈とは思うんですが・・・
まあアニメーションファイル追加のみの差分抽出なので、問題ないでしょう。

defaultmale.xmlで作業します。defaultfemale.xmlもまったく同じ構造してるので読み替えてください。

登録済のアニメーションファイルが大量にリスト化されてるので、最後尾に新規アニメーションファイルを追加します。何かと並び順が肝心なxml。今回は3つ試すので、3行追加。
アニメーションファイルの追加



すいません、SSで行番号抜けてますが21行目からです。
追加が終わったら、アニメーションファイルの総数を変更します。3つ足したので"1659"に変更。
アニメーションファイルの数合わせ
defaultfemale.hkxにも同様に変更します。男女別にしたい時はパス変えても問題無いですが、今はDARやOARで性別条件書けば済むので不要でしょう。

終わったら、SBTの作業フォルダへ上書きを忘れずに。忘れるとバニラのアニメーションしかSBTから見えません・・・。

Skyrim Behavior Toolでbehaviorファイルを改変

いよいよSBTでの作業です。
FNISのように外部に専用behaviorファイルを作る方が安全度が高い気がするんですが、今回はmt_behavior.hkxに混ぜることにします。バニラやDLCのidleアニメーションが登録されてるStateMachineがあるので、そこにぶら下げてみます。安全かどうかは・・・

(Havok)神のみぞ知る( ゚Д゚)

・・・もうこのネタいらんですよね、すいません。反省はしてません。


追加したアニメーションファイルの確認

"Character Data"タブの"Animations"に、xmlで追加したアニメーションファイルがあることを確認します。無いとこの先の作業ができないので、その時はもろもろ再確認を。
新規アニメーションファイル
SBTの作業フォルダに、アニメーションファイル自体は無くても大丈夫です(errorっぽい赤枠は付くかもだけど)。

OKなら、左上のBehaviorファイル一覧から"mt_behavior.hkx"を選択。ここでないとダメという訳ではないので(むしろここが良くないかもしれない('_'))、変えてもいいです。ただし0_master.hkxの先頭nodeに下げてしまうと、他の遷移にうまく入らなくてポーズ取ったまま固まるかも。


Animation Eventの作成

忘れないうちに、ポーズの遷移に入るトリガ用のanimation eventを作っておきます。Kinoko Poseのプラグインで設定されたanimation event名と合わせないと、ポーズ選択&実行の指輪が動かないです。
AnimationEventsの追加
設定項目は何も無いので、名前だけ付けておけばOK。


Kinoko Pose用のnodeを作成

"Find Generator"から"NonOffsetIdlesBehavior"を検索して、飛びます。このStateMachineにぶら下げます。
NonOffsetIdlesBehavior


新規Stateの作成

このStateMachineの子nodeとして、新規State(StateMachineStateInfo)を作ります。"Append Generator"から”State”。
Stateの新設
別のnodeに繋げる際も、必ずStateMachineの子nodeとして作ります。でないと多分動かないです。



線を辿ってずーーーーーーっと下の方にスクロールすると、さっき作ったStateが出てきます。
新設したStateInfo


新規ClipGeneratorの作成

この新規Stateに、今度はClipGeneratorを繋ぎます。
ClipGeneratorの新設


こんな感じになります。StateMachineからStateを繋ぎ、さらにClipGeneratorを接続。Idle系の基本の型だと思います。
基本のnodeの型
ほかの2つも、大枠は同じに作ります。中身の設定がちょこっと違うだけ(あとでやります)。


ClipGeneratorの設定

次は各nodeの設定をします。どこから始めてもいいですが、このままClipGenaratorからやってくことに。
ぶっちゃけStateのID番号以外は、FNIS_cpkp_Behavior.hkxからまるまる写せば問題無いです
node名は何でもいいです、重複してもOK。自分のわかりやすいやつで。僕も勝手に付けてます。Find Generatorから検索しやすいのが良いかと。あとはアニメーションファイル設定(登録済のから選択)と、ループ再生の設定。他はデフォルトのままで良いかと思います。
clip設定


Stateの設定

1個戻ってState設定。
ここは必須の設定は特に無いです。node名もデフォルトのまま変更しなくても大丈夫。
ID番号だけは、遷移条件設定で使うので控えておきます(とはいえStateMachineからでも確認可能)。
StateMachineInfo設定



同様に残りの2つも作ります。こんなんなりました。
3つのアニメーション用node
それっぽい形にはなりましたが、まだこのStateに遷移する条件がありません。このままだと完全ステルス状態です。なのでStateMachineでそれぞれの遷移条件を設定します。


StateMachineの設定

最初のStateMachine "NonOffsetIdlesBehavior"に戻り、新規の遷移条件を作ります。緑色の"Add Trandition"から作成。いかにも新設な名前ではなく、デフォルトの遷移先が作成されるので、既存の遷移条件と混ざらないように注意。作る前に末尾の番号を確認しておくと安全。
新規の遷移条件


右のeditから詳細設定に入ります。
"eventId"と"toStateId"で、animation eventと対応するStateを設定。いちばん大事なとこ。
その下、"flagGlobalWildcard"と”flagLocalWildcard”をチェック。これが無いと多分animation eventをトリガしても遷移しない(できない)と思います。
遷移条件設定
一番上の"taransition"は、多分遷移直前のアニメーションと遷移後のアニメーションを、シームレスに繋ぐ為のブレンド設定・・・な気がします。違うかもですが。
ポーズMODだと別にカクついてポーズ取ってもあまり影響無さそうですが、FNISは必ずこれを設定してそうなので、安全のため合わせておきました(僕が根本的に勘違いしてる可能性もありますし!)。
これはクリックして更に詳細設定があります。それ以外はデフォルトのままで平気だと思います。心配だったらFNIS生成のbehaviorファイルと照合すると安心。


transitionの詳細設定です。赤枠内、おそらく完全にアニメーションが変化しきるまでのブレンド時間でしょうか。FNISと同じ0.6に合わせておきました。他は変えてなかった・・・かと。
遷移ブレンド設定


他も同じように設定して、遷移条件設定完了。
遷移条件設定完了


オブジェクト付きポーズの設定

指先に蝶が飛んでるポーズにAnimObjectが付いてるので、そこの設定をします。
StateMachineから、子nodeのStateにまた戻ります。Kinoko Pose76番目のポーズ。
AnimObject付きのState


赤枠2か所、このStateの開始時と終了時にトリガするanimation event設定、だと思います。最初これがStateに入る条件かと思ったんですが、多分違いそうな(animation eventをそういう状態チェックみたいな使い方できない予感)。
Stateの開始と終了設定
赤枠内の、

AnimObjLoad
AnimObjDraw
AnimObjectUnequip

の3つを新設。

”AnimObjLoad"と"AnimObjDraw"の2つには、payloadも設定します。
AnimObjectのpayload
これはプラグインで設定されたAnimObjectのeditor IDですね。

以上で終わりなので、mt_behavior.hkxだけ個別セーブして終了します。Projectでセーブすると吹っ飛ぶことがあるので避けた方がいいです。あとはNEMESIS用のパッチを作ります。


NEMESIS用のパッチ作成

HKX Extractorで抽出して、info.iniを書きます。前回記事も参考になるかも。
今回はただ抽出するだけでは終われないので注意。

mt_behavior.hkxのゴミパッチデータを確認

mt_behavior.hkxをSBTでセーブしたため、確実にゴミパッチが一緒に抽出されます。ゴミ除去手順は準備編の記事にて。
skmod.hatenablog.com

三人称用behaviorファイルだけ、ゴミパッチリスト作りました。
skmod.hatenablog.com


空セーブからのパッチ抽出で出てきたSBT由来のゴミパッチ。mt_behavior.hkxは結構多いです。
mt_behavior.hkxからのゴミパッチ
今回改変したmt_behavior.hkxからも、このゴミパッチが抽出されます。該当nodeを意図的に改変してない限りは、全部削除します。

パッチ抽出とゴミパッチの除去

今回改変したのは、

defaultmale.hkx
defaultfemale.hkx
mt_behavior.hkx

の3つです。これをeditsフォルダに放り込んでHKX Extractorから抽出開始。

予定通り3つのフォルダとinfo.iniが作成されました。
NEMESIS用パッチのフォルダ構成


"defaultfemale"フォルダを見てみます。パッチは1個だけ。
defaultfemale.hkxの差分


アニメーションファイル追加分だけがパッチ化されてます。うまくいってそう。
defaultfemale.hkxの差分詳細
"defaultmale"フォルダも同じです。


"mt_behavior"フォルダ。前述のゴミデータをマニュアルで除去した残りです。
mt_behavior.hkxの差分
これも個別確認した方がいいですけど、量が多いのでここでは省略。ポーズ3つでもこんだけあるので結構大変。


NEMESISでのengine取り込み確認

前回やったのと同じなので省略します。
skmod.hatenablog.com


Skyrimでの動作確認

NEMESIS走らせて動作確認。実験とはいえnexusのurlと作者様の名前はちゃんと登録。
NEMESIS


76番ポーズは冒頭に見てるので、残りの2つを。ちゃんと動いてるようです。
KinokoPose1と30
これはコンソールからNPCにanimation event投げましたが、プレイヤキャラで指輪からのポーズ選択&実行もしっかり機能します。
ちょっと作業量は多かったですが、こんなんで手作業での新規アニメーション追加ができるぽいです。

以上、実験おしまい!

関係無いですが、これ書いてる最中にSONYのブルーレイレコーダが壊れた_| ̄|○
水星の魔女に、アストリッドとラファエルが・・・
2011年製AT950W。今のSONYのレコってUIの使い勝手どうなんだろ・・・