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の組み合わせも可能ですので、ぜひ遊んでみてください。

17 件のコメント:

  1. 興味深く読ませて頂きました。
    Animationてそんなとこに設定場所があったんですねぇ・・・
    しかもCKだと新規モーション追加できなかったのか!(今更)どおりでFNISが出るまで差し替えモーションのMODしかなかったわけだ。
    FNISの神ツールぶりとお仕事が良く分かりました、感謝感謝。

    是非マイクとタロス人形をヘイムスカー氏の両手に持たせて大演説させてやってくださいw
    あの演説を大音響でやられたら色々凄いことになりそうでわくわくします。

    返信削除
    返信
    1. タロス人形!そうか、その手がありましたね……
      正直、ウルフリック首長がフィギュアに頬ずりしてハアハアしているところは、ちょっとヒくわ……という感じだったのですが、ヘイムスカー氏なら生温かい目で見守れそうですw
      マイクと言わず、拡声器でも持たせて演説させてあげたいですね。

      削除
  2. タロス人形を渡すなら是非読書モーションで”タロス信仰の過ち”をヘイムスカー氏に読ませてあげてください・・・・w

    返信削除
    返信
    1. なにゆえそんな意地悪を……w

      そういえば読書のモーションって、椅子に座ったまま読んでるのって
      見かけたことがないような……
      着席読書なら、そのまんま、トイレのモーションに使えるのに。

      削除
  3. 座って読んでるモーションならサボス・アレンのがあったのでは?

    返信削除
    返信
    1. あ、ホントだ……サボス先生の名前で検索したらありました。
      よく見てみたら、グレイビアードの老師たちやスカイヘヴンのエズバーンのお爺ちゃんなんかも座って読書してるんですね。
      教えていただいてどうも有難うございます。

      削除
  4. おおおおおお!私もおばちゃん同様、FNISはなんとなく自作再生機程度にしか知らなかったのですがちゃんと読んでみると凄いことやってましたね(^^;
    さらにv4.0では"Adds creature animations to the game"の表記が…Σ(゚Д゚)
    これはまさか待て-お座り-お手-ちんtんの最強コンボがスカイリムでやれるのか
    さっそくガルマルで試してみよう(おい

    返信削除
    返信
    1. Creature Animationsは、いずれカスタムクリーチャーのモーションも追加できるようにする予定、みたいなことが書かれてあって胸熱です。
      丸ごと新規のクリーチャーが作れるんなら、よちよち歩きの幼児とか作れたりするのかしら…と夢が膨らみます。
      今回、オトナが人形を高い高いするモーションを見てたら、これ、人形を赤ちゃんにしたらいいんじゃないか…とか思ったんですよね。
      赤ん坊がオブジェクト扱い、幼児がクリーチャー扱いというのもちょっとシュールなんですが(笑)じゃがいも以下の年齢の子供が作れれば、ドヴァキンさんに養子ではなく実子をもたせてあげることができるかも……なんて思ったりして。
      まあ、丸ごと新規のクリーチャー製作なんて、寿命を削る覚悟でやらんとならんでしょうけどねw

      > 待て-お座り-お手-ちんtんの最強コンボ

      いいですね!人間のモーションと位置合わせするのが難しそうですが、ぜひ作ってみたいです。もちろんガルマルさんではなく可愛いワンコでw

      削除
  5. おばちゃん様1つ教えて頂いてもよろしいですか?
    前回の昇竜拳や今回のアニメーションの記事を見ていて残念ながらほとんど理解が出来なかったのですが、私が今やりたいと思っている事と関係があるかも?と思い失礼ながら投稿させていただきました。
    「グランドマスター」という素手強化MODの中に様々なモーション変更が含まれているのですが、その中にある「スニーク中の攻撃(素手)をアッパーにする」という変更があるのですが、このアッパーが良く出来ており是非通常のパワーアタック(素手)でこのアッパーが出るようにしたいと思ったのですが、やり方がさっぱりわかりません。
    私自身どの程度かというとCKをいじりだしたばかりで、
    ①既存のNPCをCKで改変する
    ②既存のNPCをコピーして改変し新しいフォロワーを作成する。
    ③魔法を作成する←思い通りのエフェクトが起こらない事ばかりですが・・・
    など上記程度ですし、またCKしか知りません。
    今私がやりたい事は案外簡単にできることなのでしょうか?
    それとも次元が違うお話なのでしょうか?

    返信削除
    返信
    1. すみません。前記事の昇竜拳は、あれは単純にスクリプトでモーションを再生してるだけでして(モーションと同時に揺ぎ無き力の三段階目とボイスのサウンドを発生させてます)普通の攻撃用のモーションとして設定してあるわけではないのです。

      ですので、私も戦闘モーションの改造についてはまったく未経験でよくわからんのですが、仰っているModの中身を見てみたところ、どうやら両手剣系のモーションのファイルを単純に差し替えているだけのようなので、お目当ての「アッパー」のモーションのファイルと、デフォルトの素手のパワーアタックのモーションのファイルの所在を探して、交換してみたらどうでしょうか。
      まあ、それでうまく動くのかどうかは、やってみないと何ともいえませんけども……

      まだまだ私も未知の世界に足を踏み入れたばかりで、わからないことだらけ、知らないことだらけ、暗闇の中を必死に手探りしてウロウロしている状態なので、的確なアドバイスができずにすみません。
      ブログの記事を書くのも「これ間違ってたらどうしよう…」といつも不安に思っているんですが、何より自分自身が、間違っていても何でもいいからとにかく情報を見つけるための手がかりが欲しい…と常々思っているので、書いているようなもんなんですよ。

      モーション改造のノウハウの情報ってホント少なくて……茨の道です。

      削除
    2. 該当するAnimEventが分かっているなら、上の記事でも説明されている通り、CKのGamePlay>>Animations...からActors\Character\Behaviors\0_Master.hkxのツリーを開きActionRightPowerAttack>>NonMountedCombatRightPower>>H2HRightHandPowerAttackが素手の右パワーアタックなのでそこを変更すればOKです。条件ではGetEquippedItemType==0が素手を示します。ismovingとかGetMovementDirectionの条件を加えて前後左右で別の攻撃を登録することも可能です。killmoveに使われているEventの中にも攻撃判定があったりするので通常攻撃として入れてもいいかもしれません。

      削除
    3. おばちゃま返信ありがとうございます。
      なるほど!と思い少し違うのですが、MOD内にある改変用「右パワーアタックhkxファイル」と改変用「スニークアタックhkxファイル」を見比べて、手を加えどうにかして「スニークアタック」を「右パワーアタック」として誤認してもらえればMODを導入するだけで右パワーアタックがアッパーになるのでは?と思ったのですがhkxファイルが開けませんでした。

      通りすがりの方アドバイスありがとうございます!
      正直こりゃいける!と思いました。しかし申し訳ありません。
      AnimEventがわかりません1時間くらいスクロールさせながらにらめっこしていましたが、一体どれがMODで変更したスニークアタックなのか見つけられませんでした。
      せっかくアドバイス頂いたのに申し訳ありません。

      削除
    4. そうなんですよねえ、ゲーム中のモーションが、どのファイルに該当するのか、ということを見つけ出すのが一番難しいというか、手間のかかる作業なんですよねえ。
      ちなみにhkxファイルの中身を開かなくても、モーションを確認する方法はありますよ。

      これは私個人のやり方ですが、どのファイル(hkxファイル)がお目当てのモーションなのか、ということを特定するためには、まずはファイルの名前でアタリをつけて……たとえば素手のパワーアタックでしたら、「power」などの単語が含まれているファイルをピックアップして、このあたりがそうなんじゃないか…という候補を見つけます。

      そしてそれを一つずつ、ダミー用のモーションファイルと差し替えてみて、ゲーム中で実際の動作に異変があるかどうかをチェックします。
      ダミー用のモーションファイルというのは、別に何でも良いのですが、モーションが差し変わったと一発で分かるような、他のモーションファイルのことです。
      たとえば「idlewave.hkx」とか……これは「バイバイ」をする時みたいに片手で小さく手を振るモーションなんですが、これを一つずつ、素手のパワーアタックなんじゃないかと思われる候補のファイルの名前にリネームして、ゲーム中で実際に素手パワー攻撃のモーションが変わるかどうか、確認してみます。

      ちなみにそうやって確かめてみたところ、
      素手の右のパワーアタックは「h2h_attackpowerforwardrighthand.hkx」
      素手の左のパワーアタックは「h2h_attackpowerforwardlefthand.hkx」
      …らしきことがわかりました。

      ま、これは物凄く原始的な頭の悪い探し方ですので、もっと他に賢いスマートな特定方法があるなら、そっちの方がいいですが。
      …というか、別の効率的なやり方を見つけたら、その際はぜひ私にも教えて欲しいです。


      それからIdle Animationウィンドウで直接AnimEventを変更する方法なんですが、試しに「H2HRightHandPowerAttack」のIdleを、例の昇竜拳のAnimEventに変更してみたんですが、ゲーム中には反映されませんでした。
      左の素手パワーアタックの方の「H2HLeftHandPowerAttack」には反映されるんですけどね。
      ご参考までに。

      削除
    5. 出来ました!!
      まずお詫びなのですが1つ大きな勘違いがありました。
      スニークアタックのアッパーはバニラモーションでした。
      だからといってやる事は全然変わらないのですが。
      >imasyuさん
      CKでアニメーション試せるのはかなりびっくりしました!革命でしたね。
      しばらくの間遊んでしまいました。
      >おばちゃま
      頂いた返信を読みながら、ん?もしかして?と思い初めて気づいたのですがhkxファイルってリネームで変更できるんですね!
      それに気づいてからは早いものでした。BSAアンパッカーでSKYRIMAnimationの中から「sneak_h2hattacklefthand.hkx」や「sneak_beasth2hattacklefthand」←なんだこれ?と思いながら念のため取り出し(右バージョンも)、「h2h_attackpowerforwardlefthand」とリネームしてmeshes>Acter>character>Animationsに放り込むだけでした。
      そしてなぜか本命のsneak_h2hattacklefthand.hkxが何も変化無しでsneak_beasth2hattacklefthandを適応させたところプレイヤーはおかしな事(素手左パワーアタックをするとFPS画面になる)が起きやっぱダメか~と思っていたら、フォロワーが見事左アッパーをしていました。
      達成率でいうと50%くらいになるかもしれませんがかなり満足しています。
      フォロワーのパワーアタックにぶっ飛ばしと雷ダメのオリジナル魔法を発動させるようにしてますので今や「最風」使いです。

      削除
    6. sneak_beastうんたら~のモーションってもしかして、尻尾のある種族用のモーションだったりするんじゃ……?
      プレイヤーには適用されないのにフォロワーは変化あり、というのはその辺に関係あるんじゃないかしら、と思いました。

      何はともあれ、希望通りの改造ができて良かったですね。
      モーションについて、また何か発見がありましたらぜひ教えてください。

      削除
  6. >そうなんですよねえ、ゲーム中のモーションが、どのファイルに該当するのか、ということを見つけ出すのが一番難しいというか、手間のかかる作業なんですよねえ。

    これCK立ち上げててけとーなアクターを作成(まだOK押して保存する必要ないですよ)
    既存のいぢっておかしな事になったらアレですからね。
    名前もIDも付けなくてもかまいません。
    最終的に保存しないので。
    んで、種族が初期値は狐になってるので適当なノルドとかの人型に変更(人じゃないならその種族)
    さらにプレビューのFullにチェックを入れ、アニメーションタブを開くとアニメ一覧がでるのでクリックするとその動作を再現してくれます。
    モーションはhkxファイル名で出ているので、どのファイルを変えるか解りやすいのでは?
    ちなみに着物をインベントリにいれとけば、それを着た上でアニメーションしてくれるので、びよぉぉんとメッシュが変に崩れないかのチェックもできます。

    後は散々堪能したらキャンセルでなかったことにすればOKです。

    返信削除
    返信
    1. そういえばActorのAnimationタブでhkxファイルのプレビューができましたっけ……
      その存在をすっかり忘れていました。
      各ファイルのモーションがどんな動きなのか、これですぐに確認できるの、すごく助かります!
      教えてくださってどうも有難うございます。

      ちなみにAnimationタブのプレビューでは、hkxファイルが「meshes\actors\character\animations」の直下に存在していないと読み込んでくれないみたいですね。
      最初、FNISで追加したモーションは軒並み全滅で再生されなかったので、このプレビュー機能はバニラonlyなのかしら……とがっかりしたのですが、hkxファイルをanimationsフォルダに移動してみたら、ちゃんとモーションが再生されました。

      これでCKの再起動無しに、hkxファイルをその都度読み込んで再生さえしてくれたら、最高なんですが……(私の環境ではゲーム本体よりCKを起動する方が圧倒的に遅いので)
      しかしCKのプレビューでは、アニメーションのスピードを落として、モーションの動きを確認できるので、カクつきの原因を探すのに大活躍してくれそうです。
      重ね重ねコメントどうも有難うございます。

      削除