Red Dead Redemption – 争乱の中

Red Dead Redemptionは、1911年ころの北米西部(とメキシコ)が舞台となっています。米国は比較的平和なものですが、メキシコは治安が極めて悪くなっています。これは、1910年から始まったメキシコ革命が原因となっているようです。国を二分する激しい内戦だったようで、治安が悪くなっているのも当然です。

メキシコでのメインストーリーは、政府側の高官と、市民側の革命軍と、両方から依頼を受けることによって進んでいきます。そんな中途半端なスタンスで、後ろから刺されるんじゃないかと心配になってしまいますが、外国人(アメリカ人)で、なおかつ、アメリカから逃げてきた賞金首を追っているということで、傭兵のように思われているのかもしれませんね。

それにしても、メキシコで受ける政府側のミッションは、ひどいものばかりです。とあるミッションでは、軍の手伝いをすることで、情報を提供しようとの取り引きを持ちかけられます(おまえは交渉できる立場にないと分かっているのかと怒られますが…)。現場に向かうと、そこは革命軍の砦で、最初の達成目標が「皆殺しにせよ」。ええええ、ちょっとひどすぎるんじゃない!? と思いながらも、銃撃戦が始まります。撃たないとやられるので(前線に出すぎて何度かやられました…)、こちらも応戦して、革命軍を殲滅します。次に「火炎ビンを渡すから、これで家を焼き尽くせ」と言われます。皆殺しにしたうえ、焼き討ちとは…。気は進みませんが、やらないと話が進まないので、火炎ビンを家に投げ込みます。

ヒャッハー!!

…はっ、いかんいかん。さらに別の場所(西にある波止場)へ行くと、ここでも政府軍と革命軍の銃撃戦が繰り広げられていました。これはメインストーリーと関係ない、サイドストーリー的なミッションなのですが、内容は似た感じです。革命軍の根城を焼き払うという達成目標で、なんでメキシコはこんなに焼き払うのが好きなのかと不思議になります。

ヒャッハー!!

Red Dead Redemption – メキシコへ

サクサクとミッションをこなし、舞台はアメリカからメキシコへと変わりました。驚きなのは、メキシコ人の字幕がスペイン語になっていて、ぜんぜん読めないこと!w 分かる人は英語を話し始めて、ちゃんと字幕もつくのですが。確かに、外国人の会話なんて分からないですからね。なんてリアルなんだ! と思っていたら、とある町に入って進行し始めたミッションで、マーストンさんがスペイン語を話し始めました…。なんだ、しゃべれるのかw なら、字幕を翻訳してくれてもいいじゃん!w

このゲーム、自分の馬で移動するだけではなく、駅馬車という移動手段もあります。この時代のタクシーやバスのようなもので、お金を支払って行き先を告げると、そこまで連れていってくれるというサービスです。途中をスキップして目的地にワープすることもできるのですが、スキップせずに、道中の景色を楽しむこともできます。風景の作り込みが素晴らしいので、たまには鑑賞しようということで、マクファーレン牧場からベネディクト・ポイントまで駅馬車に乗ってみました。方向キーやら、周囲の状況やらを確認しなくていいので、のんびりと風景を楽しむことができます。馬車は、よく通る峠にさしかかり…あれ、止まった。まだ目的地じゃないのに。よく見ると、道の脇にある岩に馬車が突っ込んでいます。引っかかっているのに、後退もせず、強行突破を試みています。面白そうなので、放っておくと…あれ、馬の半分が馬車から外れて、どこかに行ってしまいました…。

本来は四頭の馬で馬車を引くはずなのですが、二頭しかいません…。

最終的には、ワープして脱しました。ゲーム進行には問題がないので、放っておかれたバグなのかもしれません。なかなか面白いので、これはこれでアリかなあ、という気も。

Red Dead Redemption – 水が恐い

ランダムでイベントが起こるとは言っても、その数には限界があります。だんだんと「このイベント、前にも見たことがあるなあ。」というものが増えてきました。ただ、ストーリーを進めて違う地方へ行けるようになると発生するイベントもまた変わってくるようなので、ある程度うろつき回ったら、メインストーリーを進めていってしまうのがいいかもしれませんね。

メインストーリーは、中心的なNPCから依頼を受けてこなしていく、というスタイルになっており、その内容も多彩です。保安官と一緒にギャングとドンパチやらかしたかと思えば、牧場主の娘を手伝って嵐の中で牛を追ったり…。ゲームのチュートリアルも兼ねていて、ゲーム中の新しい要素が次々と出てくるようにもなっています。あまり破綻せずに進んでいくので、なかなかよくできているんじゃないかなあ、と思います。

馬を走らせていると、湖がありました。夕日が水面に輝き、とても美しい風景です。ふと思い立って、馬を下り、湖に入っていってみました。だんだんと深いところに入っていきます。足下、腰、胸、肩…だんだんと水中に入っていき、そして顔…というところで、いきなりDEAD! ジョンは、水に触れると即死するようです!w ビックリしました。水の中にも入れるけれど、泳ぐことなどできず、即死するようになっているようです。これは気を付けなければ…。

スクリーンショットを上げたいのですが、取り込むことができないんですよねえ。そのためだけに、HDMI対応のレコーダーを買ったりするのはばからしいし…。

Red Dead Redemption – 事後強盗殺人の被害者に

先日、林の中でクーガーらしきネコ科の動物に食い殺されるかと恐怖を味わいましたが、アメリカの荒野にはそんな恐ろしい動物ばかりではなく、ウサギやシカなど、リスクなくハンティングできる動物もたくさんいます。チャレンジという項目の中には、特定の動物をハンティングしていき、ランクを上げて「西部の伝説」を成し遂げるというものがあります。最初は鳥、次はウサギ、その次はコヨーテ…。だんだんとハンティングしにくい動物がターゲットになっていきます。ウサギは、狩るのは楽なんですが、見つけるのがとにかく大変でした…。どこかの峠を走っていたらウサギの集団が横切っていったので、そういうときに数を稼ぐのがいいかもしれません。ちなみに、ハンティングした動物は毛皮をはぐことができ、ときには肉や心臓など素材を入手することができます。これらは雑貨屋などで売ることができ、なかなか良い小銭稼ぎになったりします。

馬を走らせていたら、誰かの話し声が聞こえてきました。なにやら、金庫を警備していなかっただとか、誰かが叱責されているようです。近づいてみると、アルマジロという町の銀行員で、ギャングに金庫を乗せた馬車が奪われてしまったそうです。そのままギャングの一味と銃撃戦になり、なんとか倒すと、今度は馬車を町まで運んでくれないかと頼まれます。仕方ないなあ、運んでやるか、と馬車を走らせると、しばらく行ったところで数人の馬に乗ったギャングが襲撃してきました…。お約束すぎる…。これも退けて、無事に町まで到着すると、40ドル近くの御駄賃をくれました。うほほ、なかなかいい商売だ。

別のところを走っていたら、縮小マップに死体のマーク。さっそく馬を下りて近寄り、死体の懐を探っていると(ぉぃ)、執行官から囚人が逃げたので捕まえてくれと依頼されました。この死体、執行官の部下らしいです。執行官には目もくれず、馬から下りて懐探りに直行してたんですが、そこのところは気にならない様子w 囚人はマップに赤い丸で表示されるので、見つけるのは簡単です。また、武器を持っていないので、撃ち殺すも投げ縄で捕まえて縛り上げるも自由自在。足を撃って動きを止めようとして、不本意に撃ち殺してしまいましたが…。一人は、うまく投げ縄で捕まえられたので、縛り上げて馬に乗せ(その間、ものすごい勢いで叫んでます)、執行官のもとにお届け。「こいつら前科がたくさんあったから、始末してくれてよかったよ!」と物騒なことを言ってくれました。少ないながらも報酬をもらい、さて先を急ぐかと馬に乗ると、なんと、この執行官、せっかく捕まえた囚人をその場で射殺!w ええええ、ここで死刑執行するのかよ!?w

アルマジロの町に戻ると、財布を盗られたと騒ぐ住民が出てきました。向こうの方には、走っていく男の姿が。これは捕まえるしかない! ということで、馬を呼んで、すぐに追跡開始。さすがに馬の足にはかなわず、すぐに追いつきました。拳銃を抜き、足に向かってまずは一発。倒れ込んだところで、投げ縄を…あれ、こいつ拳銃持ってる、なんか撃ってきたんですけど。これは、撃ち返さないとやられ、あ、なんか蜂の巣になってる、これはまずい…あ、死んだ。返り討ちに遭ってしまいました…。こういう場合は、馬上から投げ縄をかけるか、一発で撃ち殺すか、どっちかを選ぶのがよさそうですね。

お約束的な、一定のパターンのイベントですが、いつどこで起こるかが分からないので、それなりに楽しめます。

Red Dead Redemption – 荒野に散る

とある制約から部分的に解放されたので、前々から気になっていた、Red Dead Redemptionを購入。

PS3しか持っていないので、PS3版です。噂によれば、Xbox360版よりもグラフィックの質が悪いとかなんとか…。ベヨネッタもそうでしたが。プレイしてみると、言われれば「たしかに劣化しているのかもねえ」と思うのですが、遊んでいる最中はさほど気になりません。ディティールが残念と感じるところもありますけれど、おおむね、問題になるほどではないと思います。

ゲームは、何の説明もなく始まります。主人公であるジョン・マーストンは、列車に乗せられ、アメリカの荒野にある、とある砦を目指します。そこでビル・ウィリアムソンという(頭の悪そうな)人物と話をするのですが、撃たれた!w そのまま倒れて、荒野に置き去り…。え、もう終わり? ポカーンとしていると、馬車がやってきて、マーストンを回収。どうやら助けてくれたようです。

なぜマーストンはこの土地にやってきたのか、そもそもマーストンはどんな人物なのか、なんの説明もなく始まり、進みます。これにはビックリ。ちょっと話を進めると、助けてくれた牧場主ボニーさんに一部を打ち明けるのですが、これほど情報なく始まるというのには驚きました。しかし、これもプレイヤーを引き込むための、小説のような表現方法なのかもしれません。

このゲーム、とにかく自由です。ミッションはあるのですが、すぐにやらなければならない性質のものではなく、好きなときに進められるようになっています。ストーリー上、すぐに特定の場所に行かなければならないように思えても、まったく無視して、隣町に行くとか、そういうことができてしまいます。

街中で銃を構えることができ、一般人に向けると…強盗ができますw やりすぎると保安官が来て捕まるらしいのですが…まだそこまではやってません。店の主人を撃ち殺すこともできるそうです。フリーダムすぎるw

とにかく広い荒野を、愛馬にまたがって駆け抜けていく感覚は、かなり「くる」ものがあります。荒野の再現度も高く、どこぞのゲームのようにコピペマップでお茶を濁すようなことはなく、丘やら川やら湖やら、いろいろな地形が現実的な大きさで展開されます。自然にあふれており、空には鳥が飛び(撃ち落とせます)、草原にはウサギが走り(撃ち殺せます)、荒野にはオオカミが走り(撃ち殺せます)、林には謎の肉食獣がいます(食い殺されます)。野草を見つけて、採取しようと馬を降りたら、いきなり謎の獣に襲いかかられて瀕死状態になったのには焦りました。逃げようと馬に乗ったら、馬が殺されて、銃で撃っても避けられて、仕方がないから走って離脱。何の予告もなく後ろから忍び寄られていたのにはまいった。

町を出て、パカパカと歩いていると、前の方で「おい、助けてくれよ」という一団が。これは誰かに襲われているに違いない! と、近づいていったら、縮小マップ(レーダーにもなる)に赤い丸(敵を表す)が大量に出現。なに、なに、何が起こっているの!? と思っていたら、集中砲火を浴びて即死させられました。どうやら、困った人を装ったギャングだったようです…。

とまあ、こんな感じで、限りなくフリーダムな西部劇の世界を冒険できます。これは楽しい。適当に走り回るだけでも、けっこう楽しめます。しばらく、ニュー・オースティンの荒野を駆け回ります。

Spiderの基本構造 (1)

作成中の知識整理用システムであるSpiderの構造について、書いていきたいと思います。

ドキュメント類はJavadocしかない状態なので、これがマニュアルに準じたものになればいいなあ、と思っています。たぶん、明日には、この目標を忘れているんでしょうけど。

Spiderシステムは次のモジュールから構成されます。

  • Spider : システムの中核
  • Network : 知識ネットワーク
  • Concept : 知識ネットワークを構成するオブジェクト
    • Knowledge : 文字列を表すオブジェクト
    • Link : オブジェクトとオブジェクトを関連づけるオブジェクト

情報は、多数のKnowledgeと、それらを結びつけるLinkによって構成されます。これはひとつのネットワークを形作り、それがNetworkに対応します。ネットワークを束ねるのがSpiderです。

Networkはひとつのデータベースに対応することが予定されています。つまり、Spiderは複数のデータベースに散らばった情報を統合するものでもあるのです(もちろん単独のNetwork、すなわちデータベースしか使わないこともできます)。

なぜこのような構造になっているのかを説明します。

まず、人の知識というものが、どのように表現できるか、というところが出発点です。ただ情報が散在しているだけでしょうか。それとも、階層構造になっているのでしょうか。どちらでもありません。たしかに、情報は断片として記憶されています。しかし、それぞれの情報は単独で意味をなすものではなく、他の情報と関連して意味をなします(例えば、「蜘蛛は縦糸を歩く」という知識はそれ単体で有用なものではなく「蜘蛛の横糸は粘着性があり縦糸にはない」という知識と関連することで意味の通るものとなる)。だからといって、あらゆる情報がなんらかの情報に包含されるという関係があるわけでもありません(仮にあるとすれば最も上にある概念は何になる?)。このような思考を経てたどり着いたのが、知識と知識が関連しあい、そこに上下関係などは必ずしも観念されないという、ネットワーク構造です。

Spiderは複数のNetworkを束ねるという役割を果たします。これによって、複数のNetworkをあたかも一つの大きなNetworkであるかのように扱うことができるようになります。しかし、べつに複数のNetworkを作らなくても、すべての要素をひとつのNetworkとして作り上げてしまえば済むようにも思われます。おそらく、そちらのほうが動作効率としてもいいでしょう。

Spiderが考えているのは、動的なNetworkと静的なNetworkの存在です。たとえば、学校で使う教科書を挙げてみます。教科書に書かれた内容は、すべての学生にとって同じものです。しかし、各人の教科書への書き込みや、細かな内容の取扱いは別々です。日本史が苦手な人は、日本の年表に「要チェック」のラベル付けをするでしょう。一方で、得意な人は「チェック不要」のラベル付けをするかもしれません。日本の年表は「静的なNetwork」、個々人の評価は「動的なNetwork」なのです。実際の運用では、教科書のデータを書き込み不可なデータベースに配置し、個々人のデータは読み書き可能なデータベースに配置することになると思われます。Spiderは、そのような事態に対応できるようにするため、複数のNetworkを束ねます。いまのところ、複雑な構造をサポートできるようにする必要性が感じられないので、フラットに束ねることしか考えていません。必要が出てくれば、さらに複雑な束ね方を検討することも考えられます。

Spiderに登場するモジュールは、これだけです。これらを複雑に組み合わせれば、難解な知識も表現できるものと期待しています。

知識整理アプリケーション

以前から、知識整理のためのアプリケーションの作成を進めています。

なかなか納得できるものを作り上げることができず、作っては壊してを繰り返していたのですが、ようやく納得できるものになろうとしています。まだデータベース部分しか作っておらず、エンジンは完成形に近づいているものの、タイヤやハンドルなど車の部分が出来上がっていないという状況なので、今後タイヤ部分などを作っていく最中に気に入らなくなってしまう可能性も残っているのですが。

明確なコンセプトは定めていないのですが、データベース部分については「なるべく制限を設けない」「シンプルなインターフェイス」という方針を採っています。ちなみに使用言語はJavaです。

データベース部分のコードネームは「Spider」。蜘蛛の網のような知識ネットワークの構築を目指して、このような名前を付けました。蜘蛛は興味深い生物で気に入っているという理由もあります。

現在作成中の実装はSQLiteをストレージとして使っているものですが、近い将来にはJavaDB(Derby)を使っていきたいと思っています。いつかは、Hibernateを使ってさまざまなデータベースに対応していきたいのですが…なかなか難しそうです。

MediaCoder

MediaCoder – more than a universal audio/video transcoder – MediaCoder official website:
http://www.mediacoderhq.com/

現在、動画や音声には多種多様なフォーマットが使用されています。なんでこんなにたくさん使われているのか、統一してくれないものかと思うのですが、以前から使われているフォーマットであったり、効率などを改善したフォーマットであったり、それぞれに存在する理由があるので仕方ありません。

しかし、たとえば携帯端末はこれらのうち特定のフォーマットにしか対応していない場合もあり、あるフォーマットから別のフォーマットに変換したい場合があります。そんなときに活躍するのが、上記の「MediaCoder」です。

動画と音声の代表的なフォーマットを網羅しており、相互に変換することができます。内部的には、オープンソースなどの自由に利用できるライブラリを多数搭載し、それらを組み合わせることで処理を実現しているようです。

細かい設定ができるので、使いこなすまで大変かもしれません。しかし、機能がとにかく豊富ですので、ほとんどのニーズを満たすことができると思います。

駐車場の価格競争

先日、駅前を歩いているとき、駐車場の看板が目にとまりました。「価格破壊!3時間100円!」というような内容だったのですが、あたりを見渡すと、付近にもいくつかの駐車場があり、そちらも同内容の価格になっていました。「そりゃ~、隣の駐車場が安かったら同じ価格にするもんなあ。」と思いながら歩いていると、駅に近いところの駐車場は3時間200円だったか、少し高めの料金設定になっていました。しかし、それでも駐車してあります。駅に近いところの方が、やや高くても、利便性をとって選ばれているんじゃないかと推測されます。値段と利便性のバランスにより、妥当性が消費者に認められたので、利用されているのです。「ああ、駐車場も価格競争しているじゃないか。」と、よく分からないけれど、感心しました。

しかし、ここで疑問が生じます。「駐車場市場はどうやって画定するんだろう?」

市場とは何か、というところから問題になるのですが、これを明快に説明している資料が見当たりません。とりあえず、モノやサービスが取引される場、と考えておきます。駐車場ビジネスは、自動車の駐車スペースを提供する代わりに駐車料を徴収するので、モノないしはサービスの取引ということができます。いちおう、駐車場市場というものは観念できるということになります。問題は、その地理的区分です。消費者が代替商品を見つけられないところに競争は生じませんから、商品の競合する範囲に市場が成立します。駐車場は、あればどこでもよいというものではなく、たとえば駅前であれば、駅の近くになければ意味がありません。そのため、「千葉県における駐車場市場」「東京都における駐車場市場」という広域な駐車場市場は観念できないということになります。じゃあ、駅前だけで切ればいいのか? それとも町内で、区内で区切ればいいのか? おそらく、一義的な方法はなく、法令に抵触する行為に応じて市場を画定しなければならないのでしょう。地理的な区分は絶対的なものではないので、市場ありき、ではなく、行為ありき、の考え方にならざるを得ません。

市場については棚上げとなったところで、次の疑問です。「仮にこの付近の駐車場業者が談合して価格を統一したら、不当な取引制限(ハードコア・カルテル)になるのか?」

とりあえず、行為要件(共同行為・相互拘束)は満たされるとしましょう。「C駅周辺の駐車場事業者10名(駅周辺すべての事業者)が、価格競争が激しくなっていること、地価が上昇していることから、駐車料金を一定にする合意をし、実施している。」とでもしておけばいいでしょう。問題は、効果要件です。これを考えるには、市場(一定の取引分野)を画定しなければなりません。駅周辺の駐車場という市場を画定すれば、そこでの価格競争が制限されており、値下げ等が期待できない状況になっているので、競争の実質的制限が生じているといえるでしょう。一部の事業者にとどまる場合は、効果要件を満たさないかもしれません。ただ、それらの一部事業者は駅に近いという有利な場所を確保しており、他の事業者に客が流出しないように極端な値下げをしているというような事情であれば、排除型私的独占に該当するかもしれません。もっとも、駐車場は有限のスペースしか提供できず、どんなに値下げしても他の事業者に客が流出することは防げないこと、それによって他の事業者を排除することが実際にできるのか、という問題もあります。

これに対して、駐車場は駅に向かう人だけ使うのではなく、その周辺の施設に行く人も使うのであり、「駅前の駐車場市場」という画定は誤っているという反論もあるでしょう。事実関係によっては、駅に向かうために駐車している人は実は少なくて、付近住民であったり、駅前の施設に向かう人が多かったりするのかもしれません(駅前の施設なら駅に向かうのと実際上変わりありませんが)。すると、さらに広域、あるいは場所を移した市場を観念しなければならず、そこでは競争の実質的制限は生じていないのかもしれません。

いろいろと考えてみましたが、だから何だと言われると、何でもありませんとしか言えません…(笑)。駐車場のように、地理的状況が強力に影響する事業に関しては、独占禁止法が適用しにくいのかなあ、と思います。だからといって、バリバリ談合してもオッケーですよ、というわけではないですが。しかし、実際には談合しにくいんじゃないかなあ。同じ価格にしても、競争を回避することはできなくて、近くて安い方を利用するだけなので、結局は談合している事業者のうち、弱い立場にある事業者が泣きを見るだけですからねえ。むしろ、取引妨害(不公正な取引方法)や、強要罪、業務妨害罪などの方が問題になりやすいような気がします。

…以上、長ったらしい独り言でした。

KeePass

KeePass Password Safe:

http://keepass.info

今回紹介する「KeePass」は、パスワードを管理するためのソフトウェアです。インターネット上の会員制サイトや、電子メールのアカウントなど、個人が管理しなければならないユーザー名とパスワードは増加の一方です。そのため、同じパスワードを使いたくなるのですが、そうすると、ひとつのパスワードが突破されてしまうと全てのアカウントについてパスワードが突破されることになってしまいます。かといって、それぞれのアカウントに異なるパスワードを設定すると、忘れてしまってログインできなくなることもあります。そこで、これらの情報を安全に管理するためのソフトウェアというものにニーズが生じるわけです。

オープンソースで開発されているため、パスワードなど盗み取るコードが混入していないことを自分で確認できる(もちろん前提知識は必要ですが…)という点が一番の特徴です(だと思っています)。

使い勝手もよく、ひとつの項目に追加的な情報を多数書き込めたり、全体検索機能、メモリ内暗号化によるセキュリティの強化など、さまざまな機能を備えています。また、Firefoxのアドオン「KeeFox」を使うことで、Firefoxとの連携をすることもできます。