
2005-02-01
続編において対象年齢が引き上げられるという事例は決して珍しくないものの,今回の "Prince of Persia" の事例は,作品の雰囲気が大幅に変化してしまうほどの変更が加えられたという点において印象に残るものだった。
他に,続編において対象年齢が引き上げられた例としては, Naughty Dog の "Jak" シリーズなどが挙げられる。
http://www.esrb.com/search_results.asp?key=jak&type=game&val...
初代 "Jak and Daxter" は「全年齢対象」 (Everyone) であったのに対して, "Jak II" 以降は「13歳以上対象」 (Teen) へと変更されている。実際のゲーム内容も,冒険探索的な内容から物語性を重視した内容へと変化しており,キャラクターデザインや世界観に関しても「大人っぽい雰囲気」を意識した様子がうかがわれるようになっている。
また, "Metal Gear Solid" シリーズにおける表現の変化なども印象に強く残っている。
http://www.cero.gr.jp/search/search.cgi?name=%A5%E1%A5%BF%A5...
前作 MGS2 は「15歳以上対象」に分類されていたのに対して,最新作 MGS3 は「18歳以上対象」にまで引き上げられている。また,去年夏頃より新設された「コンテンツディスクリプターアイコン」も数点増やされている。ここでの「犯罪」の表示が作品中のどの辺りの表現を指摘しているのかは定かでないものの,「恋愛」・「セクシャル」に関しては思い当たる節がある。ちなみに,「飲酒・喫煙」の表示が無いのは,国内の審査においては違法な飲酒・喫煙のみが指摘の対象となっているためであると思われる。
純粋に販売上の都合だけを考えるならば,「全年齢対象」の評価を得ることが最も有利であるはずだ。そこを敢えて対象年齢を引き上げる理由は,より印象的な表現を用いることがユーザの関心を掻き立て,娯楽性の向上に繋がるためであると考えられる。なかでも,暴力的な表現が作り出す刺激の重要性に関しては, Gamasutra の記事 "Manhunt to Mortal Kombat: The Use and Future use of Violence in Games" に簡潔にまとめられている。
http://www.gamasutra.com/features/20040903/kent_01.shtml
欧米市場においては, "Grand Theft Auto" シリーズの圧倒的な支持や, "Halo" シリーズを始めとするシューター系ゲームの隆盛などがあって,暴力性の高いゲームが好まれる傾向にあると感じられるものの,実際には,これらの「暴力性の高いゲーム」は依然として少数派を保っているという指摘も存在する。
http://articles.filefront.com/Mature_Video_Games_in_the_Mino...
上の FileFront の記事 "Mature Video Games in the Minority" によれば, 2004 年に発売されたビデオゲームタイトルのうち,「17歳以上対象」を表す "Mature" が付けられたタイトルは,全体の売り上げの 18% を占めるに過ぎないと指摘されている(もっとも, 18% を「過ぎない」と考えるかどうかは,意見の分かれるところであると思う)。
また,下の Chicago Tribune の記事 "M-rated video game sales raising more concerns" によれば, 2004 年中の全売り上げのうち,実に 55% が「全年齢対象」タイトルであり,次いで 27% が「13歳以上対象」タイトルであったと指摘されている。
http://www.ledger-enquirer.com/mld/macon/entertainment/10748...
市場全体の売り上げに対する Mature タイトルの割合は,現在も緩やかな増加傾向を保っているものの,その売り上げの多くが GTA シリーズを始めとする数個のキラータイトルによって支えられているという背景も存在する。もし今後, GTA シリーズの新作が発売されない年があったとして,その年も Mature タイトルが増加傾向を保つかどうかという点に関しては,興味の湧くところであると思う。
2005-02-02
CERO や ESRB のようなレーティング機構が行っている評価プロセスは,その地域によって微妙な方針の違いを含んでいる。個人的な印象としては,やはり当然のことながら,日本の CERO が自分の感性に最も近い評価を行っていると感じられる。アメリカの ESRB は CERO よりも多少厳しいきらいがあり,ドイツの USK は更に数段厳しい評価を行っている。ドイツ以外の欧州圏においてレーティングを主に請け負っている PEGI は,まだ歴史が比較的浅いことから,その傾向が自分にはよく分かっていない。
いずれのレーティング機構も,所属の審査員が一定の倫理規定に基づいて柔軟に評価を行うという基本的な手法に違いは無い。ただし,どのような表現に対してどのような評価が行われるのかという点に関しては,いずれの機構においても曖昧にされている部分がある。何かルールを守っていれば確実に通過できるというわけではないため,その対策に苦慮することも少なくない。特にドイツの USK は,評価基準が曖昧な割には厳しい評価を行うことで知られており,たとえ大人向けのタイトルであっても血の色を変えるなどの対策を行っておくことが慣例化しているというような話を聞く。
アメリカの ESRB は, "Teen" (13歳以上対象)を与えることに関しては比較的寛容でありながらも, "Everyone" (全年齢対象)に関しては厳しい態度をとっているような印象を受ける。特に,暴力の表現や銃の描写に関しては,かなり厳しい評価基準を適用しているようだ。例えば,日本国内では「全年齢対象」の評価が与えられている「ラチェット&クランク」や「ドラゴンボール」等のタイトルも,北米では "Teen" になってしまっている。両タイトルに見られる銃器や暴力等の要素が評価に影響を及ぼしているであろうことは想像に難くない。
http://www.cero.gr.jp/search/search.cgi?name=%A5%E9%A5%C1%A5...
http://www.cero.gr.jp/search/search.cgi?name=%A5%C9%A5%E9%A5...
http://www.esrb.org/search_results.asp?key=ratchet&type=game...
http://www.esrb.org/search_results.asp?key=dragonball&type=g...
ESRB が Teen に関して寛容であると感じられるのは,戦争系のゲームを始めとして,意外なタイトルが Teen に分類されていることがあるためだ。例えば "America's Army" や "Medal of Honor", "Battlefield" 等のタイトルは,実在する武器を使って人間を撃ち殺すような内容であり,タイトルによっては血の描写があるにも係わらず, Teen に分類されている。
この辺りの事情に関しては,前出の記事 "Manhunt to Mortal Kombat: The Use and Future Use of Violence in Games" において軽く触れられている。
http://www.gamasutra.com/features/20040903/kent_01.shtml
実際に Everyone の評価を与えられるタイトルはどの程度存在するのだろうか。 ESA (Entertainment Software Association) による市場報告書 "Essential Facts" を参照してみると, 2003 年に米国内で販売されたゲームソフトのうち,全売り上げ(本数ベース)の 54% が Everyone に分類されると記されている。
http://www.theesa.com/EFBrochure.pdf
同報告書には,ジャンル毎の売り上げの比較も載せられている。それによれば,アクションゲームが 27.1% と最も大きな割合を占めており,次いでスポーツゲームが 17.6%, レーシングゲームが 11.3% を占めているとされている。
スポーツゲームとレーシングゲームに関しては,よほど特殊な内容でない限り Everyone の取得が可能であることから,そのほとんどが Everyone に分類されているものと考えられる。そこで単純な引き算を行ってみると, 54 - 17.6 - 11.3 = 25.1 ということで,約 25% ほどが「スポーツでもレースでもなく,かつ Everyone に分類されているタイトル」として存在するものと考えられる。予想したよりも案外大きな割合であるというのが個人的な感想だ。
2005-02-07
最近では,コンシューマゲームにおいて C++ を用いることも珍しくなくなってきた。むしろ多数派に転じつつあるのではないかと感じられるほどだ。 STL に関しても積極的に利用しているという事例が少なくない。しかし,例外や RTTI 等の機能に話が及ぶと,ほとんどの人は消極的な態度を見せるようだ。少なくとも自分は,これらの機能を実際に利用しているという事例を耳にしたことが無い。
そのような状況もあって,自分はこれまで C++ の例外機能を真面目に扱ったことが無かった。使い方はなんとなく分かっているものの,いわゆる「勘」がまったく身に付いていないため,どのようなコードを書けば正しく例外を処理することができるのか,直感的に理解することができない。
例外を利用したエラー処理には,従来の「エラー値の返却」を利用したエラー処理と比較して簡潔にまとまりやすいという利点があるものの,それによって飛躍的にコストが軽減されるというわけではない。例えば,ブログ "The Old New Thing" の Raymond Chen 氏は,むしろ例外を利用したエラー処理の方が扱いにくい側面も存在すると指摘する。
http://weblogs.asp.net/oldnewthing/archive/2004/04/22/118161...
上の記事において氏は,とある C# の解説書にあった例外処理のサンプルコードと,そこに添えられた解説文を引用している。
しかし氏は,その解説を揶揄する。
例えば, GenerateDatabse の末尾で呼んでいる CreateIndexes の中で例外が発生したらどうなるだろうか。例外は GenerateDatabse を通過し上の層で捕捉される。これは一見,正しい挙動のように思えるものの, GenerateDatabase を脱出してしまった時点で,データベースの生成がどこまで進んでいたかという情報は失われてしまう。結果として, PhysicalDatabse と Tables は破棄されずに,メモリないしはディスク上のどこかに残ってしまう(リークしてしまう)というわけだ。
また,氏は以下のようなコードも例示している。
一見,何気ない記述のように思えるこのコードも,例外処理に関して問題をはらんでいる。 ChooseRandomTeam で例外が発生した場合,オブジェクト guy の属性 Team には何の値も設定されないまま,この関数は終了してしまう。しかし,オブジェクト guy は AddToLeague によって League 登録されてしまっているため,後に League から Team 属性を利用するような処理があった場合に,参照先が存在しないという不具合が発生してしまう。
この不具合を修正するには,以下のように順序を入れ換える必要がある。
この順序であれば, ChooseRandomTeam が例外を投げたとしても,未登録のオブジェクト guy がガベージコレクタによって破棄されるだけであり,安全に終了することができる(例外を処理するのは上層の仕事だ)。
これらの例からも分かるように,例外を利用したエラー処理における「ダメなコード」と「正しいコード」の差は非常に微妙なものとなってしまう。この難しさについて触れていたのが, Raymond 氏の先日の記事 "Cleaner, more elegant, and harder to recognize" だ。
http://weblogs.asp.net/oldnewthing/archive/2005/01/14/352949...
「より簡潔で,よりエレガント,そして,より見分け難い」という表現は,例外の持つ難しさの本質を言い当てているように思われる。「エラー値の返却」を利用した昔ながらのエラー処理は,返却値の確認を行っているかどうかで対処の有無を知ることができるうえ,エラーの発生するタイミングとそこからの流れが分かりやすいという特徴を持っている。そのため,「ダメなコード」と「正しいコード」の判別がつきやすい。しかし例外の場合は,エラーへの対処が暗黙的であり,しかも前出の例のような些細な違いが差を生み出すため,多くのコードの中から「ダメなコード」を見つけ出すことが非常に難しくなってしまっている。 Raymond 氏はそのために,例外を用いたコードを書く際には,「最初は手を抜いて書いて,あとから直す」というような「贅沢なやりかた」はしないように心掛けていると述べている。
これらの記事において Raymond 氏は,例外という仕組み自体が悪いと主張しているわけではない。例外を利用したエラー処理が非常に簡潔にまとまることは事実であるし,プログラミングのコストはトータルで軽減されるものと捉えることができる。ただ,例外処理を本当に正しく記述するには十分な注意深さが必要であり,さもなくば,非常に発見の難しいバグと奮闘する破目に陥ってしまうということだ。
2005-02-08
余談になるのだけれど, Raymond Chen 氏のブログ "The Old New Thing" は相変わらず面白い。数ある Microsoft 社員のブログの中でも最も気に入っている。今でもその順位は変わっていない。
少し前の記事で面白かったのが, Windows の "xerox" フォルダの謎について触れた記事だ。
http://weblogs.asp.net/oldnewthing/archive/2004/11/16/258220...
Windows の Program Files フォルダを調べたことのある人なら誰しも,そこに "xerox" という名前のフォルダが存在することに気付くだろうと思う。 Xerox 社の関連機器を利用している人ならともかくとして,多くの人は身に覚えのないフォルダが存在することを不思議に思うはずだ。そのフォルダの中身をのぞいてみると, "nwwia" という名前の空のフォルダが存在するのみであり,他にファイルは何も見当たらない。まるで何かの残骸のように見えるので,とりあえず削除してみようとすると,フォルダ自体が何かのプロセスによって保護されており,削除できないことに気付く。削除エラー? 一体誰がこんなフォルダを保護してるって?
Raymond 氏によれば, Program Files 下に "xerox" フォルダが存在し,しかもそのフォルダを削除することができないのは, Windows File Protection (WFP) システムが,このフォルダ内にインストールされるファイル "xrxflch.exe" を監視しているためであるとされている。 WFP は存在しないフォルダ内のファイルを監視することができないため,当該ファイルの存在の有無に係わらずフォルダが存在するようになっているということだ。
WFP が "xrxflch.exe" を監視している理由に関しては, Raymond 氏も推測を述べるにとどまっている。恐らくは,これも Windows の互換性維持のための処置なのであろうと思う。何らかの複雑な事情があって,各種のセットアッププログラムによって "xrxflch.exe" が書き換えられてしまうのを防ぐ必要があるのだろうと述べられている。
ここで,当該ファイルを書き換え不可として保護するのではなく,書き換えを監視するという受身的な方法を用いている点が,いかにも Microsoft 的であると感じられる。書き換え不可として保護すれば,システムが破壊される恐れはなくなるものの,セットアッププログラムはインストールに失敗したものとして中断されてしまう。そうすれば,ユーザーはその原因究明の手間を負うことになってしまう。そのような事態を避けるには,当該ファイルの書き換えを直接に阻止するのではなく,ファイルの書き換えを検出するようにしておいて,あとでシステム側が復帰を行うという手順を踏まなければならない。これは,技術者にしてみれば酷く面倒な回り道であるように感じられるものの,ユーザー本位の観点からすれば正しい解決法であるはずだ。そのような姿勢を徹底して貫いていることが, Microsoft 製品の品質の高さの一端を担っていると捉えることができると思う。
2005-02-11
先日,テレビ東京の番組「ソロモンの王宮」において,PD社の山内氏が取り上げられていた。
http://www.tv-tokyo.co.jp/soromon/back/050130.htm
番組の性質から必要以上にセンセーショナルな扱いをされてしまってはいまいかと心配していたのだけれど,思いのほか落ち着いた内容だったので安心した。実のところ,自分も純粋に番組を楽しむことができた。特に,トラブルが発生してからの展開などは,番組制作側にとってみても思いもよらぬ展開だったのではないかと思う。内容に関して詳しく触れることはできないものの,現場の緊迫感がリアルに伝わってくる内容であったことは間違いない。
番組を見ていて印象に残ったシーンのひとつとして,PD社の充実した職場環境を紹介した部分が挙げられる。「どうしても職場に長く居る必要のある仕事だから,長く快適に過ごせる設備を整えた」という山内氏の弁には,恐らく賛否両論があると思われるものの,ここまで環境の整備に投資を行った事例は珍しいため,試みとしては興味深いものであると感じられる。
http://www.kokuyo.co.jp/yokoku/amy/2003/vol06.html
http://www.jp.playstation.com/psworld/game/features/040806_2...
これを見て連想したのは,ブログ "Ninetyninezeros" の Mark Jen 氏による考察だ。氏は同ブログにおいて, Google 社の社員が受けることのできる「特典」に関して触れたうえで,様々な考えを巡らせている(ところで,どうやら氏は本当に入社後10日間で解雇されてしまったようなのだけれど……これはまた別の話)。
http://99zeros.blogspot.com/2005/01/uh-oh-what-happened-to-m...
Google 社には他にも多くの特典が存在する。社内に常駐の医者,常駐の歯医者,社内カーウォッシャー,無線LAN完備のシャトルバス,等々……。様々な日常の雑務を軽減する「特典」を用意することによって,より仕事に集中することのできる環境を作り出すことができる。特に, Google 社のように高度な知的労働を要求する環境においては,そのような「特典」が重要な違いを生み出すため,会社側も惜しみない投資を行うということなのだろうと思う。
余談になるのだけれど,氏の話の中に出てくるシャトルバスのサービスなどは,まさに労働時間を増やすための合理的な手法であると感じられる。車内に提供される高速無線LANによって,社員は通勤中も仕事をこなすことができるようになっているということだ。
http://99zeros.blogspot.com/2005/01/yikes-it-takes-while-to-...
2005-02-14
前述のような「長い労働時間を快適に過ごせるように労働環境を整える」という考え方に関して思いを巡らせていると,まず,そもそも「長い労働時間」を肯定的に捉えるべきかどうかという疑問が湧いてくる。ひとまず勤労の美徳や労働者の権利等の話は避けておくとして,実質的な側面のみを考えてみると,長い労働時間には利点も欠点も存在すると考えられる。利点としては,単純に生産量が増えるという点や,時間にゆとりのあったほうがフロー(高度な精神集中状態)に遭遇する可能性が高くなるという点などが挙げられると思う。欠点としては,適切な労働時間を超えると生産性がかえって低くなることや,「燃え尽き」(バーンアウト)の発生の危険性,動機の低下による離職の危険性などが挙げられると思う。
ひとまず利点と欠点の両方を挙げたものの,個人的には,労働時間を長くすることに実質的な利点は全く無いと考えている。高い見返りによって動機を保つことができたとしても,生産性の低下や「燃え尽き」の発生を防ぐことはできないし,最悪の場合品質の低下も起こりうる。やはり,適切な労働時間を保てるように無理のない管理を行うことが,最低限求められるはずだ。
ただし,その「適切な労働時間」が,1日あたり8時間で済むかどうかは分からない。正直なところ,1日8時間労働を忠実に守りつつ,今まで通りの品質と予算・期限を保てるという確信が,自分には無い……。
先日の Gamasutra の記事 "Making Great Game In 40 Hours Per Week" は,1日8時間労働によるゲーム制作の事例を紹介したものだった。
http://www.gamasutra.com/features/20050131/howie_01.shtml
ここで紹介されている Blue Fang Games 社の "Zoo Tycoon 2" 制作チームは,「1日あたり8時間,1週間あたり40時間,残業無し,休日出勤無し」という勤務体系で同タイトルの制作を行ったとされている。記事中には,このような開発体制を守るために必要とされた様々な手法が提示されているものの,それらの基本的な考え方はいずれもよく耳にするものばかりだ。曰く,「優先度を明確にせよ」,「何が切り落とせて何が切り落とせないかを把握せよ」,「不測の事態に備えよ」,「スケジュールを頻繁に更新せよ」,等々……。何かとっておきの特効薬(あるいは「銀の弾丸」)が存在するわけでもなく,ただそのような「あたりまえのこと」を忠実に守ることによって,無理のない開発体制を実現しているということだ。
中でも特徴的なのは,労働時間の延長を明示的に否定している点であると感じられる。
そんな氏等も,短期的な残業は消極的ながらも肯定しているという点が興味深い。記事によれば,マイルストーン毎に1週間から2週間の長さの「修羅場週間」 (crunch week) が設定されたと述べられている。その週は1日あたり10時間勤務が基本とされ,任意の1日だけ8時間勤務を選択することができるようになっている。この「修羅場週間」の予告はあらかじめ明示的に行われ,社員やその家族がそれに予定を合わせることができるように配慮されている。
更には, "Zoo Tycoon 2" のマスターアップ間際には,締め切りを守るために 26 日間の休み無し勤務が強いられたと述べられている。ただ,これが一般的な「マスターアップ修羅場」と異なるのは,この止むを得ない行為をも徹底して否定的に捉えているという点だ。
2005-02-16
最近は,細かな技術ネタを拾い集めてくる機会が少なくなってきた。理由としては,以前と比較して仕事の内容が変化してきたことや,ブログを読んでいる時間が長くなってきたことなどが挙げられるかと思う。もちろん,仕事が徐々に忙しくなってきていることも大きく影響している。
それでも,たまには技術ネタにも触れておこうと思い,今は Craig Reynolds 氏の "Game Research and Technology" のページにあるリンクを,興味の引かれたものから順に辿ってみている。
http://www.red3d.com/cwr/games/
Reynolds 氏は "Steering Behaviors" のページなどで有名なゲーム技術研究者だ。現在は SCEA の R&D Group に所属し,各種の技術研究や "OpenSteer" 等のプロジェクトの管理を行っている。
件のページ "Game Research and Technology" には,氏が各種の学会等から集めてきた文書へのリンクがまとめられている。主として集められているのは AI 関連の技術であり,ここまで丁寧にまとめられたリンク集は,ゲーム AI に限って言えば他に無いと言っても差し支えないだろうと思う。例えば,グラフィック関連の技術ならば "Real-Time Rendering" のリンク集のように素晴らしいものがあるが,これはそのレベルに相当するものであると感じられる。
http://www.realtimerendering.com/
この中から適当に選択して先日読んでみたのは, Nathan Combs 氏の "Declarative versus Imperative Paradigms in Games AI" だった。
http://www.roaringshrimp.com/WS04-04NCombs.pdf
これは,直訳するならば「ゲーム AI における宣言的手法と命令的手法の比較」というようなものになるが,もう少しくだけた感じに直すならば「ルール方式とスクリプト方式の比較」となると思う。この論文において Combs 氏は,現在のゲーム AI の主流がスクリプト方式に偏っていることを指摘しつつ,ルール方式を用いることの利点を説こうとしている。
ゲーム AI の方式がスクリプトに偏る傾向があるという氏の指摘は,たしかに正しいものであると思う。恐らく,本格的なルール方式(プロダクションシステム)をゲームに導入した事例は,非常に限定されるのではないかと思う。自分の場合は,プログラミング言語 "SOAR" について調べた際に,初めてルール方式の概念に触れた。しかしこれは,自分の知識の中にあるプログラミングの概念とはかなり異なるものであるように感じられた。
http://sitemaker.umich.edu/soar
Nathan 氏は,ルール方式の利点として抽象性の高さを指摘している。シチュエーションに依存してしまうスクリプトとは異なって,抽象性の高いルールはゲームの様々な箇所に適用することが可能であるし,場合によっては異なるゲームに対しても適用することが可能かもしれない。また,その抽象性の高さから多様性や創発性 (emergency) を生み出しやすいという利点もある。そのような利点を考慮することなく,安易にスクリプト方式を用いてしまってはいないだろうか……というのが,件の論文の主旨であると感じられる。
しかし,氏の指摘をすべて受け入れたとしても,なおルール方式が有効なケースは限られるだろうと思う。多様性や創発性が遊びを構成する要素のひとつとして見出されつつあることは認められるものの,すべてのゲームがすべてのシーンでそれらを必要としているわけではない。制作者の「狙い」を意図通りに見せるには,決まったシチュエーションで決まった反応を起こすことが求められる場合もある。そのような要求に対しては,ルール方式はかえって手間となる危険性が考えられる。そこで必要とされているのは,まさに文字通りスクリプト(脚本)の記述を行う手段であるということだ。
2005-02-17
もうひとつ, Reynold 氏のリンク集から辿って読んでみた論文がある。 Nicolas Courty 氏の "FastCrowd" だ。
http://home.tele2.fr/ncourty/fastCrowd.htm
この論文では, GPU を利用して群集シミュレーションを高速に処理する手法について触れられている。
ここで扱われている群集シミュレーションの基となっているのは, Dirk Helbing 氏の考案した群集モデルだ。参考文献として Nature 誌に掲載された論文 "Simulating dynamical features of escape panic" が挙げられている。ちなみに,この論文は Helbing 氏のサイトから入手することができる。
Helbing のモデルでは,群集をベクトル場の中に漂う粒子群として扱うことができる。このベクトル場は,目標の方向を与えるベクトル,個体同士の反発力のベクトル,周囲の環境(障害物)から受ける反発力のベクトル,以上計3つから構成されている。これらのベクトルを足し合わせたものが個体の加速度として用いられる。そして,このベクトル場の分布をテクスチャ画像(ルックアップテーブル)に変換してしまえば,それぞれの個体の運動を GPU によって高速に処理することが可能になるというわけだ。
なお,それぞれの個体の運動方程式はリープフロッグ法 (Verlet leapfrog scheme) によって解かれる。この辺りは,粒子の運動を扱う場合にはお馴染みの手法かもしれない。
http://grape.astron.s.u-tokyo.ac.jp/~makino/kougi/keisan_ten...
問題となるのは,ベクトル場の分布をテクスチャ画像に変換する際の方式だ。狭い範囲であれば十分な解像度で画像化することが可能であるものの,広い範囲を扱うとなると,十分な解像度を得られないか,あるいは解像度が高過ぎて処理が重くなってしまうかのどちらかだ。それらに加えて,3次元の情報を扱うことが難しいという問題点もある。
また,論文では結果として CPU を用いた方式との比較が行われているものの,実は GPU を用いた場合もそれほど速くなっていないという結果が明らかにされている。これを Courty 氏はバスの帯域幅によって生じる制限であると指摘しているものの,実際には,よほど多くの個体が密集していない限り CPU と GPU の間に大きな差が生じることはないだろうと思う。
このような類の群集シミュレーションは,並列処理に適していることから,今後のハードウェアの流行からもたらされる恩恵をいち早く被ることになるのではないかと予想している。特に,ここで用いられている Helbing のモデルなどは,個体間の相互干渉をベクトル場という間接的な関係として扱うことができるため,並列化に適していると考えることができる。
個人的に今後調べてみたいと考えているのは,もう少し高度な相互干渉を持つシステムを,並列化に適したモデルで表現する手法だ。 Helbing のモデルは基本的に「何も考えていない群集」を扱ったものであるため,単純な相互干渉で済ますことができているものの,これを「個々に意思の感じられる群集」に変えていくには,もう少し複雑な相互干渉を扱う必要があると考えられる。しかし,相互干渉が複雑になればなるほど,他方で並列化は難しくなるというジレンマが存在するわけだ。
2005-02-21
次に読んでみたのは,カーネギーメロン大学は Jared Go 氏らの "Autonomous Behaviors for Interactive Vehicle Animations" だった。
http://gamedev.cs.cmu.edu/vehicle_planning/paper.htm
これは, Craig Reynolds 氏の "Steering Behaviors" の改良版にあたるものだ。
http://www.red3d.com/cwr/steer/
件の論文において Jared 氏らは, Reynolds 氏の Steering Behavior の欠点として,複数の挙動 (behavior) の合成が難しいという点と,評価範囲が局所的であるがゆえに制御が難しいという点(例えば,密集した障害物の中を車で高速に走り抜けるなどというのは非常に難しい),等を挙げている。
氏らは,これらの弱点を補うために,特定の経路に関して評価を行う方法を導入している。現在地点から辿りうる軌道の組み合わせを導出し,それらの軌道を経路として評価を行い,その中から最も良い評価を得たものを結果として用いる……というような仕組みであるようだ。
このように,概要だけ見てみると,それなりに面白そうな手法ではあるのだけれど,実際に読み進めてみると,問題に対してあまりにも正直な対処を行っている観があり,途端に興味が失せてしまった。特に,軌道の導出を前計算によるデータ化で対処してしまっている部分などは,力技であるという感じが否めない。完全に動的な環境に対しても適用することができるという点や,汎用性の高い挙動を柔軟に組み合わせることができるという点などは,それなりに大きな利点として考えられるものの,それを実現するのに要されるコストが,それらの利点に見合うものであるとは感じられないというのが率直な感想だった。
Reynolds 氏の Steering Behavior は,ウェブ上で動いているアプレットを眺める限りでは,とても上手く動くアルゴリズムのように見えるのだけれど,実際にキャラクターをこれらのアルゴリズムによって動かしてみると,何とも言えない違和感を覚えることになるだろうと思う。時間・空間の両方に関して局所的な評価しか行わないために,環境の変化によって細かく動きがブレてしまい,どうしても「ロボットくさい動き」になってしまうという傾向がある。
例えば, "Obstacle Avoidance" のページなどを見てみると,上手い具合に障害物を避けることができているように見えるものの,よく動きを見てみれば,頻繁に進行方向が左右していることが分かるだろうと思う。このようなブレが,微妙な不自然さを生み出すことになる。
http://www.red3d.com/cwr/steer/Obstacle.html
このような不自然さを防ぐには,評価の局所性を低める必要がある。 Jared 氏らの手法はそれを実現したものであるとも考えられるものの,あまりにも真っ当な取り組み方をしており,コスト対効果が微妙なものになってしまっている。実際には,障害物の多くは静的であることを利用して,効率よく滑らかな動きを作り出すことが可能であるはずだ。そのような合理的な手段が用いられない場合 ― 例えば環境が完全に動的である場合など ― は, Jared 氏らの手法のような解決法が役立つことになるのかもしれない。
2005-02-22
自分がよく読むエッセイ系のサイトの中に,特に欠かさずチェックしているふたつのサイトがある。ひとつは Joel Spolsky 氏の "Joel on Software" であり,もうひとつは "Mr Ed" 氏の "Hacknot" だ。
http://www.joelonsoftware.com/
Joel Spolsky 氏は,極めて分かりやすい明快な物言いが魅力のエッセイストだ。多くの人が同意できる当たり前のことを当たり前に言うことができ,かつそこに豊富な経験や鋭い洞察からくる説得力を加えることができている。氏の思想は典型的なソフトウェア技術者のそれに忠実に沿っており,多くの技術者(特に実利志向の技術者など)は,氏の言説を聞くことで自分の思想が裏打ちされる気分を味わうのではないかと思う。そこが氏の人気の理由であると考えることもできる。
それに対して, Hacknot の Mr Ed 氏は,典型的な批評家だ。氏はソフトウェア産業に蔓延る流行を冷ややかな批評眼で見つめ,その熱気の裏に隠された愚かさを的確にあげつらう。氏にとって批判の対象は日常的に存在している。XP,アジャイル,ペアプログラミング,等々……。最初はどんなに優れていたアイデアも,多数の人がそれに群がるうちに本質がぼやかされ,次第に方法論は欺瞞の道具と化してしまう。氏はそのような状況に対峙し,最も理性的な方法で反駁を繰り返す。氏の文体が滑稽なまでに理性的であり,かつ批評に徹しているのは,氏の持つユーモアの一面であると共に,批評家としての自らの立場を明確に示す意図があるのではないかと思う。
先日投じられた新たなエッセイは,またいつもの調子が光るネタだった。 "Wikiphilia - The New Illness" と題して, Wiki とそのコミュニティを真っ向から批判している。
http://www.hacknot.info/hacknot/action/showEntry?eid=71
少し皮肉っぽくなっているきらいはあるものの,大方の指摘は的確であると感じられる。 Wiki というシステムそのものに対する批評と言うよりかは, Wiki コミュニティに対する批判の方が比重が重くなっている。 Wiki を万能であると信じ込んでいる人々や,その万能性をうそぶく人々が,ここでの批判の対象だ。
基本的に Wiki は極端なコンセプトに基づいたシステムであり,決して万能なコラボレーションツールではない。この点は多くの人々の同意が得られるところであると思う。したがって,その特徴を良く理解して運用することが重要であると考えられる。しかし Wiki コミュニティの人々は,その適応性を拡大的に解釈してしまったり,あるいは,誤った思想によって問題を覆い隠してしまっている節があると氏は批判する。そのような懐疑的な視点の欠如を "Wikiphilia" ― 「ウィキ病」と呼び揶揄しているというわけだ。
2005-02-24
Mr Ed 氏は,件の記事において Wikipedia に関しても言及している。もちろん,それも批判的な内容だ。
氏は,参考文献として Larry Sanger 氏の Kuro5hin への投稿記事 "Why Wikipedia Must Jettison Its Anti-Elitism" を挙げている。
http://www.kuro5hin.org/story/2004/12/30/142458/25
Larry Sanger 氏は, Jimmy Wales 氏と共に Wikipedia を創立した主要メンバーの一人として知られる人物だ。現在は同プロジェクトから手を引き,オハイオ州大において哲学コースの講師として勤めている。
http://en.wikipedia.org/wiki/Larry_Sanger
件の投稿において氏は, Wikipedia プロジェクトが直面している問題に関して言及している。同プロジェクトの内情をほとんど知らない自分にとっては,非常に参考になる内容だった。
Sanger 氏の指摘する一つ目の問題点は, Wikipedia は未だ信頼するに足る存在であると公には認められていないという事実だ。現時点において Wikipedia の内容が正確であるかどうかは,ここでは問題とされていない。ただ, Wikipedia が更なる成長を遂げるには,その内容が信頼に足るものであると公に認知される必要がある。さもなくば,学術的な価値を持つことは到底できない。学術方面からの支援を得るには,そうした価値を持つことが必要であるということだ。
しかしながら, Wikipedia は自身の信頼性を高めるための機構を備えようとしていない。古典的なレビューの類は存在せず,専門知識の有る無しに係わらず誰でも記事を編集することができてしまう。たとえ専門家の協力を得る幸運を引き当てたとしても,その成果を凡庸な執筆者が書き直してしまえば,たちまちアマチュア的な内容の記事へと退化してしまう。そのような環境が是正されない限りは, Wikipedia の信頼性に関する問題が改善されることは難しいだろうと Sanger 氏は指摘する。
二つ目の問題点は,プロジェクトに参加している人間の問題だ。 Sanger 氏は,いわゆる "troll" と呼ばれる類の人々が,このコミュニティには存在すると述べている。 "troll" とは,いわゆる「荒らし」に代表されるような,議論の質を落とすような振る舞いを行う人々のことだ。 Wikipedia の編集に参加するには,単に記事を執筆する労力を払うだけではなく,そのような人々の攻撃から自分を守ることにも労力を費やさねばならない。そのような労力の浪費が Wikipedia の成長を阻害していることは想像に難くないものの,それを回避するための機構もまた Wikipedia には備わっていない。極端にオープンな Wiki のコンセプトや,後に述べられているような思想の存在が,この問題の改善を難しくしている。
最後に挙げられている問題点は, Wikipedia に備わっている "anti-elitism" ― 「反エリート主義」の思想の問題だ。 Wikipedia はエリート ― つまり「選り抜きの集団」の存在を否定しようとしている。しかしその思想は,専門家の存在を重視しない風潮を生み出し,無思慮なまでに徹底して平等であることを望んでしまっている。そのような思想の下では,前述のような問題を根本から改善することは非常に難しいと考えられる。
この問題を更に深刻にしているのは,創始者の Jimmy Wales 氏を始めとした主要な運営者達が「反エリート主義」を固持しているという点にある。 Sanger 氏はそのような状況にありながらも,識者と「非」識者が共に貢献することのできる道を模索し続けてきた。しかし,その試みも結局は失敗に終わってしまったということだ。
2005-02-28
Matthew Baldwin 氏の主宰するサイト "tradetricks.org" は,様々な職業の "Tricks of the Trade" ― 「仕事の知恵」を集めたサイトだ。
ことの始まりは, Baldwin 氏が自身のブログサイト "defective yeti" に投稿した何気ない内容の記事にある。
http://www.defectiveyeti.com/archives/000952.html
氏は記事の中で,とあるバースデイ・クラウン(ピエロ)がインタビュー中に語った「仕事の知恵」を紹介している。ここから,氏が寄稿を行っているオンラインマガジンサイト "The Morning News" に,様々な職業の「仕事の知恵」を紹介する記事を書いてみたいという話になり,読者にネタの提供を募ったところ,予想以上の反響が寄せられたため,このネタだけで別途にサイトを立ち上げてみようということになった……というのが顛末であるようだ。
http://www.themorningnews.org/archives/how_to/tricks_of_the_...
読者から寄せられた「仕事の知恵」とは……たとえばこんな感じだ。
他にも様々な知恵が紹介されており面白い。個人的なお気に入りは,ピアノのセールスマンが紹介する「仕事の知恵」だ。
人間の感情を揺さぶるのに,記憶と音の関連性を利用するのは,なかなか面白い手法であると思う。特に自分はこういうのに弱いかもしれない。
こうして「知恵」の数々を見てみると,その多くが人(客)の操り方に関連していることに気付く。恐らくは,どんなに特殊な職業でも人との接し方には一般性があり,話題として共感が得られやすいということなのだろうと思う。かく言う自分も些細な知恵をいくつか持っているつもりではあるけれど,ネタにするほど面白いものや,まとまったものではないので,敢えて話題には出さないでおこうと思う……。