■チュートリアル:キャラクターの立ち画像を作成する |
キャラクターは、「キャラクターの作成」を行うことで、ゲーム上で使用できるようになり、「キャラの立ち画像の登録」を行うことで、立ちキャラを表示することができるようになります。このチュートリアルでは、キャラクターの立ち画像を作成し登録する方法を学びます。
|
 |
キャラクターの作成と、キャラクターの(立ち)の定義は別物です。
立ち定義がなければ、キャラを登場/退場(enter/leave)させることはできませんが、それ以外のキャラに関するコマンドは、キャラクターを作成するだけで、全て利用できるようになります。 |
|
 |
このチュートリアルの実行には、optpix ver.1.31 が必要ですが、他のツールを利用して一部手作業で作成することも可能です。 |
|
|
■サンプル素材(シルエット1号と背景1点) |
グラフィックエディタで作成した立ち画像を、実際にゲームで使える形にして登録するチュートリアルには、素材が必要です。
自分で用意した画像データがある方はそれをご利用ください。試しに作成手順を実行してみたい方は、サンプル素材F001をダウンロードするのがお手軽です。
サンプル素材のライセンスについては、こちらをご覧ください。 |
A.シルエット1号用立ち画像データ(サンプル素材F001)をretouch.infoからダウンロードする
B.背景(800x600
(c)lotus-inc サンプル素材C001)をretouch.infoからダウンロードする
なお、sketchで新規プロジェクトを作成するのが面倒な方は、定義済みのprojectもあります。
C.sketch
ver.1.20で作成したdef定義済み新規プロジェクト環境をretouch.infoからダウンロードする
optpix ver.1.31 をお持ちでない方や、ちょっとだけさわってみたいという方のために、作成済みのデータも用意されています。
D.上記Cに適用する作成済みデータと
defChara.rsdをretouch.infoからダウンロードする。
適用詳細は、上記に含まれているreadme.txtを参照してください。
|
|
■チュートリアル本体 |
このチュートリアルは、サンプルキャラのシルエット1号を利用して、キャラID4番の画像を登録します。
ついでに、ひとつのシルエット1号画像から、大中小3種類の立ちキャラを作成することにします。 具体的な手順は次の通りです。
1.雛形となるプロジェクトの作成
2.サンプル素材(シルエット1号)のダウンロード
3.画像データの配置
4.実際のコンバート前編。ここで大中小のキャラ画像が作られます。
5.実際のコンバート後編。減色(ここで、optpix ver.1.31が使われています)とカットと値の出力。
6.poslog.txtを用いたdefCharaの定義
7.動作確認
8.付録:画像データファイル名の命名規則
自分で作成したキャラデータを利用する場合は、8の画像データファイルの命名規則に従って、あらかじめデータをリネームしておかなければなりません。ダウンロード素材は、最初からこの命名規則に則ったファイル名になっています。 |
|
1.雛形となるプロジェクトの作成 |
|
|
2.サンプル素材(シルエット1号)のダウンロード |
|
|
3.画像データの配置 |
 |
ダウンロードしてできた32個のpngを左図のproject/resource/キャラクター/立ち/original/フォルダにコピーします。
この際、2桁のキャラID+3桁のbodyIDの名前を持ったフォルダを作成し、その下に該当するpngを格納するようにします。
例えば、0004.0006.P.000.000.png
は、キャラIDが4で、bodyIDが6のデータです(詳しくは立ちキャラ命名規則を参照してください)ので、04006というフォルダを掘って格納します。 |
 |
シルエット1号には、ボディが9枚格納されていますので、最終的に掘られるフォルダは左図のようになります。
それぞれのフォルダに格納されているファイルは、上記の規則に沿っています。
例えば、04007/には、0004.0007.* のファイルが、04000/には、0004.0000.*のファイルが格納されています。 |
|
|
4.実際のコンバート前編 |
前編では、1つのシルエット1号から、大中小3枚の画像を作り出し、中間フォルダに格納します。ユーザーがやるべき事は、project/resource/キャラクター/立ち/cnf/にある、preCnf.txtを編集することと、gyu.exeにパスが通されていなければ、project/resource/キャラクター/立ち/0.preCreateCharacter.batを編集するし、実行することです。 |
 |
まず、preCnf.txtを編集しましょう。preCnf.txtは、左図の位置にあります。
|
|
|
 |
0.pre.createCharacter.batを実行すると、コマンドプロンプトが開いて、縮小作業を行います。
しばらくたって、作業が終了すると、左図のようなフォルダ構造になり、big, middle, small フォルダにそれぞれ、大中小の画像データが格納されています。この段階ではたんにサイズを変更した画像データにすぎませんが、前編はこれで終了です。
後編は、このデータを利用して、適切なカットや座標の算出を自動で行います。 |
|
|
5.実際のコンバート後編(ここで、optpix ver.1.31が使われています) |
|
|
6.poslog.txtを用いたdefCharaの定義 |
 |
sketchで、sampleProject0001.rpjを開いたら、定義/defCharaノードをダブルクリックして編集ビューを開きます。
そして、ここを参考にして、標準表記名「シルエット1号」 ボディ数30でシルエット1号を作成します。
途中キャラクターの新規登録ダイアログでは、 CharacterIDを手動設定にして、CharacterIDには4を指定してください。
|
 |
登録が終了すると左図のようになります。
次にこの3行目に、5で作成されたposlog.txtをドラッグ&ドロップしてください。 |
 |
すると左図のようになりますのでセーブしてください。
これでキャラの立ち画像登録は終了です。
目パチも口パクも表情替えも、ボディアニメーションも、その座標や領域を全く気にする必要がありません。 |
|
|
7.動作確認 |
|
6まで終了したら、キャラクターが正常に登録されているかどうかを確かめましょう。
まず、sketchで第1章/startノードをダブルクリックして、演出ビューを開きます。
|
 |
背景がないと寂しいので、サンプル素材C001(背景)をダウンロードして、展開し、できあがったC001_001.pngをstartの演出ビューにドラッグ&ドロップします。 |
 |
すると画像データの作成ダイアログが開きますので、ファイルIDに300を指定して「出力」を押してください。初めての登録なら、フォルダの作成確認が表示されますが「はい」を押して進んでください。これでC001_001.pngが300番画像としてコンバート&追加されました。 |
 |
startの演出ビューのindex-00002の空欄で右クリックをすると、コマンドパレットが開きますので、「イベント演出」-「描画」-「イベントの表示」を選択して実行を押してください(イベントの表示をダブルクリックしてもOKです) |
 |
フルカラーへの描画ダイアログが開きますので、CGID指定に、先の300を入力してOKを押してください。 |

↓

|
こんな感じになって描画コマンドが入力されました。
詰まっているとなんとなくいやなので、index-00003のシーン移動コマンドで、iキーを押してください。カーソルの位置に空行が挿入されます。適当に5回くらい押して空行をいれておきましょう。
|
 |
ここでメッセージを表示して、キー待ちを行います(そうしないと実行してもすぐ終了してしまうから)
挿入したい行を右クリックして(例えばindex-00003)コマンドパレットを表示し、「メッセージ」-「メッセージの入力」を実行してください。
|
 |
メッセージの入力ダイアログが開くので、発言者からシルエット1号(登録されているはずです)を選び、適当にメッセージを入力して、OKを押してください。 |
 |
するとこうなります。 |
 |
準備はできました!
メッセージの次の行を右クリックして、コマンドパネルを開き、「キャラ演出」-「個人処理」-「登場」 を実行します。 |
 |
すると、立ちキャラ表示ダイアログが開きますので、キャラから、シルエット1号を選択してください。 |
 |
そして参照ボタンを押すと、登録されたボディとフェースの一覧が開きますので、表示したい組み合わせを選択してください。今回は、ボディID10(通常立ちの中サイズ)を選びましょう。表情替えは存在しないので、face選択には1枚しか表示されていないはずです。そこをクリックしてください。 |
 |
するとこうなって、立ちキャラが登場するはずです。 |
 |
これだと、立ちキャラが登場した瞬間にゲームが終了してしまいますから、index-00003のメッセージ表示を選択して、CTRL+Cでコピーし、index-0005を選択して、CTRL+Vを入力しましょう。00003が00005にコピーされたはずです。
ついでに、後3回くらいCTRL+Vを押すと、左図のようになります。 |
 |
では実行してみましょう。
初めて実行するときは、「新規プロジェクトの作成」チュートリアルの「5.実行してみる‥‥の前に」を参照して、RLDの一括出力を行ってください。実行の仕方は、同チュートリアルの
「6.実行してみる」と同様、編集ビューのメニューから、「(D)ebug」-「デバッグ実行(D)」を実行するだけです。
キャラが表示された後、何度かクリックしていると終了するはずです。 |
 |
ついでに標準フレームをつけましょう。
index- 00002を選択して、右クリックしてください。 |
 |
コマンドパレットが開いたら、「マクロ/M.Bullet」-「glb.初期化」-「RSDの標準的な先頭」を実行してください。
|
 |
実行した瞬間に、選択したマジックブリットがカーソル位置に挿入されますので、セーブ(ALT+F
-> S)してください。
|
 |
実行すると、標準フレームが表示されるはずです。 |
 |
シルエット1号には、ボディID5番にアニメーションのサンプルが含まれています。
それを表示してみましょう。 まず、キャラ表示コマンドの後ろに、メッセージコマンドをひとつ挟んだ位置に、キャラ登場コマンドを挿入します。
キャラはシルエット1号。ボディIDは15を選択してください。すると、左図のようになります。
|
|
 |
コマンドパレットから入力してもかまいませんが、すでに入力されている同じキャラの登場コマンドを、CTRL+C/CTRL+Vでコピペして修正した方が快適です。 |
|
 |
実行すると、標準ポーズが表示された後、キャラがアニメーションしながら横を向きます。
その際、標準ポーズから右へキャラがずれてみっともありません。
これは、キャラ作成時の自動切り出しによって、画像の不要な部分がすべて捨てられることと、キャラ表示はその画像のセンターを指定位置にあわせることで行われるためです。
sketchでは、この問題に対処するためにキャラ位置の補正が用意されています。sketchにおけるキャラ位置補正には3種類ありますが、こういった基本位置に関係する補正は(リンク先の)1番目にある「定義時の補正」を利用します。 |
 |
定義/defCharaノードを編集ビューで開いて、index-00017あたりにある、シルエット1号のボディID15の定義をダブルクリックしてプロパティを開いてください。表示位置補正を利用するにチェックを入れて、補正座標
-27,0 を定義します。これでデフォルト位置よりも左に27ピクセルずれて表示されるようになります。 |
|
もう一度、startノードに戻って、実行を行ってみましょう。今度はほとんどずれないことが確認できるはずです。
しかし、その代わりポーズが変わる瞬間に、なんだかチカっと光るような気がします。
これは、ポーズが変化する場合キャラのクロスフェードが行われるのですが、同じポーズでクロスフェードが行われた場合、合成後の透明度が一時的に変化することによって発生しています。
sketchではこの問題を回避するために、「ボディのグループ化」が用意されています。 |
 |
先ほどと同様、定義/defCharaノードを開いて、シルエット1号のボディID15定義のプロパティを開いてください。
グループIDを利用するにチェックを入れ、1を指定してOKを押してください。 |
 |
同様に、15番とグループ化したい10番もプロパティを開いてグループID1を定義しておきましょう。
|
|
 |
グループIDは1以上の正の整数で、ボディID全体で一意に識別可能で32bit整数の範囲にある値ならなんでもかまいません。同一のグループIDを持ったボディを連続で表示する際、クロスフェード等のエフェクトを利用しなくなります。 |
|
 |
なお、今回は10->15のためにこの処理を施しましたが、15->10でも同様にクロスフェードを利用しなくなるため、今回の処理がふさわしいかどうかは演出によります。
|
|
 |
実行して、今度はうまくつながっていることを確認してください。 |
|
ここから先は上級です。
ボディアニメーションを定義したとき、retouchは自動的に各パターンを順番に表示するシーケンスを割り振ります。そのため、上記のボディ15は、何もしなくても動作したわけですが、このシーケンスを変更したいことがあります。例えばずっと動かし続けたい場合等ですね。この場合、シーケンスを直接定義することで対応します。なお、シーケンスの文法はこちらを参照してください。
|
 |
defCharノードの、シルエット1号bodyID15の定義のプロパティを開いてください。
左図で""に囲まれた選択している部分がこのアニメーションのシーケンスを定義しています。この部分をCTRL+Cでコピーして、テキストエディタ等へ張り付け、A.B.C.D.E.F.G.H.0[....]を、A.B.C.D.E.F.G.H.G.F.E.D.C.B.A.5[....]
と変更してみましょう。簡単に想像できると思いますが、これは横向いて元に戻してを1秒毎に繰り返すシーケンスです。
|
|
この定義を行った、ボディID15の定義部分をMagic-Bulletにしたものを、ここ(retouch.info内)においておきます。これをダウンロードして、編集ビューへドロップすると、ドロップした位置に修正済みのコマンドが挿入されます。すでに定義されている、15番ボディの定義行は、index部分をダブルクリックして無効化しておきましょう。
|
 |
セーブして start ノードを実行すると、確かに上記の動作をしていることが確認できるはずです。
|
|
今回の実行で修正したノードのRSDをアーカイブしたものをアップしておきます。
これをダウンロードして展開してできたRSDファイルを、sampleProject0001/ide/data/rsd/ にコピー(上書き)することで、最終状態にする事ができます。 |
|
8.付録:画像データファイル名の命名規則 |
以上のように、sketchでは、縮小率とY座標補正値Hさえ用意すれば、残りの面倒な動作や表示座標の取得等はすべて自動で計算してくれます。
ただしそのためには、画像データに正しいファイル名をつけて、正しいフォルダにセットする必要があります。
ファイル名の付け方のルールの詳細は、「キャラ作成用画像の命名規則」を参照してください。 |
|