ティラノゲームフェス2017開催中。賞金総額30万円!

  • iPhone・Androidアプリ化対応。HTML5で動くノベルゲーム製作キット

CGモード


*本機能を使用するには「ティラノスクリプトV400」以上でなければなりません。

ティラノスクリプトでは、最初からCGモードのテンプレートが準備されています。
scenario/cg.ks がCGモードの画面になっています。
つまり、タイトル画面などからこのシナリオファイルにジャンプすれば良いということですね。
このシナリオファイルは全てティラノスクリプトで記述されているので自分の好きなようにカスタマイズすることも容易です。

CGモードの初期画面です。テンプレートでは、閲覧していないCGが2つある状態で画像が配置されています。

それでは、早速CGモードに画像を設定してみましょう。 CGモードに登録するには、ゲーム中に画像を表示したタイミングで、「このCGを開放する」ことを宣言する必要があります。
その際に利用するのが [cg ] タグ です。

早速、初期ゲームに対して設定してみましょう。ちょうど、キャラクターが廊下に出るタイミングで、CGが変わる箇所があるので その時にCG開放を設定してみましょう。



scene1.ks ファイルの廊下に移動するスクリプトの箇所を開いて

#ゆうこ
じゃあ、次に場面を移動してみるね[p]
廊下に移動するよ[p]
[bg time="3000" method="crossfade" storage="rouka.jpg" ]
[cg storage="rouka.jpg"]
#
お、廊下に移動したね。[p]


[cg storage="rouka.jpg"]の記述を追加します。
これで、rouka.jpgファイルを見たよ! という意味を持たせることができます。

そして、cg.ks ファイルを編集します

その中に
[cg_image_button graphic="toile.jpg" no_graphic="noise.jpg" x=60 y=100 width=160 height=140 folder="bgimage" ] という箇所があると思います。これが、CGモードの1つの画像を表します。
ここに、先ほど設定したCGと紐付けるために graphic=rouka.jpg と記述します。
[cg_image_button graphic="rouka.jpg" no_graphic="noise.jpg" x=60 y=100 width=160 height=140 folder="bgimage" ]

以上でCGモードの設定は完了です。
もう一度ゲームを開始して、廊下のシーンを見た後にCGモードを確認してみましょう。



先ほどのCGが開放されていますね!! 
クリックすると拡大表示することができます。

こんな感じで、CGの数だけ登録していけば良いだけです。

cg_image_button タグはただのbuttonタグの拡張なので、表示方法は自由に設定できるかと思います。

簡単に cg_image_button のパラメータを解説しておきますと

graphic="toile.jpg" (cgタグで開放される画像)
no_graphic="noise.jpg" (未開放の時に表示する画像)
x=60 (X座標位置)
y=100 (Y座標位置)
width=160 (画像ボタンの横幅)
height=140 (画像ボタンの高さ)
folder="bgimage"(画像の配置されているフォルダ)


となります。簡単ですね。
枚数が増えてきた場合はページ処理を使えばいくつでも登録できそうです。
あとは、キャラクター別のCGモードなども簡単にできそうですね。

回想モード

次に回想モードも作ってみましょう
これもめちゃくちゃ簡単です。
回想画面のテンプレートはscenario/replay.ksファイルです。



こちらも、最初は未登録の回想が2つ配置されているだけのシンプルなものです。
早速回想したいシーンを登録していきましょう。
設定方法は簡単で回想シーンとして登録したいシナリオ部分を
[setreplay]

[endreplay]

で囲うだけです。

それでは、適当な回想をつくってみましょう。廊下を使いまわします。


[setreplay name="rouka_scene" storage="scene1.ks" target="rouka_scene_label"]
*rouka_scene_label

[if exp="tf.flag_replay==true"]
  [position layer="message0" left=20 top=400 width=920 height=200 page=fore visible=true]
  [position layer=message0 page=fore margint="45" marginl="50" marginr="70" marginb="60"]
  @layopt layer="message0" visible=true
[endif]

[bg storage="rouka.jpg"]

ここは廊下の回想シーン[p]
ここも廊下の回想シーン[p]
回想シーン終わり[p]
[endreplay]


これで、回想モードとして利用できるようになっています。
[setreplay name="rouka_scene" storage="scene1.ks" target="rouka_scene_label"] の name は回想の名前で、後で紐付けるために使用します。

回想が始まる場所の シナリオファイル名とラベル名も設定しておく必要があります。
うまく使えば、全く別のシナリオから、回想を開放するといったこともできるので、おまけシナリオのような使い方もできそうです。
それでは、回想画面 replay.ks ファイルへ戻ります。

1つの回想を表すボタンは [replay_image_button]タグです [replay_image_button name="rouka_scene" graphic="rouka.jpg" no_graphic="noise.jpg" x=60 y=100 width=160 height=140 folder="bgimage" ]
先ほど指定しておいた name を設定します。

それでは、ゲームを開始して廊下のシーンを通過してみましょう。



回想が開放されていますね!

クリックすると回想が始まります。



そして注目すべきポイントは
[if exp="tf.flag_replay==true"]
この部分ですね。これは、回想モードから来た場合 tf.flag_replay という変数にtrueが格納されています。
回想モードの時にだけ実行したい処理で、メッセージ枠を表示しています。

すなわち、回想画面からジャンプしてくるのでシナリオの最初に記述されているメッセージの設定などが実行されないからです。

そのため、回想から来た場合のみメッセージの設定をやり直しているのです。
キャラクターの定義なども、同様に注意が必要です。逆に回想の時は実行したくない処理などを排除することもできます。

このような処理をマクロにしておけば、煩雑にならずに済むと思います。ただ、
回想が必要な場面は独立したシナリオファイルのようにしておいて、回想から来ても綺麗に定義されるように作っておくと回想モードが楽になります。

もしくは、setreplay で指定するstrageと label で回想専用のシナリオファイルを用意しておくとかも(2重管理になってしましますが)安定するかもしれませんね。

以上で、CG・回想モードの解説は終わりです。