忍者ブログ
大変古い古すぎるレビューの置場。お絵かき掲示板消失により3年ぶりに雑記に転用(2017年)。現在はノベルゲーム制作とライブ2Dがマイブーム。
[308] [307] [306] [305] [304] [303] [302] [301] [300] [299] [298]
メニュー歯車ボタンにカーソルオン画像差分を入れたい
と思いまして。

デフォルト歯車ボタンののいじりかたはわからないので、

デフォルトの歯車メニューボタンは非表示にして
[button name="m_button" role="menu" graphic="button_menu.png"  enterimg="button_menu2.png" x=515 y=665]
というスクリプトでオリジナルメニューボタンを常に表示させることにしました

enterimg=はカーソルオンで変化させる画像を指定できます。


ちなみにデフォルトの歯車ボタンは
[hidemenubutton] のスクリプトで非表示、
[showmenubutton] で表示されます。
ティラノスクリプト 製作テクニックwiki さまの
ボタン表示の項

roleボタンとfixボタンについて詳しく載っています。
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後のファイルでいじるとよいです。










PR
この記事にコメントする
お名前
タイトル
文字色
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
ブログ内検索
カレンダー
04 2019/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
管理人
HN:
アワラギ
自己紹介:
藤子不二雄(A&F)とアトラスが好き。
ペンタブがCOMPのサマナー勢。

HP:
管理人用
女神転生イマジンカテゴリー画像!!
女神転生IMAGINEのゲーム画像は、
○権利表記
Copyright (c) ATLUS/(c) CAVE
当サイトに掲載されている画像及び文章等の著作権は、株式会社ケイブ及び株式会社アトラスに帰属します。
無許可転載・転用を禁止します。
アクセス解析
Powered by ニンジャブログ  Designed by 穂高
Copyright © でんきみちブロgu。 All Rights Reserved
忍者ブログ / [PR]