『屋上テロス』の作り方:13

『屋上テロス』の作り方:13

◆ ゲームページ ◆
◆ 屋上テロス ◆
https://novelgame.jp/games/show/12418

屋上テロスは
思いつきで背景を動画にしたり、
セリフが多いのにフルボイスにしたせいで、
データがすごく多い
誰のせいだろうね

呼び出そうとするたびに待つことになると都合が悪いなー、と思った
ティラノスクリプトにはプリロードという仕組みがあり、
メモリにデータを載せておくことで
いちいち家の外までデータを呼びに行かなくてもよくなる仕組みがある

ティラノビルダーには最初から何もしなくてもついてるらしいが
ティラノスクリプトでは自分で指定する必要がある

さらにアンロードの機能もあって、
特定のデータをもう使わないから、君明日から会社来なくていいよと
メモリから消すことができる

この仕組みをシナリオの塊ごとに使って、スムーズに進むようにした
したかった
やってることはイメージしやすいし簡単なんだけど
設計がそもそも難しかった

プリロードはセーブのロード時にはされないから

それも踏まえて、さらに
シナリオのブロック毎に必要なデータをロードしたり、
跨ぐときに前のデータをアンロードしたりするようにしたかった

まずセーブからロードした時に、
プリロードするべきデータを管理するために、
今どのシナリオブロックにいるか、を判定する変数を用意した
この仕組みはそのまま本編中でも使えた

プリロードするためのデータは
各シナリオブロックのデータ以外にも、立ち絵素材や効果音のように全体通して使い回すものもあった

こうなったらデータの配列は別のシナリオで管理するようにして、
マクロやジャンプじゃなくて、コールとリターンで
データのローディング機能を呼び出すようにしようとなった

ジャンプと違って、コールは、とんだ先の処理をしている際に元の処理を止める効果があり
returnで元の場所に戻れるので使いまわすのも簡単

どこで呼び出すか
土の配列を呼び出すかの判定をどうやって行うか
設計ができたら中身を作るだけ
シナリオとmake.ksには呼び出しだけ仕込めばいいようにして、中身を別シナリオで作成
make.ksはセーブデータをロードする時以外に、オプション画面なんかから戻る時も読みコムっぽいので注意
そのまま処理を書いておくと、毎度データをプリロードしちゃう
(この記事を書いてる時は、変数を置く場所を間違えてたので、シナリオ中にオプションを開くとプリロードしちゃう)

この配列の書き出しも、スプレッドシートでマクロを組んでいたおかげでかなり楽だった
プリロードの方法は
配列を変数に格納して、それをプリロードで呼び出す、というのが定石らしいので、単純に真似した
このプリロードの中身は毎回違っていいので、使う変数は一時変数で1つだけにした
このおかげであちこちで違う処理を書かずに済んだ

シナリオを移動した時は、
まず今の一時変数に入っているデータをアンロード
プリロードから変数の中身は変わっていないので、
ここでは今までのシナリオブロックで使っていたデータがアンロードされる
終わったらシナリオブロックの変数を今のシナリオのものに書き換える
その後プリロードのコール処理(自分で作ったやつ)を呼び出せば、
ifで今のシナリオブロックの変数を判定して、その配列を変数に格納してプリロードする
セーブからロードした際も、まずシナリオブロックの変数が記録されているはずだから、
再開する場所があるシナリオのデータだけをプリロードしてくれる

対象のデータは背景の動画、bgm、ボイス
さらにゲーム全体を通して使うデータ、立ち絵や効果音は、
ゲーム開始時にプリロードするようにした
使い回すからいちいちアンロードプリロードするのはおかしいからね
明日も仕事だから会社に泊まれば帰らなくていいよね?

とりあえず、そこまで細かく見てないけど、多分機能してる

短いシナリオだし気にすることじゃないかなと思ったけど
ブラウザで遊んでいるとbgmなどが鳴らなかったり、
背景が読み込まれてなかったりするゲームがたまにある
長い短いに関係なくプリロードは知っておいたほうがいいと思う

データの話なので取っつきにくいかもしれないが
大丈夫
ティラノスクリプト界隈はデータに強いお姉さんがたくさんいるので助けてくれるよ
お兄さんはお兄さんだから別枠だよ
ぐらたんPはおじさんだから適応外だよ

報告する

コメント

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

コメントするためには、 ログイン してください。