やっぱりフェルナンドのUO日記

ウルティマオンラインに関する雑記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カスタムUI素人の愚痴

別に大した話じゃありません。SAクラ使ってない人には何の役にも立たない情報なのでスルーしてください




 4時間前にスカベンジャーハントの記事を書いて、今週もとりあえずやる事はやったと思って満足していた。先週からこっち忙しくてろくにトレハン地図も消化できていなかったので、これから掘りにでもいこうかなと考えていた矢先、知り合いのこんな呟きが聞こえてきた

『UOの本にしおり機能とかページ索引機能とか欲しくないかい』



 これに対して私は何の気なしに、『SAクラでできんじゃない』と返信した。しかし、彼が望むのは2Dクライアント上でとの事で、確かに重いSAクラより 2Dクラで実装されたほうがより良いなと思った
 普通ならこれで終わる話なのだが、ふと気になったことがあった。それはこの記事


記事公式:開発チームに質問!-ログアウトマクロ(2/9)
 ttp://ultimaonline.jp/news.phtml?id=89779

>上級者向けになりますが 〜(略)
>script BroadcastEvent( SystemData.Events.LOG_OUT )
>(略)〜 これで「ログアウトだけする」ボタンの完成です!


 なんでもSAクラでログアウトのショートカットマクロが作れるとの話だ。この開発者コメントと、SAクラのカスタムUIで思い当たることが一つ。それは忘れもしない‥いつだったかな。ともかくかなり前にカスタムUIをいじってみて手も脚もでなかった苦い経験を思い出してしまったのだ
 /script WindowSetShowing と何度打ってもウィンドウが出てこない、非常に悲しい思い出だ


 このまま敗北したままでよいのか

 いや、まだ戦いは終わっていない。SAクライアントが終了するその日までに、なんとかサンプルウィンドウくらいは出してみたいと思って、途中忘れたりもしたが、とにかく思い続けてきた私は今日この日、再度SAクライアントのカスタマUIに挑戦することにした
 前にカスタマUIをいじくったのはKRクライアントの時だったので、今回もまた圧縮されたドキュメントとDefaultフォルダの解凍から始めた。ドキュメントの中身は一応、UOSAクライアントと書いてあったので更新はされているようだった

 久しぶりに起動したSAクラは90Mのパッチがあたりはじめ、そのパッチが適用されている様を見ながら一連の『とりあえず、サンプルのウィンドウ出してみ』という開発者のありがたいお言葉でかかれた手順をおさらいしながら準備にいそしんだ
 結局、やったことは前回と変わっていない。だって、同じことが書いてあるんだし‥
 前にやったのと同じようにSampleWindow.xmlとSampleWindow.luaファイルをSouceフォルダ配下に設置し、中身をドキュメントからコピペする
 Interface.xmlとInterface.luaにも指定された通り記述した

 で、前回はここから先が怪しかったのだ。いったい/scriptなるコマンドをどこに入力すればよいのかわからなかった
 普通に考えれば発言ウィンドウなのだが、いくらコマンドを発行してもうんともすんとも言わなかったので別の場所があるのかと色々探したあげく、結局わからなくて諦めてしまったのだ
 だが、今回は違う。手がかりはそう、上記の開発者のコメントだ
 どうやらマクロのcommandアイコンを使えばscriptで始まるコマンドが発行できるらしい。これを足がかりになんとか事態の打開策を図れるのではと考え、挑戦が始まった


 まず、開発者コメの通りにマクロを組んで動くか試してみた。これは、問題なく動いた。ログアウトマクロの完成だ
 次に、ログアウトで使ったコマンドが発言スペースで有効か試してみた。これも動いた。つまり、/scriptで始まるコマンドは発言スペースで打ち込むべきものだったのだ。ようやく確信がもてた

 と同時に、結局SampleWindowが出てこない事態に涙した。何が違うのか
 ここで気づいた点としては、KRクライアントのころに比べて、Interface.xmlで読み込んでいるXMLファイルがかなり減っているということ。大幅にコメントアウトされていた
 まさか、無いファイルを参照してるのでは‥という予想は当たった。なぜ存在しないかというのは物理的に無いことに加え、しっかりとデバッグ情報に読み込み失敗が載ってきたからだ

 そう、実はSAクラにはデバッグ機能が存在した

 英語のドキュメントはわけわからんと読み飛ばしていたが、実はちゃんと『デバッグ画面見ろよな』と親切に書いてあった。で、出し方は発言スペース(console)で

/debugwindow

 と打ち込むだけで出すことができたのだ
 このデバッグウィンドウではUIの読み込みや関数の呼び出し情報が表示されるようで、出力レベルも調整が利く便利設計。UIの再呼び込みボタンがあるのがありがたい。何度も再起動する必要がなくなった
 で、この画面であれやこれややってみた結果、


 ドキュメントのSampleWindow.xmlソースは使い物にならない


 ことがわかった。HUDBackgroundBlack.xmlもDefaultWindowTitleBar.xmlも昔はあったのかもしれないけど、とりあえず今見た限りでは存在しないのだ。これらを参照しているからウィンドウのCreateに失敗している。折角ドキュメント内の文言をUOKRからUOSAに変えたのだから、ここも見ておいて欲しかった(TT


 こうなったら意地でもスケルトンウィンドウをだしてやると、色々いじくった結果、ニューヘイブンの初心者クエ用XMLを参考になんとか”とりあえずウィンドウは出る”サンプルXMLが出来上がった
 もし、やる気はあるものの最初の最初でつまづいて投げ出した私のような方がいらっしゃるなら、とりあえず下記のソースをコピペしてウィンドウを出してみてくだされ


<Interface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Interface.xsd">
    <Scripts>
        <Script file="Source/SampleWindow.lua"/>
    </Scripts>
    <Windows>
        <Window name="SampleWindow"  movable="true" layer="secondary">
            <Size>
                <AbsPoint x="640" y="480" />
            </Size>
            <Anchors>
                <Anchor point="bottomright" relativePoint="bottomright">
                    <AbsPoint x="-25" y="-90" />
                </Anchor>
            </Anchors>
                  <EventHandlers>
                    <EventHandler event="OnInitialize" function="SampleWindow.Initialize"/>
                    <EventHandler event="OnShutdown" function="SampleWindow.Shutdown"/>
                  </EventHandlers>

            <Windows>
                <!-- Default chrome. Alter this at your own peril. -->
                <Window name="$parentChrome" inherits="UO_DefaultWindow">
                    <Anchors>
                        <Anchor point="topleft" relativePoint="topleft"/>
                        <Anchor point="bottomright" relativePoint="bottomright"/>
                    </Anchors>
                </Window> 
            </Windows>
        </Window>
    </Windows>
</Interface>



 しおり機能付の本のUIは、きっとこれを見た志ある若人が作ってくれるに違いない。そう期待して今日はもう寝ます



PS.
 特定のサウンドボードを使っているとSAクラでハングする事象を発見してしまった。フィードバッグに送っておくことにする

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://tumitovatu.blog.fc2.com/tb.php/355-b88260c4
この記事にトラックバックする(FC2ブログユーザー)

予約宿名人

 | ホーム | 

FC2Ad

 

カレンダー

10 | 2017/11 | 12
- - - 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 - -

最新記事

最新コメント

リンク

プロフィール

Fib

Author:Fib
大和を中心にちょぼちょぼ活動してます。

月別アーカイブ

GameTime

 

Copyright
(C) Electronic Arts Inc. Electronic Arts, EA, EA GAMES, the EA GAMES logo, Ultima, the UO logo and Britannia are trademarks or registered trademarks of Electronic Arts Inc. in the U.S. and/or other countries. All rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。