まくろぐ
更新: / 作成:
/p/jb6s7k4/img-title.jpg
図: ファンタシースター(Nintend Switch版)

Nintendo Switch の SEGA AGES で初代『ファンタシースター』が売ってたので懐かしすぎて買ってみました。 メガドライブよりも前の、セガ・マークIII/マスターシステム というゲーム機で発売されたタイトルです(メガドライブで復刻版も出たけど)。 幼い頃に兄がやっていたのを横で見ていた記憶があります。 メガドライブにアダプターを指してマークIIIのカートリッジを差して遊んでいたのを覚えています。 3D ダンジョンや敵がぬるぬる動いているのがすごいなぁと思っていました。

この Switch バージョンには、さくさく進める AGES モード というのついていて、敵を倒した時に手に入るメセタ(お金)や経験値が増えるようになっています。 AGES モードというのは「おじさん世代モード」ってことでしょうか。 サクサク進めたいのはどちらかというと Z 世代な気もするけど。

ストーリーはとてもシンプルで、兄を殺されてしまったアリサが、兄の仇を討つために諸悪の根源ラシークを倒そうというもの。 動機は世界を救うとかではなくて、あくまで 個人的な復讐 です。 シンプルでいいですね(いいのか)。

/p/jb6s7k4/img-myau.jpg
図: かわいいミャウ(いきなり喋る猫)

最初の仲間のミャウとタイロンはすぐに仲間になります。 猫のミャウは「ビンの蓋をあけられない」というけれど、魔法や武器での攻撃をバリバリこなし、人間の言葉まで話せるあんたなら ビンの蓋くらい開けられるでしょう、とはツッコミますまい。 あくまでかわいい猫です。

タイロンはメデューサに石にされてしまったらしく、それをアリサとミャウが助けるのですが、石にされた理由というのがこちら。

/p/jb6s7k4/img-tylon.jpg
図: アリサ「なぜ無謀にもメデューサに立ち向かったの?」
/p/jb6s7k4/img-tylon2.jpg
図: タイロン「斧が欲しくって...」

しょうもない…。 しかも「逃げられちまった」って、あんた石にされてるじゃん。

ちなみに Switch 版のいいところは、+ (Start) ボタンを押せばいつでも魔法やアイテムの説明が見られるところです。 おかげで、魔法の名前を最後まで覚えられませんでした(ダメじゃん)。

/p/jb6s7k4/img-magic-list.jpg
図: ポーズメニューが超便利

回復魔法「ヒール」の上位版の名前が「ドヒール」っていうのも 昭和の香り がしていいですね。 回復魔法はこの 2 種類しかありません。 このシンプルさがよいのです。 最近のドラクエとか、魔法や特技がインフレしすぎてて全然使わないものが多すぎるので、1画面に収まるくらいがちょうどいいんです。 それでも魔法の名前覚えられなかったけど。

あと、オートマッピングはやっぱり便利ですね。 2、3 日でクリアできたのはこれがあったからだと思います。 昔は手描きで全部マッピングしてたので、現代人からすると恐ろしいほど時間がかかっていたはず。 ある意味、娯楽の種類が限られていて、マッピングに時間をかけるのが楽しかった時代 は幸せだったのかもしれません。

謎解きは比較的簡単だったけど、最後にエアロキャッスルに行くためのアイテム集めは少しだけ難解でした。 街の人のヒントを聞いても結局よくわからずに、アイテム総当たり試したり↓

空に浮かんだ城を見て、一瞬でイースを思い浮かべた人は昭和ゲーマーです。

/p/jb6s7k4/img-myau2.jpg
図: 猫こそ最強(猫なのかは知らない)

無事、個人的な復讐劇を果たしたアリサは得意げの記念撮影です。 ミャウさんいつ小さな姿に戻ったの。

/p/jb6s7k4/img-cheese.jpg
図: はい、チーズ!(昭和風に)

当時この絵を入れるために、プログラム容量をがんばって削ったのだとか。

スタッフロールがダンジョン探索風になっているのもオシャレ。 アイコンはアレックスキッドかな。

/p/jb6s7k4/img-staff-roll.jpg
図: エイプリル・フールって...

それにしても、タイロンさんは MP が 0 なのに、HP まで最下位なのはかわいそすぎでした。 配置も後衛だし、そういうことなんでしょう。 猫が正義ということで。 チャンチャン(昭和風に)。

  • パルマ星(最初の星)

    • カミニート居住区(最初の街)
      • 情報:カミニート居住区は戒厳令がしかれている。
      • 情報:明かりがないと進めないダンジョンもある。
      • 情報:鍵のかかったドアを開けるには「ダンジョンキー」が必要。
      • 情報:カミニートの西は「スペースポート」。
      • 情報:パルマは緑の星。モタビアは砂の星。デゾリスは氷の星。
      • 情報:港町ではいろいろな取引ができる。
      • アーマーショップ(盾):レザーシールド(30) / ボロンシールド(520) / セラミックノタテ(1400)
      • ツールショップ:サーチライト(20) / エスケープクロス(10) / トランカーペット(48)
      • ドラッグストア:ペロリーメイト(10) / ルオギニン(40)
    • パロリト居住区
      • 情報:東へ行くと「シオン」という港町があるらしい。
      • 情報:西にある「ガシコの森」へは地下通路があるらしい。
      • 情報:スペースポートからモタビア星の「パセオ」まで行ける。
      • 情報:森の中は気をつけた方がいい。
      • 情報:居住区の南の洞窟にメデューサという魔物が蘇った。姿を見たものは石にされる。
      • アーマーショップ(剣):アイアンソード(75) / チタニウムソード(320) / セラミックソード(1120)
      • ツールショップ:サーチライト(20) / エスケープクロス(10) / ライトペンダント(1400)
      • ドラッグストア:ペロリーメイト(10) / ルオギニン(40)
    • 港町シオン
      • 情報:「エピ」という迷いの森はコンパスがないと通れない。
      • 情報:南の半島には「イアラ」という洞窟がある。
      • 情報:北に「バヤマーレ」という丘がある。その北の海岸に「ナウラ」という洞窟がある。
      • 情報:モタビア星にはモタビアン星人、デゾリス星にはデゾリアン星人が住んでいる。
      • 情報:魔法のかかったドアはマジックを使わないと開かない。
      • アーマーショップ(鎧):レザークロス(28) / ライトスーツ(290) / ジルコニアメイル(1000)
      • ツールショップ:サーチライト(20) / トランカーペット(48) / ヒミツノモノ(200)
    • エピの村
      • 情報:ダンジョンキー は「カミニート居住区」の外れにある倉庫に隠しておいたぞよ。
      • 情報:「ガシコの森」には昔ルノベ博士の研究所があった。
      • 情報:世界で一番硬くて強い物質は「ラコニア」じゃ。
      • 情報:モタビアにはすごいエスパーがいるらしい。
      • 情報:モタビアの総督はもしかしたら味方になってくれるかもしれない。
      • アーマーショップ:アイアンアクス(64) / ニードルガン(400) / アイアンシールド(310)
    • メドゥーサの洞窟(居住区南の洞窟)
      • タイロン(石)
      • コンパス(タイロン救出後)
    • イアラの洞窟(シオンの南の半島)
      • シルバータスク for ミャウ
    • ナウラの洞窟(シオンの北の海岸)
      • ショートケーキ(280) for モタビア星の総督
    • スペースポート
      • パセオには総督がいてモタビア星全体を治めている。
      • 「ガシコ」の研究所では昔スペースシップを作っていた。
      • 南西にマンホール
    • ガシコの村
      • ツールショップ:サーチライト(20) / エスケープクロス(10) / ライトペンダント(1400)
      • 情報:ここから先は僕の縄張りだから通せないよーだ。
      • スーズフルート(ウーゾの村に行ってから)
    • ドラスゴーの街
      • 情報:アビオンの塔 には魔力を封じる剣があるそうです。
      • 情報:チョウコおねーさんでーす。がんばって冒険を続けてね。
      • 情報:私は昔空に浮かぶ大きな岩を見たことがある。
      • 情報:私は毒ガスから身を守る ガスクリアー という装置がここに売っていると聞いたのだが店がどこにあるのか分からない。
      • お店:ガスクリアー(1000)
    • エアロキャッスル
      • 情報:ダンジョンの中では己の目を信じるでないぞ。
      • 情報:ラシーク様に逆らうな。
  • モタビア星(2つ目の星)

    • スペースポート
      • 情報:「ナウラ」という洞窟にはケーキ屋がある。
    • 首都パセオ
      • 情報:「マハル」という洞窟がパセオの北の山の中にある。
      • 情報:賢いモンスターにはモンスター言葉がある。
      • 情報:総督に会うには贈り物がいる。甘いものが大好き。
      • 情報:総督は実はラシークと仲が悪いらしい。
      • 情報:蟻地獄は人の足ではとても通れない。
      • 情報:「マハル」の洞窟にルツというエスパーがいる。わたしの手紙を持って会いにゆくがよい。
      • ミャウ
      • アーマーショップ:ショートソード(30) / トゲリスノケガワ(630) / ダイヤノヨロイ(15000)
      • ツールショップ:サーチライト(20) / エスケープクロス(10) / パスポート(100)
    • マハルの洞窟(パセオの北の山の中)
      • 敵モタビアンイビル/モタビアンノーフ:アビオンのドクターがラスコニアンポットを持ってたぜ。
      • 敵タランチュラ:デゾリアンには嘘つきもいるから気をつけなよ。
      • ルツ:まずガシコの森へ行ってルノベ博士に会いたい。たしか マンホール を通っていけたはずです。
    • ガシコの森?(元ルノベの研究所)
      • 情報:ペロリーメイトを恵んでくれないか。(ペロリーメイトx2必要)
      • 情報:ここは昔ルノベという科学者の研究所だった。だけどルノベは狂っているという理由でこの村の南にあるトリアダという牢獄に閉じ込められたんだ。
      • 情報:ガシコの森から山へ通じる一本道の奥にある塔には近づくな。そこには姿を見ただけで体が石になってしまうという恐ろしい魔物がすんでいるらしい。
      • ルノベ博士:さっそくじゃがわしの助手を連れてきてくれ。地下通路の中に隠れておるはずじゃ。
      • ルノベ博士:ハプスビーというロボットを探してくるんじゃ。あのロボットなら宇宙船を操縦できるはずじゃ。
    • トリアダ(ルノベ博士の牢獄)
      • 情報:蜘蛛の怪物は本当は賢いんだよ。
      • 情報:ハプスビーというロボットを知ってるかい?ラコニアでできたロボットだよ。でもスクラップにされて捨てられちまった。
      • 情報:山の向こうは火山の噴火で溶岩池ができているそうだよ。
      • 情報:ポリメテラールという薬は、ラコニア以外の物質は全て溶かすそうだよ。
      • 情報:バルテボには僕の友達がいるんだ。今は溶岩のせいで大変だろうなぁ。
      • 情報:ガシコの山奥にある塔はメデューサの塔と呼ばれている。
      • ルノベ博士:なに。宇宙船を作れじゃと。ばかも休み休み言え。わしがそんなことを引き受けると思うのか。
    • バルテボ(溶岩の先の街)
      • 情報:このスクラップの中に性能のいいロボットが捨てられているという話だけど本当かねー。
    • ロアーの村(バルテボの洞窟の先)
      • 情報:ラエルマツリー という木を知っているか?デゾリス星の アルチプラノ と呼ばれる高原に生い茂っているとか。
      • 情報:この島の西の外れにはアビオンという村があります。
      • 情報:カーバンクルアイという宝石を知っていますか?カスバのドラゴンが持っているという噂です。
      • アーマーショップ:ホワイトマント(78) / ヒートガン(1540) / サーベルクロー(1620)
    • アビオンの村
      • 情報:この村に変わった男が引っ越してきたよ。動物実験をやっているらしいが気味が悪いなぁ。壺みたいなものを持ってたよ。
      • 情報:ジャコウネコという動物はある木の実を食べると大きくなって空を飛べるようになるそうだよ。不思議だね。
      • アーマーショップ:ウッドケイン(25) / アイアンアーマー(84) / レーザーバリア(4800)
      • ツールショップ:サーチライト(20) / マジックハット(20) / ライトペンダント(1400)
      • ドラッグストア:ペロリーメイト(10) / ルオギニン(40) / ポリメテラール(1600)
    • ウーゾの村
      • 情報:南にカスバという村があります。
      • 情報:カスバの洞窟にはドラゴンが棲みついたらしい。そのドラゴンの頭には宝石が入っているとか。
      • 情報:フラードマントというマントを知ってるかい。軽いけどすごい防御力があるそうだよ。
      • 情報:スーズフルートという笛のことを知ってるかい。内緒だけどさ、僕がパルマ星へ行ったときにガシコの村の外れに埋めてきたんだ。
      • 情報:蟻地獄はランドマスターという乗り物を使えば通れますよ。
      • アーマーショップ:ヒートガン(1540) / ライトセイバー(2980) / セラミックノタテ(1400)
      • ドラッグストア:ペロリーメイト(10) / ルオギニン(40)
    • カスバの村
      • 情報:この村の洞窟にドラゴンが棲みついたの。
      • 情報:フロームーバーという乗り物を知ってるかい。水の上をスイスイ行けるんだ。パルマ星のシオンの街で買ったんだけど壊れちまったみたいで、バルテボ に捨てちまったよ。もったいないことしちまった。
      • 情報:周りを霧に囲まれた村には伝説の盾の言い伝えがある。その昔ペルセウスが魔物退治に使ったという。
      • 情報:僕が湖の西へ行くと、霧のような恐ろしい毒ガス広がっていたんだ。
      • ツールショップ1:サーチライト(20) / トランカーペット(48) / テレパシーボール(30)
      • ツールショップ2:ランドマスター(5200)
    • ソピアの村
      • 情報:ペルセウスがメデューサを倒す時に使った盾が湖にある島のサボテンの下に埋めてあるそうです。
      • 情報:湖の南の山の中に タジム という道士がいます。
  • デゾリス星(3つ目の星)

    • スクレの街
      • 情報:パルマ星からの移民はほとんどこの街に住んでいます。
      • 情報:氷の山の中には崩れやすいところもあるようです。
      • 情報:「アルチプラノ高原」は周りを氷の山に囲まれています。
      • 情報:北の山奥にこの星の住民デゾリアンの村があるそうよ。
      • 情報:この星は百年に一度日食があります。そのときに灯された炎はイクリプストーチと呼ばれ、神聖なる炎としてでデゾリアンに祀られているのです。
      • 情報:グアランの死体置き場の死人が蘇ったそうだ。
      • アーマーショップ:サイコウォンド(1200) / レーザーガン(4120) / アニマルグラブ(3300)
      • ドラッグストア: ペロリーメイト(10) / ルオギニン(40)
      • ツールショップ:サーチライト(20) / マジックハット(20) / テレパシーボール(30)
    • アウクバル
      • 情報:隣の部落は嘘つきばかりだ。気をつけなよ。
      • 情報:この部落のみんなはパルマの人々を嫌ってるズラ。
      • 情報:エアロプリズム というのを知ってるズラか?この世と違う世界が見えるそうズラよ。
      • 情報:ラエルマツリー には ラエルマベリー という木の実がなるズラよ。あの木の実は美味しいからわしらの食料にしたいけど、ラコニアの壺 に入れないと干からびてしまうズラよ。
      • 情報:この村の北の山の向こうに コロナの塔 あるズラ。
      • 情報:コロナの塔 の西には デゾリスの洞窟 があるズラ。わしらの仲間がいるズラ。よろしくズラ。
      • 情報:この部落はパルマの人々を歓迎します。
      • 情報:ラエルマツリー の前で クリスタル を使うと実がなるんダス。
      • 情報:デゾリスの洞窟 の地下10階でワープできるんダスよ。
      • 情報:ラエルマベリー は青色をした木の実で染料に使うダス。
      • 情報:コロナの塔 には命の泉があるんダス。
      • ツールショップ1:サーチライト(20) / エスケープクロス(10) / トランカーペット(48)
      • ツールショップ2:アイスデッカー(12000)
更新: / 作成:

(3/20: 映画版も見ました!)

コンピューターの声で目を覚ますと、そこは狭い病室のような部屋でした。 頭がぼんやりしていて、自分が誰で、なぜここにいるのかもわかりません。 隣には 2 つのベッドがあり、男性と女性の死体が横たわっています。

まるでゲーム『Portal』のような始まり方をする、これがアンディ・ウィアーの『プロジェクト・ヘイル・メアリー』です。 いよいよ 2026年3月20日に映画版が日米同時公開 されますね。 そういえば、Portal クリアせずに放置してるな。

本の表紙が宇宙の絵で、1ページ目から宇宙船の構造が掲載されているので、そこが宇宙船の中であることはネタバレにもならないでしょう。 本を手に取った瞬間にわかってしまいますからね。

物語は過去の記憶を取り戻しながら、宇宙でのミッション『プロジェクト・ヘイル・メアリー』が同時並行で進んでいくという構成になっています。 主人公の宇宙飛行士グレースは、自分が成すべきことを比較的早い段階で思い出すのですが、なぜここにいるのが「自分」なのか を思い出せずにいます。 そもそも自分にはここに来る意思はなかったはずなのに。 そして、終盤になってからなんとも受け入れ難い真実を思い出すことになります。

このプロジェクトは地球規模の危機を救うためのものであり、その女性リーダーであるストラットは各国の首相すらも動かせる権限を持っています。 時間的猶予のないストラットが強引に計画を進めていく様子は痛快です。 裁判官の指示すら軽くあしらってしまう笑。

話の大部分は科学的な考察や実験によって進んでいくのですが、それを映画で延々と流すのはさすがに厳しそうなので、きっと映画版は人間ドラマの方に重きを置いているのではないかと思います。 いや、人間ドラマではなく◯◯ドラマか。

3/20 追記: 映画が公開されたので見てきました。 やはり科学的な考察はかなりカットされていて、若干分かりにくい部分もあったかもしれません(ペトロヴァラインの往復の違いとか)。 でも間違いなく大作ですね。 すごくよかったです。

/p/k2zg6pk/img-001.jpg
図: ワッペンみたいなのもらった ٩(๑❛ᴗ❛๑)۶

関連記事

更新: / 作成:

超高速なテキスト検索コマンド rg (ripgrep) にはずっとお世話になっていますが、ちょっと凝った検索をしようとしたときに、オプションを忘れてしまうことが多いので、チートシートの形でまとめておきます。 rg は Windows でも macOS/Linux でもほぼ同じように使えるので、使いこなせるようになると便利です。

Ripgrep チートシート

検索パターン

rg "^def "
カレントディレクトリ以下のすべてのファイルから、行頭が def で始まる行を検索します。 rg はデフォルトで、入力パターンを正規表現として扱います
rg -F "*****"
検索文字列を正規表現として解釈せず、そのままの文字列 (Fixed String) として検索します。上記の例では、***** という文字列を検索します。
rg -i "PATTERN"
大文字・小文字を区別せずに「PATTERN」を検索します。
rg -w "PATTERN"
単語単位で「PATTERN」を検索します。例えば PATTERNSMYPATTERN はマッチしません(安心してください、TODO: にはマッチします)。 -w オプションの代わりに、正規表現の単語境界 \b を使って、rg "\bPATTERN\b" とすることもできます。

対象ファイル/ディレクトリの絞り込み

rg PATTERN path/to/dir
path/to/dir ディレクトリ以下(あるいは同名のファイル)で「PATTERN」を検索します。 ディレクトリであることを明示したい場合は、末尾にスラッシュを付けます(path/to/dir/)。
rg -t py PATTERN
rg -t sh PATTERN
Python ファイル(拡張子 .py)やシェルスクリプト(拡張子 .sh.zsh)のみを検索対象にします。 ここで指定するタイプは拡張子ではなくファイルタイプです。指定できるファイルタイプの一覧は rg --type-list で確認できます。 逆に、特定のファイルタイプを除外したい場合は -T py のように大文字の -T を使います。例えば -T minified と指定すると min 系のファイル (minified: *.min.css, *.min.html, *.min.js) を除外できます。
rg -g "*.{js,ts}" PATTERN
glob パターンで指定したファイルのみを検索対象にします。引数がシェルによって展開されないように、必ずクォートで囲みます。 大文字小文字を区別せずにマッチさせたい場合は、-g の代わりに --iglob を使います。 glob パターンを ! で始めると、指定したパターンにマッチするファイルやディレクトリを検索対象から除外できます(zsh による履歴展開が働かないようにするためには、パターンをシングルクォートで囲みます)。
  • glob パターンの例:
    • -g '*.{js,ts}' … 拡張子が .js または .ts のファイルを検索
    • -g '*test*' … ファイル名に test を含むファイルを検索
    • --iglob '*test*' … ファイル名に test を含むファイルを検索(大文字小文字を区別しない)
    • -g '**/hoge/**/*.py' … 任意の階層の hoge ディレクトリ以下の .py ファイルを検索
    • -g '**/hoge/*.py' … 任意の階層の hoge ディレクトリ直下の .py ファイルを検索
    • -g 'hoge/**' … この階層の hoge ディレクトリ以下のファイルを検索
    • -g 'hoge/*' … この階層の hoge ディレクトリ直下のファイルを検索
    • -g '!*.min.js' … 拡張子が .min.js のファイルを検索対象から除外
    • -g '!hoge/' … この階層の hoge ディレクトリを検索対象から除外
    • -g '!**/hoge/' … 任意の階層の hoge ディレクトリを検索対象から除外
rg --hidden PATTERN
隠しファイル・隠しディレクトリも検索対象に含めます。 ただし、ドットファイルだけを検索したい場合は、-g ".*" のように glob パターンを使う方がよいです。
rg --no-ignore PATTERN
.gitignore.ignore$HOME/.rgignore などで無視されているファイル・ディレクトリも検索対象に含めます。
rg --max-depth 1 PATTERN src/
src/ ディレクトリの直下だけを検索対象にします。サブディレクトリは検索されません。

表示オプション

rg -C2 PATTERN
マッチした行の前後 2 行も一緒に表示します(-A2 -B2 と指定するのと同様)。
rg -c PATTERN
ファイルごとにマッチした行数のみを表示します。
rg -l PATTERN
ファイル名のみを表示します。

どのファイルが検索対象になっているかを調べる (--files)

--files オプションを使うと、実際にどのファイルが検索対象になっているかを確認できます。 試行錯誤しながら検索条件を調整したいときに便利です。

  • rg --files
  • rg --files -t js
  • rg --files -t js src/
  • rg --files --hidden
  • rg --files -g "/.*"

これを利用して、ファイル名に特定のパターンを含むファイルの一覧を取得することもできます。

ファイル名に test を含むファイルの一覧を取得
$ rg --files | rg test

具体的な使用例

src ディレクトリ以下で TODO コメントを検索
$ rg -w "TODO" src/
test や Test で終わる .kt ファイルを除外
$ rg --iglob '!*test.kt' PATTERN src/

トラブルシュート

Operation not permitted という警告が大量に出る

./Library/Calendars: Operation not permitted (os error 1)

のようなエラーは、アクセス権限のないファイルやディレクトリを検索しようとしたときに出る警告です。 これは標準エラー出力への出力なので、次のように 2> を使ってリダイレクトすればこれらの表示を抑制できます。

標準エラー出力を /dev/null にリダイレクト
$ rg PATTERN 2> /dev/null

glob オプション (-g/--glob) を使って、アクセス権限のないディレクトリを検索対象から除外することもできます。 ! を使うと、指定したパターンにマッチするファイルやディレクトリを検索対象から除外できます。

Library ディレクトリを検索対象から除外
$ rg -g '!Library/' PATTERN
☝️ glob パターンの説明 zsh では ! が履歴展開として解釈されるため、glob パターンをシングルクォートで囲む必要があります。 例えば、zsh で "!ls" とすると、最後に実行した ls コマンドの履歴展開が行われてしまいますが、'!ls' とすればそのまま !ls という文字列が glob パターンとして渡されます。

常に検索対象から除外したいファイルやディレクトリがある場合は、.ignore ファイルや .gitignore ファイルを作成して、そこに除外したいパターンを記述しておくと便利です。

.ignore(検索除外パターン)
/Downloads/
/Library/
/Movies/

関連記事

メニュー

まくろぐ
サイトマップまくへのメッセージ