見出し画像

195スタート画面編f:TyranoScriptが動く仕組みを知ろう!【美しょゲを作ろう】

ヒトカラ行ってきました、恒石涼平です。地声と裏声の境目でいつも死んでます。

さて今日も美少女ゲーム制作日誌、 #美しょゲを作ろう の続きをやっていきましょう。前回は #TyranoScript にLive2Dプラグイン入れたり、Live2D からゲーム用の組み込みファイルを書き出したりしました。

今日はTyranoScriptにある「シナリオファイル」についてと、ゲームが動く仕組みを解説するよ!

《TyranoScriptの仕組み》

まずはTyranoScriptにて「ゲームの起動画面」を作っていきます。その為にどうやってゲームを作るのかを軽く解説しましょう。

TyranoScriptではテキストファイルを用いてゲームを作ります。この画像のようになんや色々と文字を打ち込んだら、それに対応した演出とかを出してくれる感じ。

例えば [wait time=1000] と打てば、1秒のウェイト(待ち時間)を作ることが出来ます。なお単位は「ms(ミリセカンド)」で、1000分の1。

立ち絵を出したいなと思えば「立ち絵を出す為の文章」を打ち、音楽を流したいなと思えば「音楽を流す為の文章」を打つ。やりたいことをそれぞれ対応した言葉に置き換えるだけ、と考えれば気楽かな。

そんな仕組みのゲームエンジンなので、今から起動画面を作るまでもほぼ文章しか出てきません。辛いね。

では実際にゲームを起動した際に、どのテキストファイルが読み込まれるのかを順々に説明していこう。


◆1番に読み込まれる「first.ks」

名前の通り、一番最初は「first.ks」というファイルから読み込まれます。起動時にやって欲しいことはここに記載しておく感じ。

なお中身は……

;一番最初に呼び出されるファイル

[title name="ティラノスクリプト解説"]

[stop_keyconfig]


;ティラノスクリプトが標準で用意している便利なライブラリ群
;コンフィグ、CG、回想モードを使う場合は必須
@call storage="tyrano.ks"

;ゲームで必ず必要な初期化処理はこのファイルに記述するのがオススメ

;メッセージボックスは非表示
@layopt layer="message" visible=false

;最初は右下のメニューボタンを非表示にする
[hidemenubutton]

;タイトル画面へ移動
@jump storage="title.ks"

[s]

こんな感じになってます。それぞれ軽く解説。

  • [title] にはゲームの名前を記入

  • [stop_keyconfig] はキー入力を無効化。色々と読み込んだりしてる時に誤動作しないように

  • @call storage="tyrano.ks" は別のシナリオファイルを読込。今回は「tyrano.ks」というファイルを読み込んで、その中にある [return] という文章からここに戻ってくる

  • @layopt layer="message" visible=false はややこしいが画面上に出す文章部分を非表示に。visible を true にすると逆に表示されます

  • [hidemenubutton] メニューボタンを非表示にするんだけど、今作では独自のメニューを使うので用途はなし

  • @jump storage="title.ks" 別のシナリオファイルへと移動。またここに戻ってきたい場合は先ほどの「@call」を使って、戻ってくる必要がない場合はこの「@jump」を使います

  • [s] シナリオの読込をストップさせる。これがないとまたファイルの頭から読み込まれるので、とりあえず最後に入れとく系記号

このような意味合いの文章になってます。よく分からん英語たちの羅列に見えますが、こうして日本語文にすると多少は理解しやすいんじゃないかな?

なお「tyrano.ks」についてはややこしいので今回説明はしません。今は理解せずとも問題ないので放置しとこう。


◆タイトル画面の作る「title.ks」

first.ksにて最後にジャンプした先は「title.ks」。こちらも名前の通り、タイトル画面を記述するファイルです。

[cm]

@clearstack
@bg storage ="title.jpg" time=100
@wait time = 200

*start 

[button x=135 y=230 graphic="title/button_start.png" enterimg="title/button_start2.png"  target="gamestart"]
[button x=135 y=320 graphic="title/button_load.png" enterimg="title/button_load2.png" role="load" ]
[button x=135 y=410 graphic="title/button_cg.png" enterimg="title/button_cg2.png" storage="cg.ks" ]
[button x=135 y=500 graphic="title/button_replay.png" enterimg="title/button_replay2.png" storage="replay.ks" ]
[button x=135 y=590 graphic="title/button_config.png" enterimg="title/button_config2.png" role="sleepgame" storage="config.ks" ]

[s]

*gamestart
;一番最初のシナリオファイルへジャンプする
@jump storage="scene1.ks"

中身は初期状態だとこんな感じ。チュートリアル用のゲームが入ってます。

  • [cm] 表示している文章を全部消去する。ボタンとかも消せます。コマーシャルではない。

  • @clearstack スタックを消去する。用途が限定的なのでとりあえずは無視でおk

  • @bg storage ="title.jpg" time=100 背景の画像を表示する。time を設定することで指定した時間でフェードインしてくる

  • @wait time = 200 待ち時間を作る。前述した [wait] と同じなんだけど、さっきから出てくる「@」から始まるのは「マクロ」と呼ばれるもの。ややこしいので説明はまた今度

  • *start ラベルと呼ばれる位置を示すもの。「*」から始まるとラベル扱いになって、「@jump」とかで指定するとシナリオファイルの途中に飛べる

  • [button x=135…] 非常に長いが、ボタンを表示する文章。「x」「y」でボタンを置く位置を指定して、「graphic」でボタンの画像を選択、「enterimg」はマウスがボタンの上に乗った時に表示する画像、「storage」はボタンを押した時に移動する場所を示す。

他にも記載はあるが、これまで出てきたものと同じなので説明は省く。

文章いっぱいでややこしいけど、要はこの文章で「タイトル画面」が構成されているということ。ここを書き換えれば自分でタイトル画面を作れるので、前提として解説させていただきました。


《おわりに》

文章の説明ばっかりになってごめんね。次回はtitle.ksをまっさらにしてLive2Dモデルを表示する記述をしていきます。その為にまだすることがあるけど……多分次で表示まで行けるだろう! 行けたらいいな!

では今回はここまで。また次回お会いしましょう!


もしも記事が参考になったら、スキやフォローよろしくね! 気が向いた時はサポートで支援していただけると嬉しいです。