Ver0.18での「討伐ログ」での課題。†
討伐ログの狙いは『xxxっていうMVPを通算zzz体倒したよ(でもカードでないよ)』的な、
どれくらい倒したかを振り返るために記録を残そう、という話です。
それを「savechatのログ解析で対応しよう」と考えたのですが、savechatのログでは「MVPを倒した」ということはわかるのですが「そのMVPの具体的な名前がわからない」という状態であることがわかっています。
で、Ver0.18 ではCAの既存機能である「討伐カウントの確認」を利用して。
例えば魔神殿のような「討伐クエストがあるMVP」について、討伐達成をトリガーに記録を実施することにしていました。
この仕組み上、「討伐カウントの無いボス」については自動検出ができませんでした。
回避策として、MVPを倒したら利用者が自分で『討伐:オークロード』のようにチャット欄で発言、それを savechatで拾ってカウントするという方法を実装していました。
が・・・これ、明らかに面倒なんですよね。
敵の種類によるとはいえ、おそらくは10文字前後のテキストが必要で。
それを日本語かな漢でいれるのは、至難とはいいませんがあきらかに面倒。
「クリップボード拡張」や「かな漢辞書登録」といった入力補助手段もないとはいいませんが、本質的に「入力の手間」とか、タイピングミスとか、そもそも利用者がボス名を認識してタイピングするという頭脳労働まで必要なわけです。
繰り返しますが、至難とは言いませんが面倒です。
考えた対応策†
ROの場合、多くのMVPはそれが出現するマップが決まっています。
例えば「ドレイクなら、沈没船2F」「怒りの月夜花なら、ILフェイヨン」などなど。
ということは、MVPが倒れたときに戦闘していたマップ名をCAに渡せれば、判断できるんじゃね?と。
で、/where でマップ名を取り出すことは、実際に今までにもやっています。
つまり、利用者がフィールドマップでMVPを倒したら、機械的に「/where → /savechat」とやれば、いい。
ショートカット登録を利用すれば、「CTRL+9 → CTRL+0」みたいな2オペレーションでできる。
考える必要もない。
これ、いけるんじゃね?ってことです。
問題点†
というわけでこのかたちで実装して、ある程度の動作は確認できているのですが。
大きく2つの問題点にあたっています。
1つ目は、わかりやすい「力仕事」的な側面。
この仕組みでは「どのマップにいるのがどのMVPか」という組み合わせについてが必要な知識となります。
すなわち、ROにいる大量のMVPそれぞれについて、こういう対応をCAが知っていなければならない。
一応ある程度は対応したのですが、全て網羅できているとは思えないです。
また、検証の問題もあります:一応「確実に会える」メモリアルダンジョンのMVP・ミグエルでの動作確認はしましたが。
フィールドのMVPとなると実際に会えるかは運があり、入力したモノが「正しく動作する」かの検証もできていません。
論理的にはうまくいくはずですが、データの入力ミスとかだってありえますし。、
2つ目の問題点として・・・そういうプログラム動作以前に、仕様面での問題があります。
今回の判断方法は「マップ名がわかれば、そこにいるMVPもわかる」というもの。
これは言い換えると「そのマップにはMVPが1種類しかいない」という前提のうえに成り立っているわけです。
つまり、例えば「アルデバラン地下2F」では使えません:ここにはオークロードとオークヒーローの2種類のMVPがいるので。
他にも「生体研究所獄」とか「250ページ(ILゲフェン)」とか、いくつかそういうマップがあります。
夢幻の迷宮も「マップがある程度ランダムで、かつ道中の不確定ボスがでることもある」などで特定困難です。
こういうマップでは、前述した「討伐:xxx」というような自己申告方法しかとれないわけです。
ともあれ。†
そうはいっても、マップ→MVPが特定できる場所では「2ストロークで適切に討伐記録できる」というのは事実。
実装もできているので、しばらくその手のマップをうろうろして、様子見ながらリリースしようかと思います。
というわけで、ここで開発系はほんとしばらくストップ。
もうちょっと手を入れたい気もしますが、精錬祭も近いですし、その次はホムAI対応が来るのも見えているので。
まあそんな感じにて。
ご意見などがあれば。
改めて、コンセプトというか意図というか。†
今回の機能にかぎりませんが、ChatAnalyzerの最大の狙いは「何をやるにしても /savechat 一発で解決する」ことです。
ぶっちゃけ、ある程度の手間を許容するならば、こんなアプリはいりません。
例えば今回のクエスト実施状況。
そもそも『ROクライアント上のクエストリストから確認する』ことは可能です。
でも正直、あのインターフェースはかなり使いづらく、友瀬には現実的だとは思えません。
例えばExcelやWebアプリを作って、「クエスト名と実施日の表」を表示、ボタンを押すことで実施日をいれるとかもできるでしょう。
でもそのためには、ROから一度離れて他アプリ画面に移動して操作、そして戻ってくるという手間がいるわけです。
そういった手間を、RO上でただ「/savechat」するだけでよい。
そしてROではショートカット割り当てが利用できるので、例えば「Alt+0 に/savechatを割り当て」しておけば。
RO上でそのショートカットを押すだけで、リストのアップデートができる。
そういう利便性を求めているということです。
サポート回りについての補足。†
今回のアプリはあくまで「チャットのログを解析する」ことが基本なので、やりたいことに対して不足があります。
例えばそのクエスト/MDはデイリーなのか?ウィークリーなのか?という情報は、ログからはわかりません。
公式サイトには説明ページがありますし、動作からもわかるといえばわかるのですが、とにかくアプリは単体・自力ではそれを知ることができない。
そういう情報については、ChatAnalyzerでは「手動で登録できる」仕組みを作ってあります。
これには理由があって・・・こういう「外部情報を利用するアプリ」って、メンテナンスが止まって使えなくなることってありますよね?
極端な話を言えば、友瀬が明日突然死んだら、以後ROの新しいクエストに対応できなくなる。
それは悲しい。
それをできるだけ避けられるように、データは手入力できるようにしてあるわけです。
一昔前なら、こういった情報はWikiシステムを使って「誰でも編集できる」ようにしてありましたが・・・
残念ながらなかなかそういうのは残っていませんし、たぶん今だと運用回らない気がするんだよね・・・。
現状の難点†
ともあれ。
実装済クエスト/MDを網羅できているわけではない、というのが一番の難点ですかね。
さすが22周年を迎えている超巨大ゲームだけあって、情報もとんでもなく多く、一人で網羅するのが難しいという量的な問題もありますし。
また、特定のレベルを迎えていないと実施できないクエストは「友瀬が試せない」ため、必要な情報も不足している。
気長に更新していくつもりではありますが・・・まあ、ちょぼちょぼ、と。
ともあれ、ここ最近これにかなり注力していましたが、一段落。
またのんびり自分活動していくつもりです。
そんな感じ。
ご意見などがあれば。