プチメタ3.0

刺激を受けた物事に対する感想や考察、自己成長や資産運用、ゲーム作りに関することなど。


「コーダ あいのうた」のオリジナル版の歌が素晴らしかった


コーダ あいのうた(字幕版)


さまざまな賞に輝いた「コーダ あいのうた」は
エール!」というフランス映画をリメイクしたもので、
さらに「マイ・ボイス:こころの歌」というイタリア映画版もある。


3作とも筋書きはほとんど同じではあるものの
登場人物のキャラクターや作品の雰囲気には結構な違いがあり、
映画として一番オススメできるのは「コーダ あいのうた」なのだが、
最後の場面で主人公が歌う歌に関しては「エール!」が一番だった。




アメリカ版は「Both Sides, Now(青春の光と影)」という曲(和訳)で、



フランス版は「Je vole(ジュ・ヴォル)」という曲(和訳)なのだが、
その歌詞を見ると、アメリカ版の方では
家族が自分の未来を阻む存在だと打ち明けているように聞こえるが、
フランス版だとこれまで家族を支えてきた主人公が
いよいよ自立するという決意を歌っている印象を受ける。


聴覚障害を持つ家族の通訳係として
苦労してきた主人公を題材にしてはいるものの、
映画のクライマックスで聞く歌としては
フランス版の方が遥かに後味がよく、
主人公の心情と一番ピッタリ合っているように思う。


一番有名な「コーダ あいのうた」しか観ていない人は
試しに「エール!」の方も観て欲しい。

A*(エースター)アルゴリズムをごくシンプルに解説する


大半のゲームでは敵キャラが登場するが、
主人公に迫ってくるときに
障害物に引っかかってしまうと不細工なので
適切なルートを判断させる処理が必要になる。


そういったルート探索処理について調べるとまず挙がるのが
「A*(エースター)」と呼ばれるアルゴリズムだ。


かなり古くから存在する手法とはいえ
いまだに有益なのでぜひ理解しておきたいが、
普通に調べると「ダイクストラ」とか「ヒューリスティクス」とか
「f(n)=g(n)+h(n)」のような難しそうな言葉が出てきて挫折しやすい。


そこで今回は専門的・数学的な言葉は一切使わず、
単純に理屈だけが理解できる解説記事を書いてみた。




今回は簡略化のため、マップをマス目で区切り、
キャラクターは前後左右の4方向移動とする。




目的地に向かって単純に接近するような処理だと
障害物を回り込むことができないので
引っかかったまま動けない状態になってしまうが、
A*アルゴリズムならこれを解決することができる。




まずキャラクターの周辺にあるセルを調べる。
調査途中のセルを「オープンセル」と呼ぶ。




オープンセルには「現在地からそのセルまでの距離(=1)」と
「ゴールからそのセルまでの距離(=8)」の合計(=9)を格納する。
これがそのセルを経由するときのコストとなる。


このコスト計算には精度の異なるいろいろな方法があるが、
今回はA*アルゴリズムの理解を優先するため、
縦方向と横方向の移動量を単純に合計したものとする。
(そのぐらい簡易なやり方でも割とちゃんと動く)




同時に「どのセルからここに来たか」という親セルの情報も記録する。
今回はキャラクターが立っている場所が親セルだ。




キャラクターが隣接しているセルについて
それぞれ同様の処理をしていくとこのようになる。
この4つはまだ調査途中なのでオープンセルのまま。




 =オープンセル =クローズセル


次に、すべてのオープンセルの中から
一番コストの低いものを「クローズセル」に切り替え、
そこを基準に隣接したセルをオープンセルに変えて
「コスト計算と親セル情報の記録」を行う。


ただし、たとえ隣接していても
オープンセルやクローズセルや障害物セルなら除外し、
まだチェックしたことがないセルに限定して作業を行う。




 =オープンセル =クローズセル


隣接したセルをすべて調べ終わったら
そのクローズセルは作業終了となる。
ぞして再びすべてのオープンセルの中から
一番コストの低いものを基準に、同じ処理を繰り返す。




 =オープンセル =クローズセル


そうなると次はこのセルだが、隣接しているものが
オープンセルとクローズセルと障害物セルばかりなので
何も作業せずクローズセルに切り替わるだけで終了。




 =オープンセル =クローズセル


次はこのセルなので、未着手のセル(白色)に限定して
これまで同様の作業を行う。




 =オープンセル =クローズセル


そうやって作業を繰り返していると
「隣接したセルがゴール」となる場面が来る。




コスト計算した各セルには親セルの情報が格納されているので
どのセルからゴールに到達したのか明らかだし、
さらにその前のセルがどこだったかもわかる。
それらが「ルートとして確定したセル」となる。




つまり、ゴール側から逆に親セルをたどっていけば
キャラクターのいる場所までのルートが確定するのだ。


この考え方がA*アルゴリズムの基本で、
あとはコスト計算の精度アップや
処理負荷の軽減などを工夫する程度だ。




3Dゲームの場合はマス目状とは違う滑らかな地形になるが、
チェックポイントのようなものを定期的に置いて
行き来できるポイント間をつなぐようにすれば
理屈的には同じ考え方で作ることができる。


これを手作業で設定するのが大変なら、
マップ全体に一定間隔でポイントを配置したあと
障害物と重なっている部分を除去する処理を作って
ゲーム開始前にあらかじめ実行しておくようにすればいい。


味方キャラでも敵キャラでも
障害物をうまく避けながら移動すると非常に賢く見えるし、
学生作品に取り入れるとアピール材料にもなるので
ぜひ実装にチャレンジしてみて欲しい。



mclover.hateblo.jp

壁に顔写真と資料を貼ってヒモで結ぶやつ


これ、なんなの?


難事件を捜査したり敵を追う人物が
壁に写真や資料を貼ってヒモで結んでいるようなシーンを
洋画や海外ドラマでよく見かけるが、
あれは一体何の役に立つのだろう。


資料の一覧性を高めたいのはまだわかるが、問題はヒモだ。
どういうルールで結んで、あれから何を読み取っているんだ。

【謎解き感想】うめだ茶屋町謎めぐり

植物公園のガイドブックを模した謎解きから数日後、
大阪の梅田で開催されていた周遊謎解きに挑戦した。


リアル脱出ゲーム 感想その176
うめだ茶屋町謎めぐり



www.tokitokievent.com


これは大阪の梅田周辺を舞台にした無料の企画で、
NU茶屋町阪急かっぱ横丁D.D.HOUSEの3ヶ所を周遊し、
それぞれ独立した謎解きをプレイするというもの。




キットとなる冊子は各エリアに置かれているので
それを手に取ってLINEアカウントを登録したらすぐプレイできる。
ただし、答えを書き込むための筆記用具は持参する必要がある。


各エピソードの最初に表示されるプロローグが
拡大できないのに文字が小さくて読みづらいのは難点だが、
前置きはあまり長くなく、すぐに地図が表示されて
手がかりを探しに行けるのでテンポは悪くない。


難易度は低めなので謎解きに慣れた人なら
各問題はすぐに答えがわかるだろうが、
全部の小謎を解き終わったあとの問題は割と凝っていて
適度に悩まされる上に爽快感が得られる造りになっている。




結果、NU茶屋町編は40分でクリア。
各フロアを周りつつ道路を挟んだ2つのビルを巡る必要があるので
移動に一番手間がかかるエピソードだが、
全体的に手が込んでいて解きごたえがあった。




阪急かっぱ横丁編は30分でクリア。
最後の答えを導くところでは一番悩まされたが、
解き方に気づいたときの納得度も高くていい構成だった。
ただし、エリア内を行き来するときには車の往来に注意。




D.D.HOUSE編は20分でクリア。
3つのエピソードの中では一番簡単なので、
初心者はまずここからチャレンジする方がいい。




3つ全部をクリアすると最終問題が提示され、
これも10分ほどで解くことができるが、
最後を締めくくる仕掛けが用意されていて
スッキリとした達成感が味わえて満足した。


完全クリアまで移動時間も含めて2時間弱といったところだが、
誰にでも挑戦しやすい難易度でありながら
たっぷりのボリュームと面白い仕掛けもあって
まさに周遊謎解きのお手本のような造り。
これで無料というのは非常に贅沢。


3月下旬からゴールデンウィーク明けまでという
短期間開催なのが惜しい仕上がりで、
謎解き未経験な人にもぜひプレイして欲しい完成度だった。



無料でプレイできるオンライン謎解き公開中
mclover.hateblo.jp