スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
公開: --年--月--日, カテゴリ: スポンサー広告

RCOファイル内部における要素の重ね合わせ

要素にはZ軸方向の重ね合わせという配置関係がある。XMLを編集してRCOファイルに何らかのオブジェクト要素を追加・変更を行なう場合、この重ね合わせについてを理解しておくとCTF制作の助けになるだろう。

要素の重なりは記述順により決定される

ソース内であとに記述された要素ほど上に重ねられて前面に表示される。以下に記述例と参考図を示す。

<Plane name="lower_layer" posX="0" posY="0" objectScale="0" redScale="1" greenScale="1" blueScale="1" alphaScale="1" width="0" height="0" posUnknown="0" scaleWidth="1" scaleHeight="1" elementScale="1" iconOffset="0x0" onLoad="nothing" image="image:tex_lower" unknownInt18="0xffff"></Plane>
<Plane name="middle_layer" posX="0" posY="0" objectScale="0" redScale="1" greenScale="1" blueScale="1" alphaScale="1" width="0" height="0" posUnknown="0" scaleWidth="1" scaleHeight="1" elementScale="1" iconOffset="0x0" onLoad="nothing" image="image:tex_middle" unknownInt18="0xffff"></Plane>
<Plane name="upper_layer" posX="0" posY="0" objectScale="0" redScale="1" greenScale="1" blueScale="1" alphaScale="1" width="0" height="0" posUnknown="0" scaleWidth="1" scaleHeight="1" elementScale="1" iconOffset="0x0" onLoad="nothing" image="image:tex_upper" unknownInt18="0xffff"></Plane>

参考図: 重なり合う要素

別図で示しているように、先に記述されたlower_layerが下に表示され、あとに記述されたupper_layerが前面に配置されそれぞれが重なり合うように表示されることが分かるだろう。この重なり合いについて理解していないと記述順を気にすることなく追加してしまい上手く表示されないなどと余計なところで時間を潰すことになりかねない。ちなみにHTMLでも後に記述したものほど前面に表示されるという重なり合いの関係があるので人によってはすんなり理解できるかもしれない(rcomageXmlではCSSのz-indexのようなものは無いのが残念なところ)。

重なり合う要素の種類

ObjectTree要素の子要素として出現する要素は全て重なり合う。画像データと置換されるPlane要素、テキストデータと置換されるText要素、モデルデータと置換されるModelObject要素などはもちろん、メニューリスト(MList)要素、情報リスト(IList)、チェックボックス(Edit)等々、オブジェクトとして扱われているものは全て重なり合っている。

気付きにくいが場面そのものをオブジェクトとして扱うPage要素も重なりあっている。以下に示す別図はmusic_browser_plugin.rcoファイルのPage要素の重なり合いの関係を視覚化したものだ。

参考図: Page要素の重なり合い

<!--RcoFile type="psp" name="music_browser_plugin" version="5.50"-->
<Page name="music_page_content_select" unknownInt0="0x111" onInit="event:native:/onPageContentSelectInit" onCancel="event:native:/onPageContentSelectCancel" onContextMenu="nothing" onActivate="nothing" />
<Page name="music_page_delete" unknownInt0="0x111" onInit="event:native:/onPageDeleteInit" onCancel="nothing" onContextMenu="nothing" onActivate="nothing" />
<Page name="music_page_make_viewlist" unknownInt0="0x111" onInit="event:native:/onPageMakeViewListInit" onCancel="nothing" onContextMenu="nothing" onActivate="nothing" />
<Page name="music_page_information" unknownInt0="0x111" onInit="event:native:/onPageInformationInit" onCancel="event:native:/onPageInformationCancel" onContextMenu="nothing" onActivate="nothing" />
<Page name="music_page_option_0" unknownInt0="0x111" onInit="event:native:/onPageOptionInit" onCancel="event:native:/onPageOptionCancel" onContextMenu="event:native:/onPageOptionCancel" onActivate="nothing" />

Page[name="music_page_content_select"]を一番下にPage要素を上へ重ねていく。Page[name="music_page_option_0"]がこのRCOファイルの中では最上層の場面ということになる。また別の機会で説明するがFade要素を利用して別のPage要素配下の要素を可視化する場合は最下層であるPage[name="music_page_content_select"]へ追加すると都合がいいだろう。

RCOファイルも重なり合う

例えばsystem_plugin_bg.rcoとsystem_plugin_fg.rcoで比較するとsystem_plugin_fg.rcoの方が前面に位置する。ただし全てのRCOファイルが重なり合っているわけではない。music_browser_plugin.rcoとphoto_browser_plugin.rcoは上下関係は無く互いに干渉しない。このようにRCOファイル毎に有効になる位置(場面)は異なるのでそこは実際に試されたし。

公開: 2011年03月03日, カテゴリ: 雑談・小ネタ・資料集