2017年3月4日土曜日

ティラノビルダーでパラメータを表示する方法

ティラノスクリプトテクニックwikiのパラメータ表示をティラノビルダーで再現できたのでメモ

このページのスクリプトをそのままティラノビルダーに入れるとエラーが返ってきます。

エラーの起きてる原因はおそらくこれ
[layopt layer=8 visible=true]
[layopt layer=9 visible=true]

ティラノビルダーで作られるファイルのデフォルト設定のレイヤー数は3(0、1,2)です。
もし、それ以上のレイヤー数を指定するとエラーが返ってきます。
ここでは8と9が設定されているのでエラーが返ってきています。
なのでこの設定を変更します。
ちなみにこれはティラノビルダーを起動した画面には設定する項目がないので
作ったプロジェクトファイルのフォルダの中からConfig.tjsというファイルを見つけて設定します。

■1

場所は
tyranobilder(本体フォルダ)>myproject>(作ったプロジェクト名)フォルダ>date>system>Config.tjs

あとはこのファイルを編集ソフト(TeraPadかMery)で開き、

;numCharacterLayers=3

という箇所の数字を必要なレイヤー数に変えます。
とりあえずここでは10にします。

;numCharacterLayers=10

変更したら保存して閉じる。

■2

次にsystem_graphic画像を用意します。
こちらの設定はページに画像付きの解説があるのでそちらに習ってください。

■3

次はティラノビルダーを立ち上げてから設定をします。

今回はこのページの「2.画像素材を使ったパラメーターバー作成例」をやってみます。


まずは最初のスクリプト
[iscript]
f.shujinkou_name = "主人公";
f.para_shujinkou_HP_max = 100;
f.para_shujinkou_HP_now = 100;
f.para_bar_width = 100;
[endscript]

これは変数の設定なのでティラノビルダーのウィンドウツールバーから

プロジェクト>変数管理

を開き
変数名を追加していきます。

変数名はこのスクリプトの中で

f.○○○○○○=△△△;

○○○○○○の部分です。
これをすべて追加したらそれぞれの初期値を入力します。

初期値はこのスクリプトの中では△△△の部分です。

"主人公"の部分は「"」を含めず入力してください。
(数値はすべて半角で入力してください)
ここまで出来たら





[iscript]
f.shujinkou_name = "主人公";
f.para_shujinkou_HP_max = 100;
f.para_shujinkou_HP_now = 100;
f.para_bar_width = 100;
[endscript]

この部分の入力は完了です。
変数の設定は終わりました。


■4

;◆↓メッセージレイヤが被らないように、位置を下部に変更
[position left=1 width=640 height=150 top=330 page=fore]
;◆↓パラメーターバーの枠などを描画するサブルーチンを呼び出します
[call target=*draw_para_bar_base]
;◆↓HPバーなど可変部分を描画するサブルーチンを呼び出します
[call target=*draw_para_bar]
;◆↓サブルーチンを呼ばないのに読んでしまうのを防止用。運用時はjumpタグ等で次の処理に飛んでください
[s]

この部分はコンポーネントから「ティラノスクリプト」を選びそのままコピペして問題ありません。


■5

;◆◆◆以下サブルーチン◆◆◆
;◆◆↓パラメーターバーの枠や主人公名など、動かさない部分をレイヤー8に描画します
*draw_para_bar_base


まずはコンポーネントから「ラベル」を選び、

*draw_para_bar_base

こちらの
*○○○○○○○
部分を入力します。

■6

次はコンポーネットかから変数設定を選び内容を入力します。

;◆↓パラメーターバー枠と枠内側の黒っぽい部分の横幅を設定
[eval exp ="f.para_bar_waku_width = f.para_bar_width + 4"]
[eval exp ="f.para_bar_empty_width = f.para_bar_width + 2"]


まずはスクリプトの中にある変数をすべて追加していきます。
f.para_bar_waku_width
f.para_bar_width
f.para_bar_empty_width

やり方は■3でやったように追加してください。
初期値に特に指定が無いのでとりあえず初期値はすべて100を入れておいてください。


次にコンポーネットから変数設定を選び
こちらのスクリプトをを入力していきます。
[eval exp ="f.para_bar_waku_width = f.para_bar_width + 4"]


変数はpara_bar_waku_width
操作は+があるので"足し算"
オペラントは決まった数の4なので定数で4














そして反映を押すと変数設定が表示されます。

同じようにこちらもコンポーネットから変数設定を選び入力してください。
[eval exp ="f.para_bar_empty_width = f.para_bar_width + 2"]


■7

次はコンポーネントからティラノスクリプトを選びそのままコピペして問題ありません。

[image layer=8 x=150 y=300 width=&f.para_bar_waku_width height=10 storage="system_graphic/bar_waku.png"]
[image layer=8 x=151 y=300 width=&f.para_bar_empty_width height=10 storage="system_graphic/bar_empty.png"]
;◆↓テキスト部分の描画
[ptext text="HP:" layer=8 size=15 x=150 y=285 color=white bold=bold]
[ptext text=&f.shujinkou_name layer=8 size=18 x=150 y=310 color=white bold=bold]
[return]

■8

次は■5でやったようにラベルを設定します。

;◆◆↓パラメーターのHPバー、HP数値表示など可変部分をレイヤー9に描画します
*draw_para_bar

*draw_para_bar
こちらの
*○○○○○○○
部分を入力します。


■9

最後はティラノスクリプトを選びそのままコピペして終わりです。

;◆↓可変部分の描画を一旦消します
[freeimage layer = 9]
;◆↓HP値によりHPバーの長さを計算
[eval exp="f.para_bar_HP_now_width = parseInt(f.para_bar_width * f.para_shujinkou_HP_now / f.para_shujinkou_HP_max)"]
;◆↓HP最大値の3割以下にHP値が減ると赤いバーで描画、それよりHP値が高ければ緑色のバーで描画
[if exp="f.para_shujinkou_HP_now <= parseInt(f.para_shujinkou_HP_max * 0.3)"]
    [image layer=9 x=152 y=300 width=&f.para_bar_HP_now_width height=10 storage="system_graphic/bar_red.png"]
[else]
    [image layer=9 x=152 y=300 width=&f.para_bar_HP_now_width height=10 storage="system_graphic/bar_green.png"]
[endif]
;↓テキスト部分の描画
[eval exp="f.para_HP_draw = f.para_shujinkou_HP_now + '/' + f.para_shujinkou_HP_max"]
[ptext text=&f.para_HP_draw layer=9 size=15 x=185 y=285 color=white bold=bold]
[return]



これで実行するとティラノビルダー上で再現できます。
おそらくこれで

3.パラメーターバー増減の例
4.複数のパラメーターバーでのステータス表示例

もできるようになるはず。



参考ページ
ティラノスクリプト制作テクニックwiki パラメータ表示

ティラノスクリプト
http://tyrano.jp/
・タグリファレンス
・実践テクニック レイヤーを理解しよう

ティラノビルダー制作テクニックwiki
ティラノスクリプト制作テクニックwiki














1 件のコメント:

  1. すりません 台湾に来た 外人です
    私はプログラムの経験まったくわからないので
    シナリオのscene1.ksのスクリプトの位置ど順番かわからないのです...
    全部の内容をそのままコピーして パラメーターは表示していますか
    シナリオは動く無くなったのです

    あとはラベルは同じのシナリオに増えるですか?
    日本語はあんまり上手じゃないのですか
    もっと詳しく説明なら 感謝している

    突然ですか 申し訳ございません
    大変失礼しました

    返信削除