日記/2016-11-04
雑記:ChatAnalyzer 0.08関連メモ†
というわけで 11/3 は文化的(笑)に開発もしてました。
ゲームで遊んでるばっかりってわけでもないのよ。
・・・まあ、ゲーム用のツールではあるんですけど(^^;;
というわけで本題。
先週リリースした0.07&今回の0.08 は、『地図情報』について機能追加がメインです。
それに関する、よもやま。
地図の表示機能はもともと RO クライアントにあり、また 2016/3月のアップデートで 以下のような機能アップがなされています。
- ミニマップ上に、『モノ』のアイコンが置かれるようになった。
- これによって、例えば『この街のカプラさん、どこだっけ?』とうろうろする必要がなくなりました。
ミニマップ上のアイコンにカーソルを当てて探せるようになったので。
- これによって、例えば『この街のカプラさん、どこだっけ?』とうろうろする必要がなくなりました。
- 拡大マップ上に、ユーザ任意の『モノ』をメモすることができるようになった。
- 1つ目の『モノのアイコン』は全NPC/オブジェクトをサポートしているわけではないので。
- 1つ目の『モノのアイコン』は全NPC/オブジェクトをサポートしているわけではないので。
クエスト用とかの情報も含めて、自由なメモがとれるということ。
ただ、上記2つの機能は直接連動していません:
せっかく自分でメモを書いても、それを見るには拡大マップを開かねばならず。
そしてそれは、他の操作ができないほどに大きな窓で、使いづらいんですね。
今回の『地図情報』は、上記のかゆいところを埋めることを狙いにしています。
仕組み自体は単純です:
- ChatAnalyzer(CA) が透明なウィンドウを作成、ROクライアント上に重ねて表示する。
- ユーザが『モノ』の位置情報を CAに登録。
CAはその登録情報を元に、透明ウィンドウ上にマーク表示する ・・・というだけ。
こんな機能なんですが、そうすると1つ疑問が出ると思います。
『ChatAnalyzerって、チャット分析アプリだよね?』
『これ、情報表示アプリで、チャット解析とは関係ないんじゃ?』
友瀬も最初は別アプリを考えていたのですが。
使い方を考えた結果、チャット解析がいい感じにかみ合うので、CAに組み込むのがよいと判断しました。
例えば、PCがプロンテラにいる場合、アプリは『プロンテラの地図情報』を表示する必要がありますが。
この『プロンテラである』ことを、アプリはどうやって知るのがよいですか?
通信を解析することは、ガンホー規約からすると黒すぎるのでダメです。
世界地図的なものを表示してクリック選択という手は使えますが、今度は『プロンテラはどこだ〜』となります。特にフィールドやダンジョンで。
直接文字入力という方法は、手間や誤入力の問題があり、またこれもフィールドやダンジョンではそのマップ名を知ることが面倒です。
・・・/where して表示される『プロンテラ(prontera)』っていうのを解析すれば、簡単じゃないですか。
どのマップにいようがまったく同じ操作でできますし、/where,/savechatをショートカット登録すればタイピングも不要です。
『モノ』を登録するときにも、関連します。
例えば、イズルードにいる『ガンスリンガー用の弾丸販売NPC』は、現状ミニマップ上に情報がありません。
まさにこの機能で『登録・表示』するのに最適な対象ですが・・・
さて、彼がどの座標に立っているかは、どうやってアプリに入力すればいいですか?
もちろん調べて手動入力するのは可能ですが、面倒ですよね。
・・・彼のすぐ隣に立って /where すれば、座標情報がチャット窓に表示されます。
これを『解析して登録』する仕組みがあれば、テンキー操作や入力ミスもなく、目的は達成できますよね。
という感じです。
とはいえ、やはりいろいろ無理矢理なところは否定できません。
下記のような運用上の『手間・制約』は避けられないので、ご了承ください。
- 最初の『透明ウィンドウ』は人間ががんばって調整設置しないとなりません。
- RO のウィンドウ情報が取れないので、人間が手動で位置調整するしかないんです。
- 地図サイズは、人間が判断入力してください。
- エリアごとにマップのサイズが違いますが、これを取得する方法がありません。
- クライアントで地図をズームアップした場合、追従できません。
- 拡大率のとりようがありません。
一応 /whereしてくれれば『そこを中心にズームしてる』ことはわかるのですが・・・
- 拡大率のとりようがありません。
- マップ移動したあとも適時 /where /savechat しないと、前のマップの『モノ表示』が残ります。
- マップ移動したことは取りようがないです。
ご意見などがあれば。