自己流ティラノスクリプト記 5

 

5回目です。今回は前回語れなかった残りの部分の解説です。

【虹の果ての青:ゲーム内情報の表示方法 後編】
ts4

■天候の表示方法
04tenkiさて今回は天候からですね。この天候は右図のように3つに変化します。なのでまず個別の画像として作ります。で、前回の時計の汗と同じくchara_showで定義しておきます。また、ゲーム中でf.tenkiという変数を1なら晴れ、2なら曇り、3なら雨と天候切り替わるタイミングで置き換えます。そしたら後は

[if exp=”f.tenki == 1″]
;晴れ
[chara_mod name=”weather” time=0 face=”default”]
[elsif exp=”f.tenki == 2″]
;曇り
[chara_mod name=”weather” time=0 face=”kumori”]
[elsif exp=”f.tenki == 3″]
;雨
[chara_mod name=”weather” time=0 face=”ame”]
[endif]

という感じで天候を判別させる記述を判定用のファイルに入れとくだけで、そのときの天候のアイコンになります。まぁこの切り替わりは時間で決まってたら時間の変数で分岐させてもいいし、固定のイベント後で変わる場合は、そこで直接chara_mod入れるだけでも問題ないんで、やり方は色々ありますね。
……実はこれ、最初は上記の処理で切り替えてたんですけど、最終的には不要になってしまったものなんです。ゲーム作ってるうちに、天候変化の仕組みがちょいと変更入りまして……。これ書き記したのは、そういうことがあったのだ、という自分用メモの意味合いもあります。

※この記事書き上げて投稿した後に気づきましたけど、上記のf.tenkiの変数で制御する場合は、わざわざ条件分岐入れずとも下記のステータスを変動させる仕組みと同じ記述だけでいけますね。エンティティ機能使わない場合はこうなるんだっていう参考にしといてください……

■ステータスの表示方法
ステータスは「元気」「知識」「幸運」のパラメータ値がハートの画像の満たされ度で確認できる部分です。3つとも同じ仕組みですので、代表として「元気」のハートの増減の仕組みについて話を進めます。
ts05まずこのステータスは0~10で変動する仕組みでしたので、上記みたくハートが空っぽで0、満タンで10になる画像を用意します。あ、これハート型を満タンにしてく表現にしたんで全段階分の画像作っちゃったんですけど、RPGっぽいバーで表したい場合は、制作wikiのこのページに載ってる感じで1つの画像のサイズ調整する方が楽だと思います。
さて、このハートの画像の表示方法ですが、これもキャラ画像の設定に使うchara_showを使用します。これまでのティラノスクリプト記をお読みになっていただいた方はすでに察していただいているかもしれませんが、わたくしchara_showをキャラ以外の画像表示にも使うの大好きです。その理由は過去にも述べておりましたが、条件によって置き換えたい画像がある場合はchara_modで指定するだけですし、複数画像表示してても特定のものだけ消すことできてたんで、image使うよりも便利だったからです。後者の方は少し前のバージョンからimageでもできるようになったので、今は使い分けるようになりましたが。で、とりあえず元気ステータスの画像はchara_show使うので、まずは定義ですね。

[chara_new name=”status_genki” storage=”genki_00.png”]
[chara_face name=”status_genki” face=”0″ storage=”genki_00.png”]
[chara_face name=”status_genki” face=”1″ storage=”genki_01.png”]
[chara_face name=”status_genki” face=”2″ storage=”genki_02.png”]
[chara_face name=”status_genki” face=”3″ storage=”genki_03.png”]
[chara_face name=”status_genki” face=”4″ storage=”genki_04.png”]
[chara_face name=”status_genki” face=”5″ storage=”genki_05.png”]
[chara_face name=”status_genki” face=”6″ storage=”genki_06.png”]
[chara_face name=”status_genki” face=”7″ storage=”genki_07.png”]
[chara_face name=”status_genki” face=”8″ storage=”genki_08.png”]
[chara_face name=”status_genki” face=”9″ storage=”genki_09.png”]
[chara_face name=”status_genki” face=”10″ storage=”genki_10.png”]

ここで、元気0~10の画像を示すfaceを0~10の数字で設定しておきます。なのでface=”default”となる最初の画像は定義することはするんですけど、適当に0のときの画像を指定して実際は使っていません。で、これをゲームが始まったところに[chara_show]で相応しい位置に表示します。
そして、その直後に元気のパラメータ値に対応した画像になる処理を入れるんですけど、まずその前に、元気のステータスってのはゲーム内ではf.genkiって変数で制御してました。なのでスタート時で満タンなので先に[eval exp=”f.genki =10″] と入れときます。これが海岸歩いたら[eval exp=”f.genki = f.genki – 1″]となって1つ減るし、おやつ食べたら[eval exp=”f.genki = f.genki + 4″]てな感じで上昇する処理が入ります。
さて、じゃあf.genkiの数値に対応した画像に切り替える方法ですけど、こんな処理で判定してました。

[if exp=”f.genki > 10″]
[eval exp=”f.genki = 10″]
[elsif exp=”f.genki < 0″]
[eval exp=”f.genki = 0″]
[endif][chara_mod name=”status_genki” time=0 face=”&f.genki”]

まず1~4行目の条件分岐ですけど、このゲームでは元気8のときに+4になるおやつ食べても12にならず10で止まり、また逆に0以下にもならない設定だったので、上限か下限をオーバーしてたときは戻すようにしとく処理が必要だったので、この記述を先に入れてました。
後は5行目のchara_modでそのときの元気のステータス値に対応した画像に変更するんですが、ポイントはfaceを「&f.genki」にしとくことです。前回も出てきたエンティティ機能ってヤツですね。こうしとくことで、そのときのf.genkiの数値のfaceを指定することになり、その値で設定してた画像に切り替わります。こうするために、元気0~10のfaceも0~10って設定しとくのが必要だったんです。この仕組みのおかげで1行だけで処理できとりますが、最初この方法に気づけなくて無駄に長い判定処理書いてました。ヒラメキって偉大。
で、こういう感じで知識と幸運も作って、後は前回言ってたようにプレイヤーの行動によって変動する時間やステータスなんかをまとめたものをイベントの後でcallで呼び出すと、そのときの状態を表してくれる判定処理の完成です。

さて、これで今回分の紹介終わりましたが、これで伝わってますかね……?こういう説明ってむっずかしいですねホント。あとこんな解説してはいるものの、まだまだ勉強不足なので、これが一番適切な方法なのかはちょっとわかっておりません……。
まぁティラノスクリプトでゲーム作りを始めて、あんまり難しいこと(※主にjsとか)がわかってないヤツが自分が理解できる範囲で作ったレベルのものってのも、それはそれで需要があるはずですよね。山登り出して2合目くらいの脇道にあるお団子屋さん、みたいな感じの自己流ティラノスクリプト記をこれからもどうぞ宜しくお願い致します。

  • このエントリーをはてなブックマークに追加
  • Pocket