roleボタンやfixボタンというのは常に表示されている特殊なボタンのことです。
セーブ呼び出しとか、バックログとか
role='menu'はメニュー画面を呼び出す常に表示されるボタンですよ
ということです。
これでオリジナルのボタンは表示され、画像差分もOKなのですが
(iosでは画像差分反応しません)
メッセージウィンドウの表示と非常時と一緒にこのメニューボタンも表示されたり、
非表示になるようになってしまいました。原因は
ティラノビルダーのコンポーネントドラックで
メッセージウィンドウ表示非表示を入れると、シナリオのksファイルには
[tb_show_message_window](メッセージウィンドウ+UI表示)
[tb_hide_message_window](メッセージウィンドウ+UI非表示)
の指示スクリプトが入っています。
この[tb_show_message_window]はマクロで、
メッセージウィンドウとfixレイヤーを
見えるようにするか、見えないようにするかの指示をするものになっています。
マイプロジェクト>data>scenario>system>builder.ks
を開くと
;メッセージウィンドウを非表示にする
[macro name="tb_show_message_window"]
[layopt layer="message0" visible="true" ]
[layopt layer="fixlayer" visible="true" ]
[endmacro]
;メッセージウィンドウを表示する
[macro name="tb_hide_message_window"]
[layopt layer="message0" visible="false" ]
[layopt layer="fixlayer" visible="false" ]
[endmacro]
と記入されていて、tb_show_message_windowは
layer="message0" visible="true"(メッセージレイヤー、見える)
layopt layer="fixlayer" visible="true" (fixレイヤー、見える)
という事なのです。
ちなみに、上の記述、あれ非表示と表示逆じゃない?と思った人その通りなのです…。動作には関係ないのですがビルダーv170~v182では日本語の説明のところ表示と非表示が逆になっています^^;
常に表示されるroleボタンは、
fixレイヤーという特殊なレイヤーに表示されています。
ゲームのレイヤーは
背景がベースレイヤーキャラクターやメッセージウィンドウはレイヤー0イメージ画像はレイヤー1ロールボタンはfixレイヤーになっています。
なので、[tb_hide_message_window]つかうと
レイヤー全体が非表示になってしまうので
ロールボタンも消えてしまうのでした。
↑間長くなりましたが、これがメッセージウィンドウと一緒に消えてしまう原因
コンポーネントのメッセージウィンドウ表示・非表示を使わなければ
大丈夫なんですが、
めんどうなので、
マクロを書き換えてしまえ!
ということで
builder.ksのマクロを
;メッセージウィンドウを表示にする
[macro name="tb_show_message_window"]
[layopt layer="message0" visible="true" ]
[button name="role_button" role="auto" graphic="button/auto.png" enterimg=button/auto2.png x="500" y="17" width="50" height="94" visible="true" ]
[button name="role_button" role="skip" graphic="button/skip.png" enterimg=button/skip2.png x="500" y="107" width="50" height="94" visible="true" ]
[button name="role_button" role="backlog" graphic="button/backlog.png" enterimg=button/backlog2.png x="500" y="197" width="50" height="94" visible="true" ]
[endmacro]
↑fixレイヤーの表示非表示じゃなくてUIにしているボタン自体を全部記述
;メッセージウィンドウを非表示する
[macro name="tb_hide_message_window"]
[layopt layer="message0" visible="false" ]
[clearfix name="role_button"]
[endmacro]
↑fixレイヤーのname="role_button"を全部クリアする
メニューボタンはname="m_button"にしているので消えない。という風にしました。
これでメッセージウィンドウとUIのボタンのみ表示と非表示になりました。
UIのボタンのスクリプトは
data>scenario>system>message_window.ksに記述されています。
@layopt layer=message0 visible=true
というスクリプトでメッセージウィンドウの表示非表示を切り替えると
UIボタンが影響を受けないので
なんでだろーと思っていましたが、
マクロだったからなのでした。なーるほっど。
ティラノビルダーでオリジナルfixボタン表示したけど
メッセージウィンドウといっしょに消えるーなぜー
という人の参考になりますかね??
*******************************************************
あ、余談ですがゲーム起動時に
歯車ボタンがちょい表示されるやつ
ツイッターで開発者のシケモクMKさんがつぶやいていたのですが↓
https://twitter.com/shikemokumk/status/1074864481061068800「data/system/Config.tjs」を編集して
「configVisible=false」にして保存すると見えなくなります!
とのこと!
※これ、ビルダーで書き出しするとConfig.tjsは
デフォルトになって書き出されていたので
ビルダー制作民はexport後のファイルでいじるとよいです。