スポンサーサイト

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

プラグインモジュール(*.prx)とVSHリソース(*.rco)の連携についての思い付き

これは眉唾ものの与太話の類の話題なんだけれど。自作したプラグイン(user_dev_plugin.prx)でメニューを表示させるようなものがある。これらは予めPRXファイル内に組込まれている(だろうと思っている)んだけど、これを例えば自前で別途リソースファイル(user_dev_plugin.rco)を用意してそちらを参照させるような方法は実現できないのだろうか。つまりプラグインモジュールからGUIを構築する部分のみを分離してそちらはリソースファイルに任せるってことなんだけど。今までそういう種類のプラグインを見たことが無いので(探せばあるかもしれないけど)、技術的に無理なんだろうか。

例えば、下記のような自前ででっち上げたRCOファイルの適当なPage要素からevent属性を利用してモジュール側から参照させるような。

<?xml version="1.0" encoding="utf-8"?>
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="psp" minFirmwareVer="1.5">
<MainTree name="user_dev">
<ObjectTree>
<Page name="page_main" unknownInt0="0x111" onInit="event:native:/onInit_page_main" onCancel="event:native:/onCancel_page_main" onContextMenu="nothing" onActivate="event:native:/onActivate_page_main">
    <Plane name="plane_background" posX="0" posY="0" objectScale="0" redScale="0" greenScale="0" blueScale="0" alphaScale="0.35" width="480" height="272" posUnknown="0" scaleWidth="1" scaleHeight="1" elementScale="1" iconOffset="0x0" onLoad="nothing" image="nothing" unknownInt18="0xffff"></Plane>
    <MList name="mlist_exsample_1" 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="event:native:/onInitMlistExsample" unknownInt16="0x0" unknown17="0x0" unknownInt18="0x6" unknownFloat19="0" unknownFloat20="0" unknownRef21="nothing" unknownEvent23="event:native:/onPushMlistExsample" unknownRef25="nothing" unknownRef27="nothing" unknownRef29="nothing" unknownEvent31="event:native:/onCancelMlistExsample" unknownRef33="nothing" unknownRef35="nothing" unknownRef37="nothing" unknownEvent39="event:native:/onScrollInMlistExsample" unknownRef41="nothing">
        <MItem name="item_exsample_1" text="text:msg_exsample_1" altText="nothing" unknownRef4="nothing"></MItem>
        <MItem name="item_exsample_2" text="text:msg_exsample_2" altText="nothing" unknownRef4="nothing"></MItem>
    </MList>
</Page>
</ObjectTree>
</MainTree>
</RcoFile>

これは例として適当に書いてみたもので、onInit="event:native:/onInit_page_main"の記述でモジュールから参照させることができるのではないかと考えている。あとはモジュール側をどうにかすれば実現できないのかなと。これは飽くまで想像だけど、event:native:/イベント名称という記述のイベント名称の部分はPRXファイル側の何らかの処理命令を指定しているのではないか。私はモジュール側がどういう動きをしているのかを知らないので変な勘違いをしているのかもしれないけど。

もし実現できるのなら面白い事ができそう。上記例では背景とメニューだけのシンプルな構成だが、場面ごとにメニューを用意したければPage要素を増やせばいいし、メニューの内容もリスト形式ではなくEdit要素とButtom要素を利用した複数項目から選択させるラジオボタンのようなものも用意できる。ステータス表示ならIList要素が使えるだろうし必要ならText要素によるナビゲーションも提供できる。と思う。例えばSoundTree要素を利用してサウンドデータを参照させる事はできないのだろうか。もし可能なのであればプラグインメニュー操作時にも効果音を付加できるようになるかもしれない。いや、しかしこれが可能ならsystem_plugin.rcoから参照すれば済むのか。…

まあ自分で試してみろという話か。

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