Stardew Valleyで、カスタムNPCを自作したい!という方のための作り方講座、今回は画像編です。
ポートレイト(顔グラ)とスプライト(歩行グラ)の準備の仕方、規格などなどを紹介します。
ポートレイトはともかく、スプライトはNPCの性別によって描くものが異なってくるので、そこらへんのことも含めて。
また、応用編として、季節やマップごとに画像を変えるための記述の書き方も説明します。
なお、NPC MODの作り方の基礎となる土台は下記で解説しています。
こんな内容だよ
カスタムNPCを作る上で必要になる画像
カスタムNPCを作ろう!となった時に用意しなければいけない最低限の画像は、この2つ。
- NPCのポートレイト(portraits.png)
- NPCのスプライト(sprites.png)
とりあえずカスタムNPCを作ってみたいという人は、上記の2種類の画像を用意すればOKです。
ところで、カスタムNPCを一通り作り終えたあと、もしかしたら「季節ごとに画像を変えたいなぁ」とか「浜辺では水着を着てほしいなぁ」とか、「ハロウィンのお祭りでは仮装させたい!」と思うかもしれません。
やり方はのちのち詳しく説明しますが、そんな時には、こんな感じで画像を用意することになります。
「assets/Portraits」フォルダ内
- あなたのNPCの名前_spring.png
- あなたのNPCの名前_summer.png
- あなたのNPCの名前_fall.png
- あなたのNPCの名前_winter.png
- あなたのNPCの名前_bikini.png
- あなたのNPCの名前_spiriteve.png
- あなたのNPCの名前_winterstar.png
- あなたのNPCの名前_flowerdance.png
- あなたのNPCの名前_rain.png
「assets/Sprites」フォルダ内
- あなたのNPCの名前_spring.png
- あなたのNPCの名前_summer.png
- あなたのNPCの名前_fall.png
- あなたのNPCの名前_winter.png
- あなたのNPCの名前_bikini.png
上記の構成や、「.png」の前の名称はあくまでも一例です。
例えば、ポートレイトでは「雨の日」用の画像を用意するけど、スプライトでは用意しない、なんてことも問題ありません。逆もしかりです。
スプライトは1種類だけで、ポートレイト画像だけ細かくいろいろ用意したい!なんてことも可能です。
画像の名前も、例えば「spring.png」だけでも構いません。
ただ、名前に関しては、Content Patcherの仕様上、注意したい点もあります。詳しくはのちのち。
ポートレイト
Stardew Valleyのゲーム上における、ポートレイト画像の扱われ方について説明していきます。
英語にはなりますが、スタデューバレーwikiのMOD作成ガイドの「Portraits」の項にも説明がのっていますので、合わせてどうぞ。
ちなみに、ポートレイトは、日本語では顔グラ、顔グラフィックと呼ばれることもある画像のことです。
RPGツクールなどを触ったことのある人はおなじみなのではないでしょうか。
ポートレイト画像に関して、簡単にまとめるとこの通りです。
- 1マスは64×64
- 2列で並べていく
- 0~5番はどんな表情を描くべきかが決まっている
- とはいっても、描かなくても問題ない(例:4番だけ空欄など)
- 0~5番を全部描く必要はない(例:0~2番だけ描く、など)
- 下方向に伸ばすことで、いくらでも表情を追加できる
ちなみに、列は「縦方向」、行は「横方向」のことを指します。念のため……。
1マスは64×64
Stardew Valleyで使われているポートレイトの1マスの規格は「64×64」です。
64×64のマスを2列に並べた画像をポートレイトとして扱います。
例として、アビゲイルさんのポートレイトを見てみるとイメージが掴みやすいはず。
上記の画像のような感じに並べ、追加したい表情がある場合は下方向にどんどん追加できます。
0~5番は表情が決められている
ポートレイトは、0~5番のマスのみ、どのマスにどの表情が来るかが決められています。
6番目以降の表情はこのような指定がないので、完全に自由です。
ここにポートレイトを描く時用のテンプレート画像があるので、使わせてもらいましょう。
この画像はスタデューバレーwikiのMOD作成ガイドに貼られているもので、DiscordのユーザーTheLimeyDragon#1993さんが制作したものです。
テンプレート画像を見てもらうと、1列目の左上に0、その隣に1、そして2列目の左側のマスに2……と数字が書かれています。
この数字は、そのマスの番号です。
このテンプレート画像は、0~5番までの「表情の指定があるマス」を描く時に、どの表情をどのマスに描けばいいか、を分かりやすくしたものになります。
0~5番までの表情は、以下のような決まりがあります。
数字で書く場合 | 英語で書く場合 | 説明 |
---|---|---|
$0 | $k | キャラクターのデフォルトとなる表情。 表情を指定しなかった場合、常にこの顔が表示されます。 |
$1 | $h | 笑顔。happyのhです。 |
$2 | $s | 悲しみの顔。sadのsです。 |
$3 | $u | そのキャラ独特の、ユニークな顔。ここはNPCによって、どんな顔がくるか変わってきます。 例えば、アレックスならラグビーボールを持っている画像ですし、キャロラインなら怒ってる顔がここに描かれています。 |
$4 | $l | 愛の顔。つまり、プレイヤーにデレる時の顔です。照れてる顔みたいな解釈でいいかと思われます。loveのlです。 |
$5 | $a | 怒ってる顔。angryのaです。 |
$ <id> (例:$6 など) |
6番目以降の顔は、「$数字」で指定していきます。 上記の表情以外の顔も表示させたい場合は、ポートレイト画像を下方向にどんどん伸ばしていくことで、追加できるというわけです。 |
「$0」や「$k」は、NPCの台詞を記述する時に使うことのできる「表情を変えるためのコマンド」です。
「$0」と「$k」など2種類の書き方があるものは、どっちを書いても良いです。お好みの問題です。
どっちを書いても、どちらも同じ「普通の表情」を表示することになります。
0~5番は表情が決められているため、番号だけでなく「$k」や「$h」といった表記が用意されているというわけなのです。
6番目以降の表情には、決められている表情がありません。
なので「英語での表記」がありません。番号での記述をすることになります。($6や$7などなど)
上記のテンプレート画像には5番目までのマスしか用意がないですが、もっと表情を追加したい!という場合には下方向に画像を伸ばすことでどんどん追加していくことができます。
全表情を用意する必要はない
ちなみに、0~5番までは表情の指定があるからといって、0~5番全ての表情を用意する必要はありません。
また、「この番号には絶対この表情を描かないといけない!」ということもありません。
実際に、キャロラインというNPCのポートレイトは4種類しかなく、「ユニーク表情を描いてね」と定義されている3番目のマスに「怒っている時の顔」が描かれています。
ただ、もし0~5番の表情を全て描く予定なら、上記の指定通りのマスにその表情を描くことを推奨します。
というのも、NPCには「NPC全員共通で表示される台詞」がいくつか設定されており、その中で表情コマンドが使われている可能性もなきにしもあらずだからです。
つまり、例えば$h(笑顔)の表情のマスに怒っている表情を描いてしまうと、もし「NPC全員共通で表示される台詞」の中で$hというコマンドが使われていた時、あなたのNPCは怒りの顔で、その台詞(本来は笑顔で言われるはずのもの)を言ってくることになる、というわけです。
表情の追加は下方向に伸ばす
画像を下方向に伸ばす時は、必ず「ドット64マス分、下方向にサイズを大きくする」を行ってください。
というのも、ポートレイト画像の1マスは64×64だからです。
横幅はもう固定されているので、マスを増やしたい時には64マス分下方向に増やすことで、自動的に表情2個分のマスが追加されることになります。(1行は2列なので)
スプライト
お次に、ゲーム内におけるスプライトの扱われ方について説明します。
英語ではありますが、スタデューバレーwikiのMOD作成ガイドの「Overworld sprites」の項にも説明が書かれています。
ちなみに、スプライトは日本語では「歩行グラ」「歩行グラフィック」と呼ばれたりもします。
こちらもRPGツクールなどを触ったことのある人にはおなじみな言葉のはず。
スプライトに関して簡単にまとめると、この通りです。
- 1マスは16×32
- 4列で並べられている
- 男女で描くべきものが異なってくる
- 描く必要のあるマスと、描かなくて良いマスがある
スプライトを描くときに、何より気を付けておきたいのは「男女で描くべきマスが変わってくるものがある」という点です。
スプライトは、1マスが16×32ドットのサイズです。
これを縦4列に並べたものを1枚の画像として扱います。
スプライト画像がどんなものなのかは、とりあえずアビゲイルさんのスプライトを見てみましょう。
上の4行が歩行用のグラフィックです。
この歩行用のグラフィックが空欄だと、マップ上でも透明になってしまいます。
描くのが面倒な場合でも、静止状態のスプライトのコピペでもいいので、とりあえず何かしらで全部埋めておくのがおすすめ。
スプライト画像のどのマスが何に該当するのかは、この通り。
スプライトの番号 | 使われる場面 |
---|---|
最初の4行(0~15番目) | 静止状態と、歩行のアニメーション。 一番左の列がNPCが立ち止まっている時のスプライトです。 NPCが歩行する際には、一番左側の画像から右へと順番に表示され、一番右側のものが表示されたら折り返して戻ってくる、の繰り返しです。 |
女性NPCの場合:40~47番目 | これはフラワーダンスで使用されるスプライトです。 フラワーダンスの「ダンスを踊っているシーン」で使われます。 番号の通り、女性NPCの場合は描くべきスプライトがちょこっと多くなってます。 |
男性NPCの場合:44~47番目 | |
女性NPCの場合:36~38番目 | これは結婚式で使われるスプライトです。 男女ともに3種類のスプライトを用意する必要があります。内容は、番号が若い順に「正面・横向き・キスをする時の画像」です。 |
男性NPCの場合:48~50番目 | |
28番目 | キスをする時のスプライト。 カスタムNPCの場合は、左向きに描きます。(プレイヤーが左側にくるので) |
上記の表のものは、最低でも用意したい(埋めておきたい)スプライト画像のマスです。
アビゲイルさんのスプライト画像だけではどのマスが何番か分かりづらいので、以下のテンプレート画像を参考にしてください。
スプライトのテンプレート画像
この画像はスタデューバレーwikiのMOD作成ガイドに貼られているもので、DiscordのユーザーTheLimeyDragon#1993さんが制作したものです。
先ほどのポートレイトのテンプレート画像を作成してくださった方と同じユーザーさんです。
上記のテンプレート画像を見てもらうと、マスごとに色分けされ、それぞれ番号が振られているのが分かるはずです。
このテンプレート画像上で、何かしらの文字が書かれているマスが、用意しておきたいスプライトのマスになります。
ちなみに、黒と灰色のマスで文字も何も書かれていないものは、自分で指定しなければ表示されることのないスプライトになります。
マップ上でこんな動作をしてほしい!というものがない限りは空欄のままで何の問題もありません。
このマスには、例えば酒場の椅子に座ってほしいとか、浜辺で寝転んでいる画像がほしいとか、森の中でフルートを奏でてほしいとかとか…。
そういった、「追加でスプライトを用意したい時」に使います。
スプライトは、男女で描くべきマスが異なります。