RimWorld Guide

Alien Race Face Animeの使い方 for RimWorld

Alien Race Face Animeの使い方

Overview

Alien Race Face Animeを使って、Alien Race種族に簡易的な顔のアニメーションを作ることができます。ここではこのMODを使ったアニメーションの作り方、このMODで使用できるDefの詳細を書いていきます。

0.前置き

Alien Race Face Animeはまだ公開したばかりなので、ゲームプレイ中に不具合や重み、競合が発生したりする可能性が比較的高いです。
また、使用の変更を行う可能性があります。その場合はできる限りこちら側のガイドも早めに更新します。

以上の点をご了承ください。よろしくおねがいします。

Alien Race Face Animeは「Alien Raceを元にした種族から、顔のアニメーションを作ることの出来る用になるMOD」です。
食事中や睡眠中などに簡単なアニメーションをつけたい場合におすすめです。

1.グラフィックの用意

まず、初めに追加する顔グラフィックの用意をします。
追加する顔グラフィックは、作成した種族の顔グラフィックを入れるフォルダをもとにして追加していきます。

今回は例として”LittleFairy/Race/Heads/”に追加のグラフィックを用意します。

ここには既に種族で使われている顔グラフィックがありますね。

次に、作成するアニメーション毎にフォルダーを作成していきます。
このフォルダー名はこの後のDefの設定のためにわかり易い名前にして置くことをオススメします。
例えば、食事中なら”Eating”とか、睡眠中なら”Sleeping”とか…

今回は食事中のアニメーションと睡眠中のアニメーションを作るのでこの2つを用意します。

空っぽのフォルダーが2つできました。

次にEatingフォルダーに行って食事中に口をパクパクさせるグラフィックを配置します。

配置するグラフィックは、このようなルールで名付けます。
“コマ数_既存の顔の名称”
※コマ数は0から始まります。

例:顔”Average_Normal”の最初のコマ
“0_Average_Normal_east”,”0_Average_Normal_north”,”0_Average_Normal_south”

例:顔”Average_Normal2″の3コマ目
“2_Average_Normal2_east”,”2_Average_Normal2_north”,”2_Average_Normal2_south”

このように、種族が複数の顔の形を持っていても同じファイルに入れておけば別々に処理します。

今回はそれぞれの方向のアニメーション画像を2コマ用意できました。

同じように、Sleepingにもグラフィックを配置していきます。

すべて配置し終わったら、グラフィックの作業は終了です。

2.種族をAlien Race Face Animeで使用できるように準備する

グラフィックを用意しましたが、まだこれだけでは種族を対応させることはできません。
Alien Race Face Animeを使用できるようにするには、種族のdefにmodExtensionsとして”AlienRaceFaceAnime.Addon”という物を用意する必要があります。

== サンプル ==

<AlienRace.ThingDef_AlienRace ~ 略 ~> ~ 中略~ <modExtensions> <li Class=”AlienRaceFaceAnime.Addon”> <usemod>true</usemod> </li> </modExtensions> </AlienRace.ThingDef_AlienRace>

これで、この種族でAlien Race Face Animeが使用できるようになりました。

3.AnimeDefの作成

さて、グラフィックが用意できたので次は実際に種族の顔をアニメーションさせるために必要なDefを作っていきます。

Defはどこに作ってもいいのですが、今回はわかりやすいように”AnimeDefs”というフォルダの中に”AnimeDefs.xml”を作成し、中身を作っていきます。

== AnimeDefs.xml ==

<?xml version=”1.0″ encoding=”utf-8″ ?> <Defs> <!– アニメーション –> <!– 睡眠中 –> <AlienRaceFaceAnime.AnimeDef> <defName>LitF_Sleeping</defName> <Race>LittleFairy_Pawn</Race> <Grapic>Sleeping</Grapic> <Priority>1</Priority> <Conditions> <li>ARFAnime.Sleeping</li> </Conditions> <Tick>100</Tick> <Cut>2</Cut> <Waittick>100</Waittick> </AlienRaceFaceAnime.AnimeDef> </Defs>

まずは睡眠中のアニメーションからです。
それぞれの内容を一つずつ説明していきます。

defName : このdefの名前です。すべてのMODでこれを被らせてはいけません。 Race : このアニメーションをどの種族に適用するかです。 作成した種族のdefNameで指定してください。 Grapic : このアニメーションで使用するグラフィックのフォルダです。 先程用意した”Sleeping”フォルダを用意するため、今回は”Sleeping”とします。 Priority : 優先度です。低いほど優先的に表示されます。 Conditions : このアニメーションを表示させる条件です。<li>で区切ることで複数指定可能です。ここで指定した条件をすべて満たした時のみ、アニメーションが再生されます。 Alien Race Face Animeは新しく.dllを用いなくてもある程度のアニメーションが出来るように、いくつかの条件を.dllで用意しています。 今回使用しているのは”ARFAnime.Sleeping”という条件です。これは眠っているときに条件を満たします。 Tick : このアニメーションを表示させる判定をする間隔(tick)です。 この場合は100tick(1秒)に1回寝ているかどうかの検知を行います。 Cut : このアニメーションのコマ数です。 例えば、最初の部分は同じアニメーションを複数用意するという場合にこれを利用して表示させるコマ数をアニメーション毎に制限できます。 今回は2コマ用意しているため2とします。 Waittick : このアニメーションの1コマを表示する時間(tick)です。 この場合は最初のコマを1秒表示→2コマ目を1秒表示→アニメーション終了、となります。

さて、こうすることで”睡眠時に睡眠時用の顔グラフィックを読み取ってアニメーションさせる”事ができました。

続いて、食事時のアニメーションを作成しましょう。
== AnimeDefs.xml ==

<?xml version=”1.0″ encoding=”utf-8″ ?> <Defs> <!– アニメーション –> <!– 睡眠中 –> ~ 中略 ~ <!– 食事中 –> <AlienRaceFaceAnime.AnimeDef> <defName>LitF_Eating</defName> <Race>LittleFairy_Pawn</Race> <Grapic>Eating</Grapic> <Priority>200</Priority> <Tick>10</Tick> <Waittick>3</Waittick> <Cut>2</Cut> <Jobs> <li>Ingest</li> </Jobs> <Standonly>true</Standonly> </AlienRaceFaceAnime.AnimeDef> </Defs>

新しい部分を紹介していきます。

Jobs : これはどの仕事を行っているかを検知します。複数種類指定することも可能です。 今回の場合は”Ingest”なので”食事中”であるなら条件を満たしたことになります。 Standonly : これはtrueだとその場で立っている(移動していない)時のみアニメーションを再生させます。”Ingest”中は実は食事を運んでいる途中でも条件を満たしていることになっているため、これをtrueにしていないと食事をしている(=立ち止まっている)時ではないと食事を運んでいる途中でも口をパクパクさせるためおかしく見えてしまいます。この様に、立ち止まっている時のみアニメーションを再生させたい場合に使用します。

さて、こうすることで”食事時に口をパクパクさせるアニメーション”ができました。

4.まとめ

以上でこのMODの基本的な使い方は終了です。
元々は自分用に作ったためまだまだdll無しで指定できる条件が少ないなど、少々とっつきにくいところもあるとは思いますがうまく行けば表現の幅が広がると思うので、是非活用していただけたら幸いです。

ここでご覧いただき、ありがとうございました。
ここから下はおまけとして、このチュートリアルで使用していないものも含めたdefで使える記述を載せています。

Ex-1.defテンプレートと各項目の説明

ここでは、defのテンプレートと各項目の説明を載せます。

<AlienRaceFaceAnime.AnimeDef> <defName></defName> <Race></Race> <Priority></Priority> <Tick></Tick> <Waittick></Waittick> <Cut></Cut> <Grapic></Grapic> <Conditions> <li></li> </Conditions> <ContinuationConditions> <li></li> </ContinuationConditions> <Jobs> <li></li> </Jobs> <Standonly></Standonly> </AlienRaceFaceAnime.AnimeDef> defName : このdefの名前です。すべてのMODでこれを被らせてはいけません。 Race : このアニメーションをどの種族に適用するかです。 作成した種族のdefNameで指定してください。 Grapic : このアニメーションで使用するグラフィックのフォルダです。 Priority : 優先度です。低いほど優先的に表示されます。 Conditions : このアニメーションを表示させる条件です。<li>で区切ることで複数指定可能です。ここで指定した条件をすべて満たした時のみ、アニメーションが再生されます。 Alien Race Face Animeは新しく.dllを用いなくてもある程度のアニメーションが出来るように、いくつかの条件を.dllで用意しています。以下にその一覧を貼ります。 == 最初から用意されている条件(20/12/13時点) == ARFAnime.Sleeping : 睡眠中 ARFAnime.Unconscious : 意識不明時 ARFAnime.Rand25 : 25%の確率で(まばたきなどに活用可能) ARFAnime.Rand50 : 50%の確率で(まばたきなどに活用可能) ARFAnime.Rand75 : 75%の確率で(まばたきなどに活用可能) verupで追加予定。 =========================== また、.dllの知識があれば、複雑な条件を作ることもできます。(Ex-2参照) ContinuationConditions : 設定できる内容はConditionsと同じです。これが設定されている場合、これに設定されてある条件をすべて満たしていなければアニメーションを途中で打ち切り次のアニメーションを再生させます。例えば、食事中に食事が終わったら口パクを中断させたい時などに使用できます。 Jobs : これはどの仕事を行っているかを検知します。複数種類指定することも可能です。jobのdefnameで指定してください。 Tick : このアニメーションを表示させる判定をする間隔(tick)です。100tickが1秒です。 Cut : このアニメーションのコマ数です。 例えば、最初の部分は同じアニメーションを複数用意するという場合にこれを利用して表示させるコマ数をアニメーション毎に制限できます。 Waittick : このアニメーションの1コマを表示する時間(tick)です。 Standonly : これはtrueだとその場で立っている(移動していない)時のみアニメーションを再生させます。

Ex-2.自分で条件を作る(.dllの知識がある方向け)

AlienRaceFaceAnimeからAnime_Conditionを継承することで、アニメーションの条件を作ることができます。

Condition_Test.cs

using AlienRaceFaceAnime; using RimWorld; using Verse; namespace test { public class Condition_Test : Anime_Condition { /// <summary> /// アニメーションをする条件 /// trueなら条件を満たしている /// pawn : アニメーション対象のポーン /// </summary> public override bool Condition(Pawn pawn) { // ここに条件を入れていきます return true; } } }
SteamSolo.com