ピクセルアートのキャラクターターンアラウンドシート
ターンアラウンドは、1人のキャラクターをあらゆる向きから同じサイズで見せるので、描く人もアニメーションを付ける人もコードを書く人も、同じものを見られます。3Dモデルからなら、Pixorがシート全体を1つのコマンドで作ります。
ターンアラウンドは何のためにあるか
キャラクターターンアラウンド(モデルシートや設定画とも呼ばれます)は、1人のキャラクターを複数の向きから1ページに、1本の線の上に、すべて同じスケールで並べます。複数の人がキャラクターに触れるようになるとすぐ出てくる疑問に答えます。兜の高さはどれくらいか、剣を持つのはどちらの手か、マントの背面はどうなっているか、使える色はどれか。
ピクセルアートでは、さらに2つの役目があります。ピクセル数でサイズを決めるので、ゲーム用に次に描くスプライトも同じサイズになります。そしてパレットを決めるので、新しいフレームや手直しも同じ色にとどまります。ターンアラウンドは、企画書、依頼書、wiki、パックのページ、別のアーティストへの引き継ぎに使われます。
3Dモデルだと簡単な理由
手描きのターンアラウンドで難しいのは、各ビューの整合です。肩はどのビューでも同じ高さに、足は同じ線上に、横から見た図は正面と同じ高さでなければなりません。アーティストはそのためにページに補助線を引きますが、それでも各ビューを確かめる必要があります。
3Dモデルなら、ビューは1つのモデルを4方向から見たものなので、自然にそろいます。すべてのビューは同じピクセル/メートルでレンダリングされるので、高さ1.8mのキャラクターはどの向きからでも同じピクセル数の高さになり、そのスケールでレンダリングしたほかのモデルも隣に並べられます。
Pixorで作る
pxr turnaroundはモデルまたはプロジェクトを受け取り、シートを書き出します。
pxr turnaround knight.glb --preset selout --with golem.glb -o knight-sheet.png

書き出されるページの内容は次のとおりです。
- 4つのビュー:正面、斜め前、横、背面を、足を1本の線にそろえて並べ、それぞれの下にピクセルサイズを表示します(上の騎士なら29×55、32×55)。
- パレット:暗い色から明るい色の順に、色数を添えて。
- 身長比較表:半メートルごとに目盛りがあり、
--withで指定した各モデルのキャラクターが、すべて同じスケールで水平に見た状態で隣に並ぶので、目盛りは正確です。 - スケール:タイトル行に、ピクセル/メートルとキャラクターの身長(メートル)。
- 小さな「Made with Pixor」。
ページの隣にはknight-sheet.jsonが書き出され、スケール、各ビューのサイズ、16進数のパレット、身長が入っているので、wikiやビルドスクリプトで使えます。
サイズを選ぶ
既定では、キャラクターの高さは64ピクセルで描かれます。2つのフラグで変えられます。
--height 48は、メートルでの大きさにかかわらず、高さ48ピクセルで描きます。--ppu 32は、代わりに32ピクセル/メートルで描きます。キャスト全員を同じ--ppuでターンアラウンドにすれば、互いの本当の大きさの比較が見えます。スプライトをレンダリングしているピクセル/メートルを使ってください。選ぶときはスプライトサイズのガイドが役立ちます。
ページは整数ピクセルで描かれ、表示用に3倍に拡大されます。--page-scale 4でもっと大きくでき、それでもピクセルはぼやけません。--title "Sir Ash"はページに名前を付け(既定はファイル名)、--background "#1e2433"は後ろのスレート色を変えます。
スプライトのルックを保つ
モデルには、pxr renderのどのルック用フラグも使えます。選択的アウトラインには--preset selout、固定パレットには--palette、そして--bands、--line-colourなどです。プロジェクトは自分のモデルと自分のスタイルを持ち込むので、シートはゲームのスプライトとまったく同じルックを示します。
pxr turnaround hero.pixor --height 48 -o hero-sheet.png
これがいちばん便利な形です。モデルやルックが変わったら、同じ行をもう一度実行すればシートは最新になります。シートの内容は手描きではないので、描き直すものはありません。
キャラクターを比べる
--withを付けるたびに、身長比較表に同じスケールでモデルが加わります。
pxr turnaround knight.glb --with golem.glb --with mech.glb --ppu 34 -o cast.png
スプライトを作る前に、キャストをこうして確認します。ボスが主人公を本来の分だけ見下ろしているか、小さな敵がそのサイズでも見分けられるか、同じ身長のはずの2人が本当にそうなっているか。モデルのサイズがおかしいときは、シートではなく、モデルファイルかそのインポートスケールで直します。
そしてスプライトを作る
ターンアラウンドはキャラクターを説明するもので、ゲームが読み込むのはスプライトです。同じモデルと同じルックで、8方向のチュートリアルは歩きのすべての向きをレンダリングし、Mixamoのチュートリアルはダウンロードしたキャラクターでそれを行います。コマンドのすべてのオプションはマニュアルにあります。
よくある質問
キャラクターターンアラウンドにはどのビューが必要ですか?
ゲームのキャラクターなら、正面、斜め前、横、背面が定番です。見下ろし型ゲームなら、ほかの斜めの向きを足すこともあります。Pixorのスプライト自体は4、8、16方向にできますが、ターンアラウンドシートはキャラクターを説明する4つにとどめています。
3Dモデルなしでターンアラウンドを作れますか?
はい。頭、肩、腰、足の補助線の上に各ビューを手で描きます。3Dモデルなら、ビューは構造上そろうので、手描きで難しい部分がなくなります。
ターンアラウンドはゲーム内のスプライトと一致しますか?
pxr renderと同じルック用フラグ、またはプロジェクト自身のルックを使うので、同じ設定なら、ビューはスプライトシートと同じように描かれます。--ppuにゲームのピクセル/メートルを渡せば、ゲームのスケールで描けます。