Thinking.歌屋と万力屋と、その他のコのROページ。30日記/2006-11-28参考までに。放置狩りについての友瀬の基本的スタンスは、以前の日記にも書きました。残念ながら、寝落ち検知ができないのと同じ理由で、確実な放置狩り検知は行えないと判断しているため、Glenelgでは特にこれ用になにか対策をいれることはしません。寝落ちとは異なり「パーティを組んでいる」ことは稀だと思われるため、「敵がいる可能性があって、友人相当の人が側にいなくて、かつボスケミが動かない」状況なら、落としてしまってもいいようには思いますが。いずれにせよ・・・Glenelgは自動PPはサポートしていない&ソース難解ゆえに簡単な導入は困難だと思うので、放置狩するようなユーザーは使ってないでしょうけどね。日記/2006-11-27なんか、某情報サイトでホムAIに関して指摘があったようで。一応内容を見てきました。話題になっているのは、以下のようなキーワード。・・・と言ったあたり。叩かれるべくして叩かれているね、っていうのが本音、ですかね。頭の悪い記事だとは思いましたが・・・それなりに力のあるサイトですから、それを鵜呑みにする更なるアレな人たちが心配。いう面倒が嫌ってのもあって、友瀬/Glenelgでは、このあたりに対して終始一貫「やらない」方向を示してきたわけですから。ヘルプファイルにも書いてあることですが、ちと補足も含めて。友瀬は、いわゆる「寝落ち検知」というものの「目的」自体は、悪いことだとは思っていません。現状の(多くのAIで実現されている)寝落ち検知の「手法」には同意できないため、Glenelgでは対応していないだけです。これもAIにできること・できないことの問題です。「ユーザーが寝落ちしている」ということが、検知できません。基本的には「ケミが一定時間一切動作をしない」という方法で検知できますが、それには以下のような問題があります。「遊公時、ちょっとお手洗いに」というようなとき:落ちたくないのに、落とされてしまいます。街中でも、悪意ある他者がいればNGです:テロによるケミ起立、IWBBなどによる強制移動などがあると「寝ていてもケミが動く」状況になってしまいます。「寝落ちしている」ことが確実だったとして、その後に取るアクションが適切にできません「安息」を使うという手がありますが、これは友瀬の忌み嫌う「ホムAIによるケミスキル使用」です:反則行為と判断して、Glenelgでは一切やらない方針のものです。「ROクライアントそのものを落とす」という手もあります。これも友瀬的には「ホムのAI」の領域ではないものです:反則行為と判断して、Glenelgでは一切やらない方針のものです。逆説的に言えば、これらの問題さえ正確にクリアできるのであれば、「寝落ち検知時動作」を設計することはやぶさかではありません。前者は「ユーザーのマウス・キーボード操作がAIから判断できる」なら、実用上は問題ないレベルにできるでしょう。これは現状ROでは不可能です。後者はちと難しいですが・・・敵が側にいるなら、それに「手加減攻撃して、あとはなされるがままになって殺される」というようなことは可能です。これにしても、制約が大きすぎますよね。いうことで、納得がいくものが作れないので、手を出していません。日記/2006-11-26どういう状況ではどう動いてほしいのか。それが機械的に列挙できるものならば、そしてその「状況」がAI側から取得でき・「動作」がAIから指示できるのであれば、友瀬のような2流プログラマーでもそれをAIプログラムとして書くことはそんなに難しいことではない。逆説的にいえば、「どういう状況ではどう動くべきか」を書けない場合、どんなスーパープログラマーでも適切なプログラムを作ることはできない。「友瀬はGvをやる気がないから、Gv用AIを作らない」というのは、まぎれもない真実。同時に、友瀬はGvをやらないので、Gvでホムが「どう動けばいいのか」を書けないというのも事実。GlenelgのGv対応版というのは、友瀬には作りようがない。友瀬が学生だったころ。友瀬の卒業研究は、当時それなりに流行っていた「ニューラルネットワーク」に関するものでした。それを使って、さまざまな認識処理を学ばせるような研究論文を書いたものです。そこから友瀬が学んだことは「人工知能の学習に欠かせないものは、頭脳に対する適切な情報のインプット・フィードバック」ということ。残念ながら、現状のホムAI用には、こういうインプット・フィードバックの材料が決定的に不足しています。その結果、現在出回っているホムの公開AIのほとんどは、人工知能とは言ってもおおむね「エキスパートシステム」でしかないものになっています。これも人工知能には違いないのですが・・・自ら学習するのではない、データベースの自己検索システム、という感じでしょうか。AIが学習することは不可能ではありません。現在でもいくつかのAIではそういう試みはなされています。いくつかのAIでは、それでもなんとか得られるわずかな情報からなんとか現状を判断して適切な学習・判断という努力がなされています。そこにはどうしても(情報不足からくる)無理があるため、誤判断・誤学習という問題が発生してしまいます。Glenelgを含めていくつかのAIでは、AIが自動判断するのではなく、人間の手によるフィードバックを用いて学習するような方法が取られています。これにはAIが何を求めているのかを人間が判断しなければならない、裏返せば操作が複雑になるという問題が発生してしまいます。攻撃が発生したことが。どれだけのダメージを与えられたか。状態異常の発生状況が。・・・これらが「正しく」取れるだけで、一気にホムは賢くなれるのですが。これが「ホムが機械人形にならない」ための禁断の木の実、ということなのでしょうかね。日記/2006-11-24先週末から今日にかけて、かなりブルジョアなアクションをしました。ライトイプシロン購入。そのままベノ池に突撃してベノCゲット。そのまま流れるように賢者の日記ゲット。なんか、xxM単位でお金が出入りして・・・とまあ、そんな感じで、Glenelgバージョンアップ。敵優先度関連と、地図情報のメニュー廃止が主な変更点です。地図の自動判定は・・・いろいろ見てみたのですが、結局あんまり手をいれていません。現状のものでもヘルプファイルにあるとおり、以下の手順を踏む限りは(タナトス以前での)ほとんどのマップで移動後の自動判定ができるはずです。1度は、現状のマップ名を正しくセット。命令待ち状態に入る→「/where」「/savechat」→ALT+Tで通常状態へ。上記の通りにして「正しいマップにいる」状態で、マップ移動する直前、その進入するゲートを「ALT+SHIFT+右クリック」。その後にゲート進入する。調査ができていない新しいマップは未対応です。視点が移っている方が多いようです。正直にいうと、Glenelgではそのあたりについてはほとんど気を使っていません。ときどき(自分や他の人の)日記やコメントで書かれているように、Glenelgでは「ソースや関数がしつこいくらいに分割」や「異常なほどのコメント記載」がなされており、結果巨大(つまりロード時間が長い)かつ内部的にメモリを食いやすい(つまり結果的にPC負荷は増える)ソースリストになっています。構造的にも「軽量化のためだけ」にはこれといった処理はしていません。「1AIサイクル中にはMove/Skill/Attackはいずれか1つのみ」という最低限の気遣いやある程度の最適化はしていますが、それはある意味当たり前の話ですし。総合的に見て、Glenelgはどちらかというと「重い」AIだと思います。これは、開発ポリシーの違いだと思ってください。ソース分割とコメント量増大は、ロード時間を引き換えに後々のメンテ性を確保しているだけです。通信系はこれも繰り返しになりますが、非同期通信系で確実な内部対応をするか、人間が意識できないレベルの遅延を是とするか、このあたりのバランスで、友瀬は通信系の最速を優先しているだけです。日記/2006-11-16人間の判断はどうしても主観的。「設定がやさしい」というのは、何が基準になるんでしょうかね。Glenelgは「そのプログラム・ソースが難解」なのは否定しません。導入・カスタマイズについては、かなり気をつかっているつもりです。使ってもらえなければ、公開している意味がないですから。カスタマイズする際にいじるべきファイルは、ヘルプファイルで詳しく紹介。先頭で、基本的な編集のやり方について説明しているつもり。類は、すべての項目の詳しい「そのパラメータにはどんな値を設定できるのか」「設定を変化させたときに何が変わるのか」を記載しているつもり。ヘルプファイルのトラブルシューティング項目にて「〜〜という動作をさせたいんだけどどうすればいい?」というかたちで、実現したい現実から変更すべきパラメータを探すことができるようにしているつもり。文字は量があればあるほど「圧倒されてしまう」のも事実なので、そういう逆の意味でのハードルは高くなっちゃうのは否定しませんが。カスタマイズなんかしないで動かしてみればいいんじゃないですかね。まがりなりにも「友瀬が実際に使っている」設定なので、そんなにお行儀悪いことはしてないはずですし。判らなければ、掲示板でも拍手ででもメールででも、連絡してくれればいいんです。少なければ個別で、多ければそれこそ「拍手フォロー」みたいな感じで1箇所で解説対応するくらいはしますし。いくつか貯まったので、拍手的な。†ええと、数日前の日記で「地図情報BMPが未リリース」というようなコメントをしたのですが、実は「すでにリリースされている」とつっこみがありました。友瀬の見落とし(^^;;で、地図対応関連については大きく2つの課題を持って、対処中です。リアルがアレなので、リリースは・・・今週末は苦しいかな?マップ名指定方法について。Glenelgでは昔から「メニューを使ってリストをスクロールするような形で、マップ名選択」という仕組みがありました。次回のリリース版ではこれは廃止する予定です。いうのは・・・リストで管理している以上、あたらしくマップが拡張されるたびにAIの管理情報を更新しなければならないですよね。この手間が正しくないからです。今後は、チャットコマンドでの「/where」「/savechat」での指定が、Glenelgでのマップ名指定方法となります。Glenelg独自といえる「マップ名の自動判定」の改訂作業については、ちと保留中。メンテにもろいという問題があるのはわかっていたのですが、正直予想を遙かにうわまわる情報変動で、手が追いつかないので。鋭いつっこみがもう1点。現状Glenelgではマップ情報サポートをしていますが、その前提条件は「セルの侵入可否は、人間は実際に移動しなくても、カーソルをもっていくとその形状が変化するので、知ることができる。・・・という、友瀬的な「正当性」がよりどころです。Q.8)が、こんなことを指摘されました。「一部のマップでは、カーソルを合わせてもカーソル形状は変わらないです。Σ('-'つ)つ確かにシーズモードではそういう動作のような気がする。ターボトラックなんかもそうかな?・・・というわけで。近い将来、友瀬が知ることができたこういう条件にあたるマップでは、Glenelgは「マップ情報を利用しない」ような動作をするように変更したいと思います。友瀬が行くマップは非常に限られていますので、こういう条件にあてはまるマップ名がどれになるのか、把握していません。ご存知の方は、ぜひ情報提供ください。「クライアントを止めずにWAITさせる方法はあります。AI()関数の先頭で経過時間を確認し、時間が来ていなければリターンします。これだけで、クライアントが止まるような事がありません。・・・というようなコメント。友瀬はこんなことで困った記載をした記憶がないので、なぜこういうコメントをいただいたのか判らなかったのですが・・・もしかしたらGlenelg開発メモ:(未実装)ASPD高速化に関するメモに書いた『AIで待ち時間を持たせると、その間ROクライアントの表示系がとまってしまう』についてのコメントなのかな?で、もしそうだとしたら、これについては・・・申し訳ないですが、論旨がずれていまして。上記「高速化」でのポイントになるのは、「140msサイクルのAI動作が、ASPDと数十ms単位でずれているので、この数十ms単位でのWAITが必要。」という部分で、つまりこのWAITはクライアントに制御を戻さないAI内で作り出さなければならない、という点になります。ご指摘の方法では「クライアントに制御を戻した時点で、件の140msサイクルの限界にぶち当たってしまう」ため、役に立ちません。クライアントに制御を戻さなければならない時点で、意味がないのです。10:05記載修整)。完全に同じにしていない理由は後述。秒換算まではしていないべたなデータですが、そこまでの精度が必要でない部分なのでいいかげんに作ってあります。起動後以外では、逆に、そんな「初めから時間で切る」ようなWAIT処理はする気がありません。すべてをAI側で管理しているならば、そういう軽量化処理も意味があるのですが、ホムAIの場合「次にクライアントに制御が回ってきたタイミングで、以前と何が変わっているかわからない」ため、単純に「コマンド発行したから終了まで待つ」なんてのは、ホムの反応性が低下することになるだけです。確かにスキルディレイ中などで「次のスキルは無意味だから出さない」とい処理はありますが、ではディレイ中にホムの体力が低下していたら?逃げ出さなければならないのに、時間まで待つわけにはいきません。非同期の通信・制御系で、周囲の状況もチェックせずに処理を止めるのは大きな理由がないかぎり大下策だと思います。Glenelgでの「起動時のWAIT」は、ROクライアントが人間側への表示が未完了な状態でもホムAIはフル稼働してしまうという根本的な問題点を避けるための苦肉の策であり、これですら本来は「クライアント側から表示完了という情報が通知され、それと同時にAIが動き出す」のが正しい姿だと思っています。ご指摘の趣旨が見えなかったので、こちらの想いだけですが。ご指摘いただいた情報、なにか友瀬が見落としているようなことがあれば、もうちょっと補足いただけると助かります。以上、今回は(も?)全般に開発寄りですが。日記/2006-11-15めいっぱい夢物語だけどさ。一度使用すると「数時間、自分の倒した敵のドロップ品のルート権が、他プレイヤーに一切移らない」ようなものなら、有料アイテムでも友瀬は買っちゃうかも。正確にいうと、「倒すのに一切寄与していない人には、何分たとうがルート権は移らない」がいいか。それを拾っていくな、テレポアコ。明らかにおかしいのはさっさとつぶしてください、神様。アニバーサリーパック限定アイテムだとか、特殊効果を持つアイテムだとか、お金儲けがいろいろと考えられているようですが。友瀬は、これ自体にはそれほど批判的ではありません。別にROに限らず、商売を仕掛けている側は「売れそうな商品を提供する」ことが至上手段です。それを利用する側だって「楽しく遊べるなら」「妥協できる範囲で」お金を出すことは否定しないはずです。友瀬にしても、自分で妥協できる範囲として「2アカ課金維持」「3アカ目までは常時払う気はない」とバランスをとってますし。今回の件についても、後述しますが、内容によっては多少はお金をだしそうですし。ここは「魅力ある商品を作ったガンホーに拍手」としておきましょう。真面目な話、もっといろいろやって欲しいことはありますが。個々のモノについてもコメント。「なに考えてるのかね。これらが、いくら有料とはいえ、もともとそれを使える職業(ありていに言ってプリ)の特質を食いつぶしているということに気づいていないのでしょうか。支援スキルスクロールは言い換えると、「元からスキルを持っているプリには得にならないけど我慢してね」ということで。強くいうのもアレですが、本質的には問題あり、ということで。『死亡時のその場復活』も似たようなもの。他の人に起こしてもらうというシーンは、想定していないのかな。上記も含めて、パーティプレイ・辻交流の機会を減らしてソロプレイ推奨としたいんでしょうかね。『経験値増加』や『デスペナ回避』については、自分で使うかどうかはともかく、あんまり文句はありません。設定額にもよりますが、往々にして「飽きられる時間が早くなってやめてしまう人が増える」結果損するのは経営者であるガンホーだけですから、好きにすれば、って感じ。MMOはたぶん、細く長くがおいしい商売ですよ。経験値ブーストについては「ブースト中は必死狩りになるだろうから、ギルド内でも接続タイミングによってはパーティを組めない」なんて危惧もあるようですが、そんなのはその個人の問題だと思ってます。いくらになるか判らないですが、ある意味「常時使用」が期待されるようなものにお金を払えるのはいわゆる廃人ですし。少なくとも友瀬には、無理です。逆にデスペナ回避については「1コ買って、使えば1回デスペナ回避できる」って言う感じなら、友瀬も値段によっては考えちゃうかな。ラグやオブジェクト消失などの「こちらでは手の打ちようがない」事故でころっと死んで、2時間くらいが無駄になっちゃう98セージを持つ身としては。「ブーストで時間短縮しよう」とは思いませんが「理不尽に失われた時間を取り返したい」くらいは思いますし。「n時間の間デスペナなし」とかなら無視の方向で。そんな「起きるかどうかも判らない、自分のミスによる死にも防御策ができちゃう」ものにお金を払うのはちょっと。アニバパックの「お金を出さないと手にも入らないアイテム」ってのは、苦しいところ。友瀬的には、うさみみの出来次第なんですが。なんていうんですかね・・・現品販売でもないのに、クーリングオフが効かないんですよね。試着できるわけでなし、興味があったら買うしかなくて、買って気に入らなかったらと言って・・・ってね。あきらかに興味のないもの(装備品ならサテライト、またアニバパック内の壁紙類)なんかとの「抱き合わせ」商品ってのも、こちらとしては苦しい感じ。電子媒体の世界だから許されてますが、現実世界でこんな商売したら後ろに手がまわりそうです(笑)まあだらだらとこんな感じですが。友瀬はしばしば、冷たいというか、容赦ないというか、かざらないというか・・・そういう感じの文章表現をすることがあります。友瀬は決して悪意を持って何かをしようとしているわけではないですが、人間、見た目から受ける印象は大きいです。リアルではともかく、「字面しか見えない」Web世界では、ほめられたことではないです。冷たい字面の言葉を見れば、やはり冷たい反応を返したくなってしまうものですし。逆もまた真で、やさしい対応をされて嫌な人間は普通いません。いう意味で、拍手的な。あたりでいろいろと暖かいご意見・連絡をいただけると、自分の態度面を省みて恐縮することもあります。善意同士だけで向き合えると嬉しいですよね。残念ながらいろいろと世知辛い人が多いのもまたWeb、友瀬もついついそれにあわせがちなのは事実。気を付けたいものです。日記/2006-11-08別の方のサイトにてコメントをしたのですが、こっちでも書いておきます。フィーリルのムーンライトの射程問題。Glenelgや標準AIでフィーリルを使うと、ムーンライトは「敵に接近してから」使用するはずです。ROクライアント+AIのつくりによっては、カプリスと似たような感じで「遠距離からムーンライトを撃つ」ことは可能です。友瀬&Glenelgでは、この動作をサポートすることは「ROクライアントが許可しないかぎり」ありません。†Glenelgでのスキル使用の射程に関する扱いは、以下のようなものです。対象にした敵と、使おうとするスキルの射程を比較する。スキルID)というものがあり、これが「スキルの射程」になっています。射程よりも遠くに敵がいるならば、接近する。射程内に敵がいるならば、スキルを使う。現状上記の設計で、バニルのカプリスは「遠距離から」撃ってくれます。フィーリルは(自分では持っていないので確認できないですが)「近距離でしか」撃ってくれないようです。カプリスの射程は9セルなので、結構遠距離です。ムーンライトの射程は2セル。通常白兵戦と同じ近距離武器となっています。†これは、ROシステムの制約事項です。以下のような状況を救済するための仕様のようです。なる?上記状況でも魔法が出るようにするために、ROでは以下のような動作をしています。スキル使用開始の条件として、スキルの射程はチェックする。一度スキル使用が確定したら、その後は射程チェックはしない。フィーリルのムーンライトの場合も、これと同じことが起きています。AIで「スキル射程のチェックをしなければ」ムーンライトといえども遠距離への攻撃が可能です。友瀬andGlenelgでは、この「遠距離ムーンライト」はAI側から積極的にサポートする気はありません。理由は、それが「ずる」だからです。決められている射程よりも遠くに撃つのは、ルール違反。実際、今までにも「射程外のオットーにユピテルサンダー」なんていうチートツールがありました:遠距離ムーンライトを行うということは、このチートと同じことです。「実はムーンライトの射程2というのがROクライアントのバグで、それをグラビティ・ガンホー側が直す」ということがあれば、結果的に解消されることはあります。Glenelgでは射程チェックをしているので、その射程が変更されれば相応に動作します。†ちと不用意な記載があったので、補足というか言い訳というか。上記で「ずる」と書いているのは、あくまで友瀬の判断です。他のAIで実施しているものもいくつかありますが、それが悪と言っているわけではありませんので、誤解なきよう。いうことかと言うと・・・AI作成に関するルールのようなものは公式からは「特に指定はありません」。別の言い方をすると、公式では特に「AI内で射程チェック→射程内のときにのみスキル使用しなければならない」ということは明記されていません。「射程チェックせずにスキルを使うこと自体は、公式には特に禁止されているわけではありません。友瀬は単に「公式AIのつくり」と「存在している(射程取得)関数」との関係から、これが「RO設計者の本意」と考えて、それを自分の制約にしているだけです。なんというますか・・・たとえて言いますと。ある私道があって、あなたがそれを横断したいと思っているとします。5m左に行けば、(これも私設の)信号機付の横断歩道がある。私道・私設なので、無視しても犯罪ではありません。慣例的に「赤ならわたっちゃだめ」「横断歩道を使うの推奨」というのはわかります。友瀬は100%の善人ではありませんから、自分ひとりなら状況に応じて信号や横断歩道は無視してわたってしまうと思いますし、他の人がそれをしててもとやかくいいません。『友瀬の責任で交通ルールの指南書を書いてくれ』といわれたら、ここでは「信号を守って、横断歩道を渡りましょう」と書きます。日記/2006-11-07Junkyardに書いたとおり、リアルのほうでいろいろやっててROも密度が下がってます。一応ここ最近の動きを書きますと・・・ホムが一段落着いたので、最近はケミ==Viceとセージ==Cathyとを適当に。ラグや昨今の「火壁消え」も含めて事故にもろいCathyは朝のみ。上記のように気をつかったのに・・・10月末に稼いだCathyの4%ほどの経験値を、11/3の2時間程度で全て失う(^^;久しぶりに触ったFCASセージはやっぱりもろかった(^^;;;白ハーブ在庫が12000を超えたので、ちょっと2000枚分ほど製造。辻アルケミ魂をもらったら、らくちんだった。・・・ってとこですかね。AIのほうは、特に動きなし。掲示板での地図自動判定見直し対応相談が着ているのは忘れていませんが、どうせやるなら新マップ名もいれこみたいので・・・そーすると地図データそのものがないので、保留しているところ。地図データBMP画像が外部の人のライブラリまかせなのが苦しいところ。編集操作バックアップある名言。