A TUTORIAL INTRODUCTION TO THE sketch
§リンク
  →チュートリアル一覧
  →GLOSSARY一覧
  →重要な情報一覧

§初めてのsketch
  1.新規プロジェクトの作成
  2.プロジェクトの設定
  3.キャラクターを作成する
  4.立ちキャラの画像定義
  5.音声再生を有効にする
  6.デバッグ
  7.製品を作成する(リリース)

§基本演出TIPS
  イベント画像の表示
  ズームを利用した表示
   

§よくある処理
  演出の再利用
  メッセージにルビを振る
  環境音の作成
  タイトルメニューの作成
  CGモードの作成

§リソースの作成
  サムネール/パネル形式
   
   

■チュートリアル:hello, world!
このチュートリアルでは、新規にプロジェクトを作成して、ゲームを作り始めるまでの手順を学びます。
ここはやはり、B. W. Kernighan に敬意を表して、hello, world! から始めましょう。
 
1.プロジェクトの作成
プロジェクトの新規作成を行って、シナリオの記述を開始できるようにします。
sketch/ExHIBITには、デフォルトのUIが用意されていますので、誰でもすぐシナリオを書き始めることが出来ます。 まずsketchを起動して下さい。(以下、画像をクリックすると原寸で確認できます
始めにsketch起動時ウィザードが立ち上がりますので、「新規作成」を選択して下さい。
確認ダイアログが表示されますので、「はい」を押して下さい。
すると、プロジェクトの設定ダイアログが開きます。
プロジェクト名の設定には、これから作成するゲームのプロジェクト名を指定します。この文字列は、クラス名やファイル名にも使用されますので、出来れば半角の英数字が望ましく、ファイル名に使用出来ない文字は使用しないで下さい
ここでは、sampleGame としておきます。
プロジェクトフォルダの設定は、sampleGameのプロジェクトを作成するフォルダを指定します。
プロジェクト名とフォルダを設定したら、OKを押して下さい。指定されたフォルダがない場合は、作成確認のダイアログが開きますから「はい」を押して下さい。
すると、指定したフォルダが作成され、defstart が自動的にノードエディタの中に作られます。時間がかかる場合もありますので、startが作成されるまでしばらくお待ち下さい。
 
2.一般的なプログラムの構造
ここでは、1で自動的に作られた、「定義」「第1章」および、def/defChara/start/title/exit の解説が行われています。今すぐチュートリアルの続きが見たい場合は、3.UIの設定へ進んで下さい。
定義」はフォルダノードです。
名称は便宜上定義になっていますが、なんでもかまいません。 この下に、defdefChara が作られます。 定義ノードには、これ以外にも、共有ライブラリのノード等が配置すると良いでしょう。
ExHIBITは、どのような状態で起動されても必ず、最初にdefからつながる一連のノードを 1度だけ実行することが保証されています。 その実行が終わる(つながっているノードが無くなる)と、次に、デバッグ出力がある場合は要求されているノードを、リリース化されている場合は startを実行します。
実行順序の詳細については、「ノードの種類とExHIBITのシナリオ実行ルール」を参照して下さい。
第1章」もフォルダノードです。
名称は便宜上第1章になっていますが、何でも構いません。 この下に、start および、titleexit が作られます。startはゲームのエントリーです。titleexitは、「タイトルメニューに戻る」コマンドや 「ゲームを終了する」コマンドが使用されたときの飛び先です。 ノードの詳細については、「ノードの種類とExHIBITのシナリオ実行ルール」を参照して下さい。
def/defChara/startの名称は固定ですが、titleやexitは変更することができます。ただし変更した場合は、defノード内でタイトルへ戻る時の飛び先を定義しなければなりません。
 
3.UIの設定 (def の設定)
どんなアプリケーションを作成するにしても、まず、メッセージ表示領域や各種システムに利用するウィンドウの定義を行わなければなりません。そういうリソースの作成は、ちょっと遊んでみたい人にとって、それだけで挫折してしまうくらい手間なので、ExHIBITには標準のシステムリソース(フリー・改変等自由に行えます)が添付されています。ここでは、それを使うことにしましょう。
まず、定義ノードの下にある、defノードをダブルクリックしてdefの編集ビューを表示させて下さい。
編集ビューを表示するためには、次の4つの方法があります。
1.
ノードを左ダブルクリックする。
ノードがテキスト編集モードになっていなければ、編集ビューが開きます。
2.
sketchのメニューから、「編集(E)」 - 「演出の編集(E)」を実行する。
3.
プロジェクトエディタの左側のツリービューからノードを選択し、右クリックメニューから、「このノードを編集する」を実行する。
4.
ノード数が増えてくると、1−3までの方法でファイルを見つけることが難しくなります。
そういう場合は、sketchのメニューから「検索」-「クイックノードアクセス(Q)」を実行して下さい。クイックアクセスダイアログが開き、入力された文字でインクリメンタルサーチが行われるようになります。
この説明はver.1.x以前のものについて書かれたものです。最新のバージョンに対応した解説は、すぐ下を参照してください。
index-00002
の空白を右クリックして、Magic-Bullet(以下MBと略します)の挿入を実行して下さい。
すると、MBの一覧が表示されますので、GLBの、default.defを選択し、OKを押して下さい。
↓UPDATE
ver.1.x以降のsketchでは、コマンドパレットがメニューの代わりに利用されていて、左図のように「マクロ/M.Bullet」-「glb.初期化」-「標準的なdefの設定」を直接ダブルクリックする仕様になっています。グループ化されたMagic-Bulletへのアクセスは、コマンドパレットでなければできませんのでご注意ください。
右クリックによるコマンドパレット使用/メニュー使用の切り替えは、プロジェクトの設定から行います。
処理がどーんと追加されて、左端のインデックスエリアがピンクになります。 このピンクが変更された行を意味します。
※最新のmbtでは、左図と内容が異なるかもしれませんが、説明は同じです。

これで標準のdef定義は終了です。「ファイル」 - 「演出&実行データを保存する」でセーブしておきましょう。セーブすると、先ほどのピンクも消えるはずです。
 
4.start の設定
本来ならdef定義の次は、キャラ設定を行うべきですが、それは別のチュートリアルに譲りましょう。
retouchには、歴史的な事情で、予め3人のキャラ?が定義されています。ここではそれを使いましょう。
予約済み3キャラの詳細は、「キャラクターの概要」を参照して下さい。
実際にシナリオライターが記述するシナリオは、第1章ノードの下にある、startから始まります。
通常startでは何もせず、次のノードに処理を譲るのが慣例ですが、今回は直接startに記述します。
先ほどのdefと同様、startの編集ビューを開いて、空行になっている、index-00002を右クリックし、「メッセージ処理」-「メッセージ入力」を実行します。
すると、メッセージの入力ダイアログが開きますから、発言者選択に「記述」を、メッセージに、「hello, world!」を入力して、OKを押して下さい。
 
各項目の詳細が知りたい場合は、コンテキストヘルプを利用します。
ダイアログ右上の?マークをクリックした後、説明を見たい場所をクリックするか、説明を見たい場所をクリックしてから、F1キーを押せば、その項目の詳細な説明を見ることが出来ます。
sketchでは、全体を記述したマニュアルはありません(膨大になりすぎたため現在の仕様に移行しました)。体系的な事柄はチュートリアルから、項目の詳細はコンテキストヘルプから学ぶ仕様になっています。
これで、hello,world!は出力されるようになりましたが、せっかくなので、メッセージウィンドウとコントロールも表示しましょう。
index-00002の、「記述」が発言しているコマンドにカーソルをあわせて、右クリックメニューから、Magic-Bulletを挿入して下さい。挿入の詳細はdefの時と同じです。挿入するMBは、 「RSDの標準的な先頭」です。「glb.初期化」グループにあります。
 
コマンドは、現在選択されている行に「挿入」される仕様です(空行の場合は、上書きされます。空行を挿入したい場合は、「i」キーを押して下さい。)
すると、こんな感じになります。
[設定] フレームは、フレーム(メッセージウィンドウ)のON/OFF
[設定] コントロールON はコントロールの ON/OFF
BLOCK: はブロックを作成します。
ブロックは、シナリオの区切りで、詳細は「ブロックについて」をご覧下さい。
入力が終わったら、defと同様にセーブして(ALT+F, S)下さい。
これでstartの記述は終了です。
 
5.実行してみる‥‥の前に。
ここまでくれば、後は実行するだけなのですが、その前に、このプロジェクトはまだ作られたばかりで、全ノードがRLD化されていません。そのため、このまま実行すると、「〜.RLDが見つかりません」と言われることになります。ここではそれを避けるために全ノードをRLD化します。
全ノードのRLD化は、最初の1回と、後は、RSDとRLDのバージョンを確実に一致させたいとき(例えばデバッグ版の提出時等)に行います。
現在RLDよりも新しいRSDは、プロジェクトエディタのメニューから「検索(S)」-「更新が必要なノード(U)」-「(4)RSD->RLDの更新が必要なノード検索」で、一覧を取得することが出来ます。
全ノードをRLD化するためには、まず全ての演出ビューを閉じなければなりません(開いたままでも、システムが勝手に閉じます。なお、この操作には、プロジェクトエディタの、「編集」-「全ての編集ウィンドウを保存して閉じる」が便利です)。
そして、プロジェクトエディタの、「編集(E)」-「一括処理(E)」-「全ノードのRLDを更新する(R)」 を実行して下さい。
すると、なにやらパタパタウィンドウが開いたり閉じたりし始めますが、完全に終了するまで操作しないで下さい。
 
6.実行してみる
ここでは、sketchから、実際にゲームを実行してみる方法と、デバッグ設定コマンドについて学習します。
あるノードをデバッグ実行したい場合、そのノードの編集ビューのメニューから、「(D)ebug」-「デバッグ実行(D)」を実行します。
すると、ExHIBITが起動して、hello, world! が表示されるはずです。
画面上部に表示されているのは、デバッグ設定コマンドで指定した情報で、default.def.mbt を使用して設定した場合は、
メモリ量(NT系OSのみ)
非同期演出のリスト
使用中の演出用レイヤーリスト
登場しているキャラの情報

が出力される設定になっています。
デバッグ設定の詳細については「sketch/ExHIBITのデバッグについて」を参照して下さい。
7.おまけ
以上で、hello, world!のチュートリアルは終了ですが、ダミーリソースの作成や、リソースの登録についてもここで簡単に説明しておきます。演出対象は、上記で作成した start をそのまま使用します。
背景が真っ黒だと寂しいので、まずはCGを表示してみましょう。
と言っても、表示するCGがなにもありません。こういうとき、skechには、ダミーCG作成機能が用意されています。まだラフすらないのに組み込みが始まってしまったときは、この機能を利用して下さい。
プロジェクトエディタのメニューから、「ツール(T)」-「ダミーイベントCGの作成(C)」を実行して下さい。
すると、ダミーCG作成のダイアログが開きます。
今回は、300番を1枚だけ作りますので、このままOKを押して下さい。
 
sketch/ExHIBITのCGIDは、300〜9999が使用されます
CGIDを始めとするリソースIDの詳細については、「リソースIDと、実際のファイルの関係について」をご覧下さい。
作成されるダミーCGは、タイムスタンプが、2000/01/01 09:00(ローカル時間) に統一されます。ダミーの検出にご利用下さい。
すると、作成するCGの詳細を定義するダイアログが開きます。
ダミーの元にする画像があるなら、「素材画像」に設定しますが、今回は何もないので、単に「自分の部屋」という説明だけを追加してOKを押します。
これで、「CGID:300番の自分の部屋」のダミーが作られます。

ダミー画像は、CGIDにあわせて適切な位置に自動的にコピーされていますので、特にどこにあるかを気にする必要はありません。
最終的にゴミ化しても、「ゲームのリリース処理」を行う際に弾かれますので、全く問題ありません。
画像が出来たので、表示してみましょう。
index-00002 の[設定] フレームの行を右クリックして、「イベント演出」-「イベントCG表示」を実行して下さい。
すると、CG表示ダイアログが開きます。
今回は単に表示するだけなので、CGID指定に300を入力するだけです。
CG表示が入力されると、こうなります。
早速、「(D)ebug」-「デバッグ実行(D)」を実行して、結果を見てみましょう。
背景画像が表示され、hello, world! が表示されるはずです。
 
すでにExHIBITが起動していると、単にアクティブになるだけで実行が行われません。その場合、いったんExHIBITを終了させてから、再度デバッグ実行して下さい。