2013/09/29

死霊術師の旅と予約済みNPCの謎

死霊術師を目指してちんたらプレイしていた12人目のドヴァキンさんなんですが、先日ようやく召喚スキルがレベル100に到達、念願の「死の従徒」を習得いたしました。
地道に戦闘をしてレベルを上げていたので、不必要なスキルまでモリモリ上がってしまって、このままでは「死の従徒」のレベル制限に引っかかるのではないかと気が気じゃなかったんですが、ついでに頑張って回復魔法の「聖職者」のPerkも取りました。
確か自分のレベルが34?を越えるとウルフリック首長がお持ち帰りできなくなる…んですよねえ。
ちなみに現在のレベルは33です。ギリギリセーフかしら?
せっかくCKでアンチエイジングしたのに、吸血鬼化したらまた小皺だらけになってしまいました。
死霊術師ヴァレリカ
死霊術で蘇生させた下僕って、フォロワーとはまた違った可愛さがありますね。
うーうーうるさいけど、赤ちゃんみたいで憎めないですし、いつのまにか死んでたり、付いてこなかったりして手がかかるところも目が離せなくて、わが子の面倒を見ているようで楽しいです。
名前のあるユニークなNPCではない単なるモブキャラでも、連れまわしていると愛着が沸いてしまって、とても使い捨てにすることなどできません。もっといろんなキャラを下僕にしてみたいけど、最初に下僕にした子たちとバイバイするのが寂しくて、ずっと同じ子を使い続けています。
下僕第一号のフォースウォーン・ブライアハート君と下僕第二号の山賊長の山ちゃん。
下僕一号と二号
この子たち、クエストアイテムを入れとけばお家で保管できるのかなあ。
ちなみに今回はレベル上げのために戦闘時間をできるだけ長引かせたいと思って、難易度Legendaryでプレイしてたんですが、さすが最高難易度だけあって、レベルの低いうちはスキーヴァーにすら殺されかねないような厳しい調整でホントきつかったです。
かよわい死霊術師が1人で出歩くのは自殺行為なので、壁になってくれるフォロワーを常時二、三人ひきつれて旅をしてたんですが、それでもトロール一匹倒すのにリアルで一時間かかるという恐ろしさ。Dawnguardの吸血鬼達の襲撃に運悪くかち合ってしまった日には、夜が明けるまで決着がつきませんでした。難易度を上げると、体力回復手段のある敵を相手にするのは辛すぎますね。

一緒に旅をしたフォロワーなんですが、最初に用意していた旦那のハルコンさんと子セラーナちゃんは、護衛としてはあまり役に立たず、結局ろくに一緒に出歩けませんでした。
(というか子セラーナちゃんのデータはいつのまにか紛失してしまいました……涙)
せめて旦那のハルコンさんだけでもお供させようと思ったのですが、あの人、前に出て壁になってくれるどころか、戦いが始まると全力で後ろに下がってゆく戦闘スタイルなんですよね。
しかも勢いあまって、崖から落ちたり、川に流されたりするの。
ハルコン卿って、こんなにアホな子でしたっけ?
こういう物陰にコソコソ隠れるのも大好きなんですよね~。ゴキブリみたいな人です(酷)
ゴキブリ並み
ハルコンさんのあまりの使えなさとチキンっぷりに、これでよくセラーナちゃんが生まれたよな…と呆れてしまったのですが、後日、Dawnguardの本物のセラーナちゃんとハルコンさんと一緒に旅をしていたら、戦闘終了後に二人でそろって、「いい教訓になったな」「いい教訓になりましたわね」とか言うので、思わず笑ってしまいました。
やっぱりこの二人は親子なんだなあ……セラーナちゃんはDawnguard本編でお父さんのこと、めちゃめちゃ嫌ってましたけども、血が繋がっているからこその憎悪といいますか、愛して貰えなかったがゆえの恨み、といったところで、赤の他人ならあそこまで反発することもなかったのでしょうね。
セラーナちゃんて顔はヴァレリカさんにそっくりだけど、中身はお父さん似なのかも。
(お父さんもかなりアホ……世間知らずな天然タイプです)
お家はマルカルスの廃屋をリフォームして住んでいます。
マルカルスの廃屋で家族の団欒
ここ、適度に広いし、街の入口からも近いし、廃屋にしておくにはもったいない良物件ですよね。
ところで召喚スキルを極めるまでの間、ボデイガードしてもらったのは、ヘルゲンを一緒に出発した相棒のハドバル君と、ホワイトランでナンパした衛兵さん、ロリクステッドの虐殺君、というメンツだったのですが、彼らと旅している最中、「あれ?」と思うようなことがありました。
彼らにお姫様のごとくかしずかれる逆ハーレム状態はなかなか気分が良かったです。
逆ハーレム状態
お姫様…というより、ドロンジョ様、という感じですが。
実は旅の道中「Touring Carriage」という馬車のModを導入いたしまして、それでフォロワー達と一緒に馬車の旅を楽しもうと思ったんですが、Modの馬車にはプレイヤーのほか3人までフォロワーが一緒に乗れる筈なのに、どういうわけかいつも1人だけ馬車に乗れずにアブれてしまう人がいるのです。
最初は単にスクリプトの処理が追いついていないだけなのかな、と思ってたんですが、毎回なぜかハドバル君だけが乗れなくて、走って馬車の後ろをついてくるんですよね。
ちなみにメンバーをハドバル君以外に変えるとちゃんと四人で馬車に乗ることができます。
ハドバル君だけがどうも特別みたい。いったい彼はどうして馬車に乗ることができないのでしょう。
思っていたよりも好戦的で猪突猛進系の狂戦士だったハドバル君。
爽やか系脳筋戦士
レイロフ君に比べると賢そうな印象をもってたんですが、所詮ノルド、
爽やかな脳筋か清潔感のない脳筋か、という違いでしかありませんでした……
「Touring Carriage」の中身をCKで覗いて見ると、乗客の1人はまずDialogueFollowerクエストのFollowerエイリアスの人物(デフォルトのフォロワー)から補完されるようです。
あとの二人は、プレイヤーの近くにいる人の中からフォロワーとおぼしき条件を満たしている人物を自動でピックアップする仕組み。もちろんハドバル君はこの条件のどちらも全部満たしている筈なんですが、何度試してみても一向に乗客に選ばれる気配がありません。
「Touring Carriage」の乗客のエイリアスの設定画面

このエイリアスの設定画面を眺めていたら、そういえばレイロフ君でも似たようなことがあったな……とウルフリック首長のプレイ時のことをふと思い出しました。
自宅のレイクビュー邸で吟遊詩人が歌う時、セラーナちゃんやリディアさんはジョッキを持ってノリノリで踊りだすのに、レイロフ君は観客に一度もなったことがなく、いつも辛気臭い顔をしているのです。
最初は吟遊詩人の歌が「帝国音頭」だから、ストクロ兵として上司に気を使って大人しくしてるのかしらと思ったんですが、レイロフ君はそこまで気がまわる人ではありませんしね。
奴は人に面と向かって「お前、そんなに不細工だったか?」とかズケズケ言っちゃうタイプよ(笑)

ちなみに吟遊詩人の観客のエイリアスも、馬車の乗客をピックアップするのと似たようなしくみです。
たしか決まった距離内にいる人の中からストーリーマネージャー様が自動で選ぶ仕組みだった筈。
レイロフ君を芸人に仕立てて各地を巡業した時も、各地で「絶対に観客にはならない人」というのがいて、これはいったい何が原因なんだろう…と、前々からずっと不思議に思っていました。
各ホールドの首長とか、重要そうなキャラがノリノリにならないのはまだわかるにしても、とりたてて特別そうには見えない人がそうだったりするんですよね。たとえばジョン・バトル・ボーン氏とか。
この手の抽選に選ばれないキャラには、何か「この人は特別」という目に見えない印のようなものがあるんじゃないかという気がずっとしてたんですが……CK Wikiをよく読み直してみたら、やっぱりそうでした。
…というか、今さらそれに気づくか、と思うようなエイリアスの基本的な仕様でした。


どうやら進行中のクエストで「Reserves Reference」にチェックの入ったエイリアスに適用されてしまっているキャラは「特定のクエストで予約されたNPC」として、他のクエストのエイリアスには出演できないという大原則があるみたいです。
フォロワーのクエストみたいに、スクリプトで強制的にエイリアスにぶち込むような処理では、予約されてようがされていまいが、まったく関係なく適用できるので、今まで全然気が付かなかったんですが、システム様(ストーリーマネージャー)にお任せしてエイリアスを埋めるタイプのものだと、「Reserves Reference」にチェックのついた予約済みのNPCは完全除外されてしまうみたいですね。
「戦闘中行方不明」のジョン・バトル・ボーン氏のエイリアス
思いっきり「Reserves Reference」にチェックが入ってますがな……

ハドバル君やレイロフ君も、おそらくどこかで「予約済」の印がついてしまっているんでしょうねえ。
なんといってもメインクエのキーパーソンだし、内戦クエストの立役者でもあるし。
…ということは、彼らがプレイヤーの結婚式に参列してくれる、という可能性はなかったのか……
(※結婚式クエストの参列者もストーリーマネージャー様が条件に合う人の中から抽選で選んでいます)
結婚式の参列者って、友達以上なら誰でも参加してくれる筈なのに、妙にどうでもいい人(失礼)ばっかり来るようなあと思ってたんですが、他のクエストで予定を押さえられている売れっ子のNPCは除外されていたわけですから、雑魚ばっかりになるのも当然ですね。


ハドバル君やレイロフ君の「予約済」の呪縛はいったいいつになったら解けるのかしらと思って、内戦クエストをクリアしたセーブデータを引っ張りだしてきて確かめてみたんですが、リバーウッドの宿屋で一日中ヒマそうにしてるのに、相変わらずレイロフ君は「予約済」状態のままでした。
もうやることはないだろうに、いったい何のエイリアスが残ったままになっているんでしょうか。
NPCにどんなエイリアスがかかっているか一発でわかるコマンドとかあればいいのにな。

ちなみに予約済みNPCでも「Allow Reserved」のチェックを入れたエイリアスに関しては、除外されないでちゃんと適用される仕様のようです。
馬車Modの乗客のエイリアスに「Allow Reserved」のチェックを入れることで、ようやくハドバル君も馬車に同乗することができました。


思えばサルモール大使館で、テュリウス将軍や他の首長たちなど、参加者が全然集まらなかったのも、同じように「予約済」のNPC扱いでエイリアス適用が除外されてしまっていたからかもしれません。
外交特権のエイリアスに「Allow Reserved」のチェックを入れてやれば、参加してくれるようになるかな?

2013/09/01

FNISで遊ぼ!~AnimObject付きモーションの弄り方

さて今日はAnimObjectを使ったモーション改造にチャレンジしたいと思います。AnimObjectというのは、アニメーション再生中に使われてる小道具のことです。たとえばパンを食べたり飲み物を飲んだりするモーションを取る時、NPCはどこからともなくパンやジョッキを取り出して手に持っていたりしますよね。AnimObjectというのは、ああいう四次元ポケットから取り出す小道具類のことです。
ミラーク先輩のフィギュア人形を手に入れてご満悦のウルフリック首長。
ミラーク先輩のフィギュア人形
Hearthfireの幼女のお人形遊びのモーションのAnimObjectを差し替えてみました。
このAnimObjectというのは、CK上ではObjectウィンドウの「Miscellaneous」のカテゴリ内にあります。
しかしこの編集画面を見ても、肝心のAnimObjectがどのモーション中に使われているものなのか、ということはまったく分かりません。
CKで分かるのは、アイテムのメッシュファイル(3Dデータ)の所在や、このアイテムがどのタイプのActorの行動中に使われているか(人間か他の種族か)…ということくらいです。いったいAnimObjectはどのような仕組みで、モーション再生時に呼び出されているのでしょう。
AnimObject
AnimObjectのメッシュデータは、大半が「Data/meshes/AnimObjects」フォルダに入っているようです。
まずはこれらのアイテムがどんな構造になってるのか、nifファイルの中身を覗いてみることにしましょう。
イソルダさんがよく持ち運んでいる花カゴのデータ「animobjectbaskethandled.nif」
AnimObjectのnif
AnimObjectのnifファイルを片っ端からNifSkopeで覗いてみると、「NiStringExtraData」という項目に「NPC R Hand[RHnd]」だの「AnimObjectR」だの「NPC L Forearm[LLar]」だの、どこぞで目にしたような名称が各アイテムに一つずつ、必ず記載されていることが分かります。
これは、キャラの体型などを弄ったりしたことのある人であればお馴染みの、人間のスケルトンに存在するボーン名ですね。おそらくこいつが、AnimObjectが出現する箇所に関係があるのでしょう。
ためしに上記画像の花カゴの「NiStringExtraData」の「NPC R Hand[RHnd]」を「NPC L Hand[LHnd]」と名称を変えて保存し、ゲーム中でモーションを取ってみたところ、右手に持っていた花カゴがあっさり左手の方に移動してくれました。
ニフスコで名称を変えるだけで位置が変わってくれるなんて、結構お手軽ですよね。
NiStringExtraDataの指定
AnimObjectの基点
ちなみに左手に持ちかえてみるとよく分かるんですが、左画像の丸ポチの部分がボーンと接続する基準点になってるようです。
(NPC R(L) Hand[R(L)Hndのボーンは手首の付近にあります)
AnimObjectのnifファイルは、この基準点を元に、接続するボーンからどのくらい離れているか、またどんな向きになっているか、ということまで含めたデータになっているのでしょう。
ちなみにこの基準点は、blender上で見てみると、グローバル座標の原点(X:0,Y:0,Z:0)になっています。
このグローバルの原点が、接続するボーンのローカル座標の原点になるんじゃないか…と思うのですが、このグローバルの原点を、アイテムの位置や角度を保ったまま、接続するボーンのローカル座標系に移す方法が、blender初心者のおばちゃんにはよくわかりません。
それができれば、blender上で人間のモデルのポーズを見ながらアイテムの位置決めをすることができるのになあと思うのですが……やり方がようわからんので、今はAnimObjectの位置決めは既存のAnimObjectを参考におおざっぱに配置して、細かい位置調整はゲーム上で確認して直すという、面倒くさいことをやっております。どなたか良いやり方をご存知でしたら教えてください。
カラオケモーション用に新規で作ってみたマイク(しょぼいモデリングですが)
新規で作ってみたマイク
AnimObjectをblenderで新規で作る場合は、オブジェクトの向きやサイズ等の配置を決めた後、最後にオブジェクトの基準点(センター)を原点(X:0,Y:0,Z:0)に移動しておくのがポイントです。
3Dカーソルを原点に移動させてから「Center Cursor」のボタンを押すと、選択しているオブジェクトの基準点を原点に変更できます。
原点からどの辺りにアイテムを配置するか、という位置や角度の目安は、似たような既存の他のAnimObjectのデータをインポートしてアタリにしてます。上画像の例だと、マイクは鍛冶のハンマーを握りしめるのと動作が似てるんで、「animobjectblacksmithforgehammer.nif」を見本にしました。
実際にゲーム上で、鍛冶の作業台のモーションで確認してみたところ。
ハンマーのモーションで確認
指がアイテムに食い込んでしまったり、握るポイントが浅かったり、一発でジャストな位置に配置できたためしはありませんが、細かい位置調整はNifScope上で行ってます。
メッシュの移植
AnimObjectとして使うメッシュデータは、一から作った新規の3Dデータでも良いし、何か他の既存のnifファイルから流用するのでもよいですが、AnimObjectとして問題なくゲーム中に読み込ませるには、NifSkopeで既存のAnimObjectのデータ上にメッシュを移植する方法が一番無難かと思います。
詳しい仕様はよくわかりませんが、nifファイルでは大抵、「NiTriShape」のようなNiTri云々…というブロックが3Dの形やUVの情報を含んだメッシュデータになっていますので、元となるAnimObjectに、差し替えたいアイテムのNiTriShape等のブロックをコピペしてやります。
上画像は、Dragonbornのロードスクリーン中のミラーク卿のメッシュデータを、Hearthfireの人形のデータに移植した時のものですが、一つのNiTriShapeしかないお人形のデータに、複数のNiTriShapeから成るパーツの多いミラーク先輩のデータをごっそり移植しても特に問題なく動いてくれました。
上画像では位置調整をまとめて行えるように各パーツを「NiNode」の中に入れてしまったりしてますが、別に一つのノードにまとめなくても大丈夫です。
また、今回は元のお人形のデータにコリジョン(bhkCollisionObject)があったのでそのままにしていますが、別にコリジョンは無くっても平気みたいです。削除してしまっても特に問題はない様子でした。

さて、AnimObject用のnifファイルが用意できたら、それをモーション再生中に使用できるようにCKで「AnimObject」オブジェクトとして登録するわけなんですが……大変残念なことにCKには、新規のAnimObjectを、使用するモーションと結びつけるための設定機能が搭載されていないようです。
たとえば、Hearthfireのお人形遊びをするモーションは、その再生中に「AnimObjectDoll」という人形のAnimObjectオブジェクトを使っているのは間違いないと思われるのですが、CKのどこを見てもそのモーション中に「AnimObjectDoll」を使う、という設定を行っている形跡がありません。
おそらく、人形遊びのモーション中に「AnimObjectDoll」というAnimObjectオブジェクトが呼ばれるのは、CKでは手出しできない禁断の領域で定義されている既成事項なのでしょう。
ですから、CKで出来るのは、AnimObjectオブジェクトの編集画面で実際に使われるアイテムのnifファイルを変更することだけです。つまり既存の「AnimObjectDoll」というAnimObjectオブジェクトであれば、お人形の外観自体は簡単に変えることができます。

ちなみにゲーム中で使われるモーション…「Idle Animation」のデータは、メニューの「GamePlay」から「Animations...」を選ぶと出てくる「Idle Animations」ウィンドウの中で定義されています。
いつものObjectウィンドウには無いので、あんまり馴染みが無い……という方も中にはいらっしゃるかもしれませんね。(というか、かつておばちゃんがそうでした)
「Idle Animations」ウィンドウ
Idle Animationはツリー形式で、各アクションやLOOSEの枝にIdleを登録する仕様になっています。
Idleオブジェクトの編集
人間タイプのモーションは、「Actors\Character\Behaviors\0_Master.hkx」というルートの下にずらずらっと登録されています。Idle Animationのオブジェクトは「何かをアクティベートした時」とか、「ジャンプした時」とか、「左手で攻撃した時」とか、モーションが発動するきっかけのようなものがある場合は、それぞれのアクションの枝に細かく分類されてぶら下がっているようです。
また、そういった「きっかけ」を特に持たないモーションは、一番下にある「LOOSE」という何にも縛らない枝に一緒くたにぶち込まれています。ちなみに人形遊びのモーションも、この「LOOSE」の配下に登録されているんですが、これらの「LOOSE」なモーションは、自動的に何かのきっかけで発動するわけではないので、たとえばAI Packageの中で使うとか、スクリプトのPlayIdleで呼び出すとか、Idleマーカーのモーションで使ってあげるとか、いちいち指名してやらんといけません。
まあ、その分、再生されるタイミングを制御できるんで、使い勝手は良いのですが。

Idle Animationは他のオブジェクトと同じように、他から参照するためのID名があって、使われるモーション(AnimEvent)の指定や、再生するための条件設定などを定義できます。
たとえば人形遊びのIdle Animationの「IdleChildPlayDoll」は、再生時に「人形のアイテムを持っていること」「女の子であること」「子供であること」の3つの条件がつけられています。(上記画像参照)
ですから大のオトナの男性(つまりおっさん)であるウルフリック首長に人形遊びをさせるためには、これらの条件を外してやらないといけません。
既存の「IdleChildPlayDoll」の条件自体を弄ってしまうか、もしくは年齢制限や性別制限の無い、新規の人形遊びのIdle Animationを登録するか……まあ、既存のIdleを弄ってしまうと、ゲーム上のすべての場面でその変更が反映されてしまうので、できれば新規登録する方がいいですね。
Idle Animationを新規登録するには、追加したい階層の他のIdleを選択した状態で右クリックし「Insert Sibling」(兄弟をつくる)するか、あるいはその一つ上の階層で「Insert Child」(子供をつくる)かします。


ところでIdle Animationの編集ですが、これもCKでは手出しのできない、どこか別のところで決められてしまっている、変えられないルールのようなものがあります。
それは、どのAnimEventにどのモーションファイル(hkxファイル)が使われているか、ということ……
AnimEventというのはおそらく、アニメーションが実行される時のいろんな設定を規定した、ある種のオブジェクトみたいなものだろうと思うんですが(たぶんAnimObjectを使うかどうかという設定もそこで決められている筈……)、CKではその設定を弄ることができないばかりか、詳細を見ることもかないません。
…というか、CKには新規の「AnimEvent」を登録するためのメニューがどこにもありません
ま、いまさら書くまでもありませんけども、よーするに新規でAnimEventを作れないということは、CKでは新規のモーションを増やすことができない、ということですよ。
AnimEventを新規で作ることができなければ、何か新しいモーションを追加したい場合は、既存のAnimEvent枠をつぶして、そこで使われているモーションファイルを丸ごと差し替える、という方法をとるしか手段がありません。
あまり使っていなさそうなモーションをリストラして再利用するにしても、数に限りというものがありますからねえ……新規のAnimEventを作れない、というのは実に致命的です。
まあ、ライセンス等の問題で、そういう機能を付けたくても付けられなかった事情があるのでしょうけど、CKがなまじ何でもできてしまう万能ツールなだけに、とても残念に思います。

そんなわけで、AnimEventやAnimObjectの新規追加を行いたい場合はどうするかといいますと、ゲーム発売からそろそろ二年になろうとしている今ではもはや当たり前のツールで、改めてご紹介する必要もないかとは思いますが、「FNIS」こと「Fores New Idles in Skyrim - FNIS」のお世話になります。
このツールは、モーション系のModを導入している方にとっては、もはやなくてはならないゲーム本体の一部のようなツールですよね。
ちなみにおばちゃんは今までモーションを変更・追加するようなModはあまり入れたことがなくて、「FNIS」というのも名前は知っていても何をするものなのかよくわからん…という感じで、なんとなく敬遠さえしていたのですが、今回、モーションについてあれこれ格闘しているうちに、これはもうFNIS様、と様付けで呼ぶしかないな…と思うまでになりましたw
そんなわけで、ようやく理解できたFNIS様のありがたみを忘れないように、FNISを使った新規AnimEventや新規AnimObjectの登録方法を書き残しておきたいと思います。
ちなみにおばちゃんが今現在使わせていただいているのはFNISのバージョン3.5です。
バージョン4では待望のFurniture Animations(家具につけるモーション)に対応した!ようなので、近いうちに導入させていただくつもりでいますが……とりあえず今のところは3.5の仕様しか知らないので、以下はバージョン3.5の場合のやり方として書いています。参考にされる場合はご注意ください。


■FNISを使った新規モーションの登録方法

さて、まずはFNISをインストールすると、Dataの「tools」というフォルダの中に「GenerateFNIS_for_Modders」というフォルダと「GenerateFNIS_for_Users」というフォルダができるかと思います。
通常は「GenerateFNIS_for_Users」(赤いFNIS様)の方にしかお世話になることはありませんが、自分で用意した新規モーションや新規AnimObjectを使いたい場合は「GenerateFNIS_for_Modders」(青いFNIS様)の方にもお世話になります。
モーションを新規追加するModと、二人のFNIS様の役割は、おばちゃんの脳内ではこんな↓イメージです。擬人化はさておき、作業の流れ自体はそんなに間違ってはいないと思います。
FNISと各モーションModのしくみ
FNISの傘下アドオンModとしてモーションを追加するには、「meshes/actors/character/animations」フォルダの中に、自分のMod名のフォルダを作って、そこに追加するモーションファイル(hkxファイル)と「こんなん作りましたんで登録お願いします」というようなリストファイルを作って、青いFNIS様に陳情します。
すると青いFNIS様はそのMod用のBefaviorを記載したファイルを「meshes\actors\character\behaviors」フォルダの中に生成してくださいます。
作ったモーションModを他人様に配布する時は、最初に用意したリストファイルやモーションファイルと一緒に、この生成されたBehaviorのファイルも付けて配布することになります。
これらのファイル一式がDataフォルダ下にインストールされた状態で「GenerateFNIS_for_Users.exe」が実行されると、赤いFNIS様がDataフォルダ内にあるすべてのアドオンModたちの注文をまとめて、CKでは弄ることのできなかったモーションの定義を書き換えてくださる…というしくみです。

そんなわけで赤いFNIS様の方は、Modを使う人の環境下で、何か別のモーションModを導入するたびにその都度実行して、今現在のMod環境に最適化した定義を毎回書き換えてもらう必要があるわけです。
またFNIS様は人間タイプのモーションの定義を変更するために「meshes/actors/character/behaviors」フォルダの「0_master.hkx」、それから「meshes\actors\character\characters」の「defaultmale.hkx」と「meshes\actors\character\characters female」の「defaultfemale.hkx」……といったゲームに元からある、モーションの定義に関わるファイルを独自に書き換えています。
ですから、ゲームのアップデートでこれらのファイルに変更があったり、また他のモーションModでこれらのファイルを変更してしまうModがあったりすると、思いっきり競合しておかしなことになります。
まあ、今はゲームのバージョンアップの影響を心配する必要はなくなりましたが(涙)……これらのファイルの競合には重々気をつけたいものです。

さて肝心の青いFNIS様に提出するリストファイルの作り方なんですが、これは単なるテキストファイルでして、決まった書式に従って必要事項を記載するだけなので作るのは簡単です。
リストファイルのファイル名は、「fnis_xxxx_list.txt」(xxxxはMod名)という名前にし、追加したいモーションファイル(hkxファイル)を置くのと同じフォルダの「meshes/actors/character/animations/xxxx」(xxxxはMod名)の中に置きます。
リストファイルの中身のテキストは、次のような書式に従って記述します。

[タイプ] -[オプション] [AnimEvent名] [モーションファイル名] [AnimObject名]

(記述の一例)o -a 0baKaraoke 0baKaraoke.hkx 0baMicrophone

[タイプ]というのは、登録するモーションの大まかな分類です。
AnimObjectの小道具を使うモーションは「o」、複数のモーションとセットにしてシークエンス再生をしたい場合は「s」や「+」、特に何も特別なことをしないベーシックなタイプのモーションは「b」になります。

[オプション]というのはモーションの再生時の細かな調整項目です。どんなオプションがあるかは、FNISのnexusの配布ページのDescriptionの「Usage for MODDERS」という箇所に詳しく書いてあります。
ちなみにおばちゃんがよく使うオプションは「a」(ループ再生しない)という奴です。このオプションをつけないと、デフォルトではモーションは最後まで再生されるとまた最初に戻って、繰り返し再生をします。
また、オプションはカンマで区切れば複数記載することができます。たとえば上記の記述の例において、「a」(ループ再生無し)、「Tn」(アニメーション再生後「Next Clip」に移行)、「B2.0」(2秒のブレンド時間を取る)等の3つのオプションを指定したい場合は、

o -a,Tn,B2.0 0baKaraoke 0baKaraoke.hkx 0baMicrophone

……とこんな風にカンマで区切って列挙します。
ちなみに[オプション]は複数指定可能ですが、前述した[タイプ]は1個しか指定できませんので、シークエンスタイプのモーションで、さらにAnimObjectを使用したい…なんて場合には、オプションの方で「o」を指定します。
たとえば以下のように記述しますと、「0baTestFlute」というAnimEventで立て続けに「フルート演奏→ドラム演奏→リュート演奏」というモーションが連続再生される(もちろんそれぞれ楽器のAnimObjectを使う)楽器連続演奏モーションが作れます。

s -a,k,o 0baTestFlute ..\animobjectfluteshort.hkx AnimObjectFlute
+ -a,k,o 0baTestDrum ..\animobjectdrumloop.hkx AnimObjectDrum
+ -a,k,o 0baTestLute ..\animobjectluteloop.hkx AnimObjectLute

(「k」オプションを指定すると、ゲームのデフォルトのモーションファイルなど既存のファイルを、リストファイルがあるフォルダからの相対パスで指定することができます)

[AnimObject名]というのは、CKで登録しているAnimObjectのオブジェクトのID名です。ですから新規のAnimObjectを使いたい場合は、リストファイルを作る前にあらかじめCKでAnimObjectオブジェクトを登録しておく必要があります。
当然ながら、AnimObjectを使わないモーションの場合はもちろん記載する必要はありません。
またAnimObjectは複数個同時に使用することもできます。その場合は半角スペースを空けて、AnimObject名を列挙すると認識してくれます。

(例)o 0baWoodChop ..\animobjectchoploop.hkx AnimObjectAxe AnimObjectChopWoodRight AnimObjectChopWoodLeft

上記は薪割りのモーションを新規のAnimEventとして登録している記述の例です。
ゲームのデフォルトの薪割りのモーションは、「斧」のAnimObject(AnimObjectAxe)と、「薪の右半分」(AnimObjectChopWoodRight)と「薪の左半分」(AnimObjectChopWoodLeft)という合計3つのAnimObjectを使用しています。
ちなみにこの薪割りのモーション、よく見てみると、薪を割る直前までは薪半分のAnimObject二つがぴったり合わさって一つの薪に見えるような仕掛けになっているんですよね。
んで、斧を振り下ろしてスパコーン!と割った瞬間に、薪のAnimObjectが接続している「AnimObjectA」と「AnimObjectB」のボーンが左右に広がって移動するので、もともと二つに割れていた薪が斧によって割れたように見える、というしくみなんです。
文章だけだと何を言っているのか伝わらないかもしれませんが(笑)……小技がきいたモーションなのでとても感心してしまいました。
AnimObjectって、使い方を工夫すれば、いろんな演出ができそうだなって思って凄くワクワクします。

さて、以上のような書式に従って追加したいモーションのリストファイルを作成したら、後は青いFNIS様こと「GenerateFNIS_for_Modders.exe」を実行して自分のMod用のBehaviorファイルを作って貰います。
(「Generate Mod Behavior」のボタンを押すと、Behaviorを書き出すためのリストファイルの所在を聞いてきますので、自分の作ったリストファイルを選択します)
Behaviorファイルは「meshes/actors/character/behaviors」フォルダの中に、「FNIS_xxxx_Behavior.hkx」(xxxxはModの名前)というファイル名で生成されます。
このBehaviorのファイルを作ってもらったら、後は赤いFNIS様こと「GenerateFNIS_for_Users.exe」を実行するだけです。ちなみにAnimEvent名やモーションファイルのファイル名は他のModと名前がカブっていてはいけない、という決まりがあります。
しかし作ったModを配布などする場合は、使う人のMod環境次第で、他人様のModと偶然名前がかち合ってしまったりする場合もありますよね。
そんなわけで、他人様にModを配布なぞする時は、赤いFNIS様の「Behavior Consistence Check」というボタンを押して名前のカブりがないかどうかをチェックする、ということをして貰います。
もし名前がカブっていたら、そうですね……仕方ないので変えましょうw
名前カブりのチェック
赤いFNIS様を実行して「Update FNIS Behavior」のボタンを押し、名前カブりの問題も無かったら、自分がリストファイルに記述した名前で、新規のAnimEventが作られている筈です。
CKを起動し、Idle Animationウィンドウを開いて自分のAnimEventがあるかどうか確認してみてください。(CKは赤いFNIS様を使ったら、その都度再起動してモーション定義を読み込み直す必要があります)
後はそのAnimEventを使ったIdle Animationを登録し、それを他からスクリプトで呼ぶなり、何かのアクションに結びつけるなり、好きなように調理しましょう。
ちなみにモーションがループするような設定になっている場合(aオプションをつけなかった場合)は、そのモーションを使用したAI PackageやIdleマーカーなどの行動が終わっても、NPCはそのモーションを引き続き再生したままのポーズで動くようになってしまいます。
そういったモーションの再生を止めるには、「IdleForceDefaultState」というデフォルトの状態に戻るAnimEventを挟む必要があるようです。
なのでAI Packageが切り替わるタイミングで「IdleForceDefaultState」を呼び出すなどして、NPCをデフォルトの状態に戻してあげてください。


以上、かなり大雑把ですが、FNISを使った新規モーション作成方法の覚え書きでした。
別にモーションを一から作ったりしなくても、既存のモーションと既存のオブジェクトをAnimObjectとして組み合わせるだけで、一風変わった目新しいモーションが作れるんじゃないかと思います。
FNIS様のお力を借りれば、どんなモーションとAnimObjectの組み合わせも可能ですので、ぜひ遊んでみてください。