立ちキャラ画像の作成と登録/パラメータの決定
概要
「作成用画像の作成」で作成した立ちキャラ作成用画像を利用して、立ちキャラ画像を自動生成するためには、 画像以外に、何種類のサイズ違いのボディを作るのかと、サイズ毎の各ボディの原画像からの縮小率と、 それぞれの縮小率における立ち位置の標準Y座標が必要になります。
ここではそれらをどのようにして決定し登録するのかを、具体的な例で示します。
必要なパラメータの設定
登録に必要なデータは、
  1. 各ボディの縮小率
  2. 各ボディの標準Y座標
のふたつだけですが、その前に、ボディ数自体を決めるために、サイズ違いを何種類作成するのかを決めなければなりません。
ここではまず最初に、前後に何種類の大きさを利用するのかを決めましょう。
ver.2010.3.3以降、ExHIBITが自動で管理しているキャラの前後関係は5ブロックですので、 そのブロック数以下にしておくと、前後関係の管理をする必要が無くなり大変楽です。
以下にいくつかの例を示します。
例1
  1. 全身ロング
  2. 標準より少し後ろ
  3. 標準
  4. 標準より1歩手前
  5. アップ
通常の演出を2〜4で行い、ロングとアップを追加したパターン。1〜4は同一のアイレベルで作成します。
例2
  1. 全身ロング
  2. 膝上
  3. 標準
  4. 標準より1歩手前
  5. アップ
1よりも奥行きを重視し、通常の演出を3〜4で行うパターン。1〜4は同一のアイレベルで作成します。
例3
  1. 全身ロング
  2. 標準の1歩後ろ
  3. 標準
  4. バストアップ
  5. 顔アップ
1よりも手前や表情を重視し、通常の演出を2〜3で行うパターン。1〜3は同一のアイレベルで作成します。可能なら1〜4を同一のアイレベルにします。
例4
  1. 標準
  2. アップ
例4.奥行きなんか使わないパターン。アイレベルの統一は行う必要がありません
いずれにしても開発するタイトルにあわせて自由に設定してください。
このチュートリアルでは、例1が採用されています。
なお、メッセージウィンドウよりも手前に表示される、いわゆる表情ウィンドウが存在する場合、 その出力も立ち画像で賄うことが多いのですが、表示ブロックはこの5ブロックの中に含まれないため、 専用のサイズを5種類以外に用意しても問題は起きません。
ただしポーズ選択等が若干見辛くなるため、5パターン内に収めた方が無難です。
奥行きの数が決定したら、次は縮小率アイレベル標準Y座標の決定です。
平均的な水平線画像 (download)
まず、そのゲームで平均的な水平線位置と物の大きさを持った背景を用意します。 この背景を基準背景と呼ぶことにしましょう。
次に、そのゲームで最も標準的な大きさのキャラの立ち画像を用意します。 このキャラとサイズを、それぞれ基準キャラ標準サイズと呼びます。
この画像が全ての立ちキャラ画像との相対的な大きさの基準になります。
立ち作成用画像(download)
基準背景基準キャラを用意したら、photoshopなどのグラフィックエディタで、1024 x 1152 (このチュートリアルは1024 x 576で作成しているので、 縦2倍)程度の画像を作成して背景をはりつけ、標準的な水平線位置を決定します。この画像の中央に、1024x576の枠を作ってそこで作業を行います。
昔から、ゲームの場合は画面の中央に水平線があることが多いようですが、TVアニメなどでは下より1/3程度にあることが多いようです。
ADVGの場合、画面下部にメッセージウィンドウが表示されることがほとんどなので、その領域を除いて見えている領域だけで考えれば、 TVアニメなどと比較的に通っていると言えるかも知れません。
実際に左図からダウンロードできる立ちキャラ作成用画像を、PSDから作成するチュートリアルは、こちら
アイレベルの決定
標準的な水平線を持った背景を配置した後、利用したい最小の縮小率を持った画像と、標準的な縮小率を持った画像を適切な位置に配置して、アイレベルを決定します。
大きさの違う同じボディ画像同士で、同じ部位を指し示す水平線(左図の赤い線)がアイレベルです。
実際の決定には、他のキャラとの対比表による上下がありますので、最初にアイレベルを引くときに利用した20%(別に25%でもいいですが、 もっとも利用しそうな比率がよいでしょう。左図は25%で他のキャラと並べた様子)で他のキャラとバランスを取って並べた後、アイレベルを決定しています。
他のサイズの配置
一度アイレベルが決定されてしまえば、前キャラ同一の操作でそれぞれのボディの立ち位置を決定できます。 左図は、このキャラの縮小率を、5%, 20%, 25%, 30%, 80% の5パターンとして、最初の4パターンをアイレベルにあわせて配置したものです。
アイレベル配置の例外
アップをアイレベル通りに配置すると、大抵画面の上部に顔が消えてしまうため、ある程度以上のアップはアイレベルを無視して、見た目で配置します。 同一ボディにアップが2種類以上ある場合は、それらのアイレベルはなるべく近づけた方が自然になります。
アイレベルを無視するケース
ただし、身長の違うキャラ間のアップのアイレベルは統一されていなくて構いません(通常は統一できません)。その部分は雰囲気と見た目を重視しましょう。
これを繰り返して、全ボディの縮小率を決定してもいいのですが、通常 同一キャラは彩色前にサイズを揃えてあるはずですので、 標準倍率として基準になるキャラの各サイズの縮小率を決定しておけば、 他のキャラは、標準サイズの縮小率を設定することで、他のサイズの縮小率を計算することが出来ます。 下図のXLSでは、標準倍率に菫子(CID:4 BID:0)の各サイズの縮小率を指定しています。
charaSize.xls (download)
左図は、その計算用のXLSです。
緑の部分に入力すると、灰色の文字の部分に計算された縮小率が出力されますので、その縮小率をphotoshop上で適用して各ボディの表示位置を決定するのに利用してください。 CIDはキャラクターID、BIDはボディID、もっとボディがたくさんある場合は、‥‥部分に行をコピペします。 ロングからアップまでの項目は便宜上の名称で、参考身長にはそのキャラの設定上の身長をメモ変わりに書いておきますが必須ではありません。
必要に応じてダウンロードしてご利用ください。
これで全キャラ(または全ボディ)の縮小率が決定しましたので、次に標準Y座標を求めましょう。
標準Y座標の取得
photoshop上で、標準Y座標を取得したいボディのαチャンネルを非適用にして、ビューの上からの距離を取得すれば、それが標準Y座標になります。 左図では、キャラの画像がビューの上端よりも30ピクセル上にありますから、-30となります。
同様に、もしビューの上端よりも30ピクセル下なら、30となります。
配置.xls (download)
取得した基準Y座標はCID-BIDと関連づけて、どこかにメモしておきましょう。
左図にある、配置.xlsに記録すると、変換用のcnfファイルを自動出力できて便利です。
行は適切に増やしてください。
CID(A列)はキャラIDです。A列に記入すると自動的にCID(K列)に複製されます。
S-BODY(B列)は、オリジナルの立ちキャラ画像データを作成するために利用するBIDです。
実際に演出に使用されゲーム中で利用されるボディIDは、次のD-BODYで、S-BODYは、あくまでもオリジナル画像で一意なBIDとなります。 ですから、実際には、S-BODY:0から、D-BODY:0(ロング),1(標準奧),2(標準),3(標準前),4(アップ)を作成し、 S-BODY:1から、D-BODY:5(ロング),6(標準奧),7(標準),8(標準前),9(アップ)を作成しても構いませんが、 混乱を避けるため、慣例的に、S-BODYには、それから作成するD-BODYの範囲の一番小さなIDが利用されています。
例えばこのチュートリアルは、奥行きを5パターン作成していますから、 CID:4の菫子なら 0004.0000.P.000.000.png (S-BODY:0)から、D-BODYのBID:0〜4を、0004.0005.P.000.000.png (S-BODY:5)から、D-BODYのBID:5〜9を作成しています。
D-BODY(C列)は、実際に演出で使われゲームで利用されるボディIDです。
サイズ違いがある場合は、その部分を連番で取り扱うのが便利です。
CY(D列)は、対象ボディの標準Y座標です。上記で取得した標準Y座標はこの部分に書き込んでください。
CX(E列)、CW(F列)は、横の元画像クリップ領域を指定します。
横に大きく手を広げていたり、箒や剣を振り回したりしていると、横に広い画像になります。 ところが、例えば顔のアップなどでは、もの凄く広い空間が顔の横に出来ることがあります。 そういう部分をカットして最適化するためにこのパラメータを利用します。 通常、CXは0で、CWは-1で構いません。
CWが負の値の場合、次の意味を持ちます。 現在-2および-3は未実装です。
-1画像の幅
-2Y=0,Y=H-1,Y=H/2 の位置で画像を横スキャンして画像の存在している最大幅になる。Hは高さ。YはY座標。
-3-2と同じだが、全縦ラインについて調査する。
CH(G列)は、クリップする高さ。通常は-1を指定してください。
flags(H列)は、フラグです。 今のところ256マスクを利用する場合は 1 を、17マスクの場合は0を指定します。省略すると0です。
postCnf.txt用(I列)は、出力専用で、A〜H列の入力からpostCnf.txtを作成します。
postCnf.txtは、キャラ画像を作成するためのコンフィグレーションファイルで、後ほど利用します。
K列以降は、登録後のキャラ補正用データです。
CID(K列)は、A列によって自動設定されます。
BID(L列)は、C列によって自動設定されます。
BLOCK(M列)は、システムが管理している前後関係を表す数値で、0〜4が指定できます。 0が最も奧で、4が最も手前です。
GROUP(N列)には、グループIDが指定できます。
グループIDの指定を行わない場合は、-12345を指定してください。
グループIDの値は、正の値の範囲でユーザーが任意に決定することが出来ます。(大抵は1から順に使います)
通常、異なるボディIDを持った立ちを連続して表示する場合(ポーズ変えの場合)、 指定時間のクロスフェードが適用されますが、その2つのボディに同一のグループIDが設定されている場合は、 クロスフェードを使用せず、カットインが適用されます。
例えば、笑顔→笑顔+飛び出す汗、のように、認識上は表情変えで有りながら、マスクが変わるために別ボディに分類されているような立ちを、 同一のグループIDを付けることによって、表情変えと同等に利用する目的で作られた機能です。
POSX(O列)、POSY(P列)は、定義時表示補正位置を指定します。 通常POSYは自動で設定されるため、操作しないことを意味する-12345を指定します。 POSXは、同一キャラの各ボディのセンターがずれているとき手動で調整するのに利用します。 こちらも設定を変更したく場合は、-12345を指定してください。
retouchのキャラ表示は、デフォルトでは、指定されたX座標に立ちキャラ画像の中央をあわせて表示しています。
したがって、片手を広げていたり箒や剣を振り回していると、立ちキャラ画像の中央にキャラの頭や体が来ないことがあります。 多くの立ちキャラ画像は、概ね中央に体幹が位置しているため、これらのものとずれたものを続けて表示すると、立ち位置がずれてしまいます。 POSXが指定されると、システムは指定するX座標にPOSXを加えて表示するようになります。この値を適切に設定することで、 立ち絵間の体幹のずれを吸収し、違和感のない切り替えを実現します。
TX(Q列)、TY(R列)は、デフォルト注目点の指定です。
注目点とは、ビューにカメラが適用されていて、そのキャラがカメラの管理対象になっているとき、 自動で画面中央に配置する座標です。
この座標が指定されない場合、表情替えがあれば表情替えの中央を、なければ、X座標はレイヤーの論理的な中央を、 Y座標はレイヤー全体の上1/4を注目点として利用します。
-12345を指定すると、非設定状態のデフォルト値が適用されるようになります。通常は、-12345でOKです。