FC2 Analyzer

あなたも作れる!NPCパック。

  • 2016/04/05(火) 09:00:00

あなたも作れる!
NPCパック。

※但しある程度パック製作に慣れている人が前提。



知っている人はこんにちは。
知らない人は覚えてね。

宝条みちるです。

さて去るUpdate、RTMバージョン1.7.10.28からNPCが追加実装されました。
ここではそのNPCパックの作り方をご紹介したいと思います。

※ここではWindows環境下にある方に向けて解説を行います。
※Mac環境下の方は適宜記述を読み替えてご利用下さい。
※Mac環境は私が持っておりませんので、質問されてもわかりません。多分。



目次:
前段. 用意するべきもの
1. 人のテクスチャを作る
2. jsonファイルを作る
3. パック化
後段. トラブルシューティング







前段. 用意するべきもの
特別なものの用意は必要ありません。
強いて言うならテキストエディタ(メモ帳でも十分……?)、画像編集ソフトをご準備下さい。

また、今回の解説では拙作のこちら、NPC作成キットを使用しています。ご利用ください。
パスワードは『NPC』です。


テクスチャを除き、最初から全部形作ってあります。



1. 人のテクスチャを作る
著作権の関係でこのセクションで画像が出せないのがつらみある……。

人のテクスチャはMinecraft v1.7前後までの、小さめの画像が対象になります。
例としてはこちら様の記事のような感じです。
間違っても現行仕様の大型テクスチャで作らないように。

具体的に説明しましょう。
現在Minecraft v1.7以後仕様では、頭・胴体・腕・足に対するテクスチャが全て個別に、2重に設定可能になっています。
その為右腕と左腕で別々にテクスチャを割り当てたり(右腕だけ半袖にする等が可能)、上着を定義しておいてゲーム内で脱ぐということが可能です。
しかしながらRTMのNPCが使っているのは1.7以前の旧テクスチャですので、腕足は左右で同じ、頭等も着脱不可となっております。
その為、大型テクスチャで作ってしまっても無駄になることが想定されます。
但し、大型テクスチャは下部を切り取ることで旧テクスチャに戻すことができるので、加工自体は簡単です。

テクスチャをこれからお作りになられる方は、こちら様のエディタ等が便利かと思われます。
旧テクスチャしか作れませんし。間違うこともありません。



テクスチャが出来上がった
適当に名前を決めて下さい。
無論、本当に適当ではダメです。
使っていいのは日本語や2バイト文字ではなく、半角のアルファベットだけです。

それと、ファイル名の後ろに作者の名前を付けておけば被り防止になります。
数が多い時には数字を後ろにつけるのもいいでしょう。
例えば大人を沢山作りたいのだったら、"otona01_byXXX.png"という名前でも良いと思われます。
XXXにはあなたのID名などを割り当てて下さい。
誰でも考えつきそうな簡単な名前にしてしまうと、それこそ被った時に目も当てられませんので。




2. jsonファイルを作る
jsonは所謂『定義ファイル』です。
電車や自動車をお作りの方にはもうお馴染みでしょうが、今回初トライの方の為に説明をいたしましょう。
人のテクスチャはこのjsonによって呼び出され、Role(役割)や名前を定義されて初めてゲームへ出現可能となります。

ではこのjsonの中身を見てみましょう。
jsonファイルをお手近のテキストエディタへ放り込んでみて下さい。
ここでは、RTM本体に入っている『ModelNPC_PassengerNGT01.json』というファイルを開いてみます。


{
"name": "AttendantNGT01",
"texture": "textures/npc/attendant01.png",
"role": "attendant"
}


……何やらゴチャゴチャと英語で書いてありますね。
上の項目から順を追って解説します。


"name": "AttendantNGT01"
言わずもがなですが、そのNPCの名前ですね。
ここでは"AttendantNGT01"の""内の部分が名前になりますので、AttendantNGT01という名前がこれには振られていることになります。
これを読むあなたがこれからNPCを作ろうとしている場合、この名前はあなたが任意に名付けることになります。
呼び出しをする際に名前と姿で識別することになるので、ちゃんとした名前を決めることが必要です。

注意しなければならないのは、他と重複する名前にしないことです。
他と重複する名前にしてしまうと、テクスチャの呼び出し等で同じ名前である為にPCがどっちを呼んでいいのか迷ってしまい、最悪ゲームが起動しなくなります。
ので、例えば "○○○_by_あなたのID名" とかにしておくと、うまく起動するようになります。
日本語や2バイト文字は使わないように!クラッシュの原因になります。


"texture": "textures/npc/attendant01.png"
ここではNPCが身にまとうテクスチャを定義しています。
"textures/npc/attendant01.png"という定義はNPCのテクスチャの場所を定義しています。
この場合、『テクスチャフォルダのNPCフォルダの中にあるattendant01.pngというファイルを使って下さい』、と定義しているわけです。
ので、先ほど作った画像の名前をここではとりあえず付けることになります。
例えば、『otona01_byXXX.png』という画像を作ったなら、とりあえずここでは『"textures/npc/otona01_byXXX.png"』と定義すればOKです。


"role": "attendant"
ここではNPCに付与される役割 ( role ) を定義しています。
"attendant"と書いてある部分を差し替えることで、NPCに望ましい動きをさせることができるようになります。
定義可能な役割は以下の通りです。 "attendant" になっている部分を差し替えてください。

"attendant":
  鉄道係員
"guard":
  警備員。最寄りの敵を索敵して攻撃します
"mannequin":
  マネキン。その場から動きません。
"passenger":
  旅客。改札機から切符を持って入り、改札機から出ます。


例えば役割を『旅客』にしたい場合、記述が "role": "passenger" という形になれば問題ありません。




最終的に、『otona01_byXXX.png』という名前の画像を使った、
『otona01_byXXX』という名前の『旅客』のNPCを作りたい場合には、jsonの中身が


{
"name": "otona01_byXXX",
"texture": "textures/npc/otona01_byXXX.png",
"role": "passenger"
}


というような形になれば問題ありません。







3. パック化
最後に出来上がったjsonとテクスチャを使い、パックを作成しましょう。
ここでは私の作ったパック(『前段』の項目に記載)に基いて進めていきます。

パック上部(Readmeがあるところ)→assets→minecraft→models→jsonにjsonを、
パック上部(Readmeがあるところ)→assets→minecraft→textures→npcにテクスチャを放り込んで下さい。
あとはassetsとreadmeの部分が一番上になるように(解凍した時この2つが一番上に出てくるように)Zip化し、modsフォルダに放り込めば完了です!
あとはゲームを起動して、正常に追加されているか確認して下さい。



後段. トラブルシューティング
うまく動かない、起動しない時はこちらをご確認下さい。

・名前は合っていますか?
画像ファイルやjsonファイル、あるいはjsonの名前が合っているか確認して下さい。
ドットとカンマの打ち間違い、カンマの打ち忘れはありませんか?

・名前は重複していませんか?
作成したNPCの各種ファイルやその名前は、既に導入されているNPCと被っていませんか?
かぶっている場合、どちらかを変更する必要があります。