[NetHackって何? [日本語Guidebook TeX版]] [プレイ動画 [Wizを極めたい] [次はWizで昇天を目指す] [初昇天達成までの道のり] [録画環境 [録画] [再生 [再生途中にオンデマンドで再生速度を変化させたい]] [動画ファイル作成]]] [攻略情報 [アイテムの判別方法 [] [] [灰色の宝石] [識別の巻物] [その他]] [薬の調合] [魔法のマーカ消費量] [魔法使いの為の魔法カタログ [最強3大魔法] [強力な魔法] [そこそこ使える魔法] [序盤に使える魔法] [効果が魔力の燃費に見合ってない] [存在価値が有るのか…] [未分類]] [コピー&ペースト用テキスト集]] [日本語NetHack用パッチ [HP and Pw status bar] [Color HP Monitor]] [自由研究 [初期ステータスと寿命の関係]] [外部リンク集]

NetHack

NetHackって何?

天地創造の後,
破壊神モーロック,
創造主マルドゥークと違いして反乱す.
破壊神モーロック,
マルドゥークの聖器のなかより,
万物の力の源「イェンダーの魔除け」を盗みだし,
それを彼の潜む世界の底,
ゲヘナの闇の洞窟に隠し,
時を待てり.

てな出来事が有って、神様に代わって盗まれた「イェンダーの魔除け」をダンジョンに潜って取り返して来るのが目的のロールプレイングゲームです。

一般的な説明は WikipediaのNetHackのページ を読んで貰うとして、感覚的には日本で一般的にRPGと呼ばれるゲーム*1とは違って、ゲームのキャラクタではなくプレイヤー自身が成長していくタイプのゲームだと思ってます。

NetHackはオープンソースで開発されていて誰でも無料でプレイする事が出来ます。 ゲームの入手先は 日本語版NetHackのページ か、英語版でも良ければ オリジナルNetHackのページ です。

日本語Guidebook TeX版

オリジナルには含まれているのに日本語版では省かれてて、TeX使いとしてはちょっと悲しかったんで自分で作りました。 もし、欲しい人が居れば自由に持っていってください。 日本語Guidebook TeX版*2 と、それを変換して作った 日本語Guidebook PDF版 です。

オリジナル*3Guidebook.tex に、日本語版*4jGuidebook.mn から訳文を埋め込んで作りました。 基本的にはできるだけオリジナルに忠実に作ってますが、TeXの流儀に合わなかったり明らかに間違っているとか抜けている部分は修正を掛けてます。

プレイ動画

時間的順番は 初昇天達成までの道のり から始まって、次に 次はWizで昇天を目指す で、現在 Wizを極めたい をプレイ中です。

Wizを極めたい

これまでにやり残した事が一杯有るので、それをやって行きたい。 プレイしている内にやりたい事は増えてくると思うけど、取り合えず今の目標。

次はWizで昇天を目指す

初昇天達成までの道のり

録画環境

テキスト表示でプレイしている場合しかこの方法は使えません。 著者は普段テキスト表示でプレイしているので、タイル表示の録画については考えた事が無いのでここでは一切触れていません。

録画

プレイ画面の録画には ttyrec を使ってます。

コマンドラインから ttyrec -ae jnethack ~/nethack.tty と実行して、ホームディレクトリの nethack.tty ファイルに録画してます。 途中で中断して再開した場合はファイルに追加録画されます。

ttyrec はけっこう有名なツールなので、もっと詳しい説明はググって貰えば見つかると思います。

再生

再生は ttyrec 付属の再生ソフト(ttyplay)だと、中断中の時間もそのまま再生時間に反映されてしまうんで、何度も中断/再開して追加録画したファイルの再生には向きません。 なので、中断中の時間をカットできる用にした自作のttyplayを使ってます。 自作のはRuby言語のスクリプトなので、実行にはrubyのインストールが必要です。

自作のttyplay のダウンロードはこちら→ ttyplay

使い方は nethack.tty ファイルを再生したい場合は、ttyplay nethack.tty と実行します。

中断中の時間をカットする場合は --cut オプションを使います。 10秒以上画面に変化が無い場合を中断中とみなしてカットするなら、ttyplay --cut=10 nethack.tty とします。

再生速度を変えたい場合は --speed オプションを使います。 2倍速再生ならば ttyplay --speed=2 nethack.tty とします。 スロー再生も可能で、1/2倍速再生ならば ttyplay --speed=0.5 nethack.tty です。

--cut--speed の両オプションは同時指定可能で、その場合はどちらを先に指定しても先に中断中の時間をカットしてから再生速度制御が掛かります。

再生時間を知る為に再生が終わるまで待つのは大変です。 --info オプションを追加すると再生せずに再生に掛かる時間を表示します。 ついでに、録画開始日時と最終追加日時も表示します。

再生途中にオンデマンドで再生速度を変化させたい

再生途中で再生速度を変化させる時は、ttyplay をインクルードして使うラッパーソフトを書いて対応してます。 オリジナルの ttyplay に機能追加ではなく、わざわざスクリプト言語で書き直したのは、簡単にラッパーが作れるようにするためです。

ラッパーソフトの例: 2月25日0時10分までの録画は100倍速再生で、それ以降はノーマル速度で再生させる場合

#! /usr/bin/ruby

load 'ttyplay'
class TTYPlayWrapper < TTYPlay
  def playOnDemand(io, speed, time, seek = false)
    time = time.to_f
    play(io, seek) do |recTime, tty|
      waitTimeMax = 0.5
      playSpeed = recTime < time ? speed : nil
      [waitTimeMax, playSpeed]
    end
  end
end

require 'time'
tp = TTYPlayWrapper.new
open('nethack.tty') do |f|
  tp.playOnDemand(f, 100, Time.parse('2011-02-25 00:10:00'))
end

この例の場合、引数の変数 recTime に録画した日時、tty に画面表示される文字列*11が入ってます。 戻り値の変数 waitTimeMax--cut オプションの値、playSpeed--speed オプションの値を設定します。 中断中のカットをしない場合は waitTimeMaxnil を設定します。 playSpeednil を設定すると、ノーマル速度再生になります。 これは 1 を設定した場合と同じです。

例では recTime の値のみしか参照してませんが、tty の値を使うともうっちょっと面白い制御が可能です。 例えば tty の値に「マインドフレア」*12が含まれていれば、その後の数分間の playSpeednil に設定する事で、マインドフレアに脳を吸われるシーンを抜き出してノーマル速度で再生させる事が出来ます。

TTYPlay#play の引数 seektrue に設定するとプレイ画面の再生をせずに、recTimetty の値を参照出来ます。 例えば、プレイ画面を再生する必要は無く、マインドフレアが登場した日時を調べたいだけの時に使うと便利です。 下記の戻り値を使って画面再生をせずに再生に要する時間を調べたい時にも便利です。

TTYPlay#play の戻り値は 録画開始日時、録画最終日時、再生に要する時間 の配列です。

動画ファイル作成

初昇天達成までの道のり の動画は、ttyplay --cut=0.5 --speed=100 nethack.tty と言う感じで再生した画面を動画キャプチャソフトで画像ファイルに変換して作成してます。 --speed オプションの数値は --info オプションを使って、動画毎に動画の再生時間がBGMの長さに合うように調整して変えてます。

攻略情報

アイテムの判別方法

識別の巻物や魔法を使わないアイテムの判別方法。 取り合えず序盤で大事なアイテムのみ*13

特に穴掘りと瞬間移動は敵から逃げるため、炎と雷はElberethを焼き付けるために使えるので、これらの判別は序盤を生き延びるために重要。

杖の判別方法
*14

  • トリックの鞄に噛まれるとHPが少し減るので、#lootする時は残りHPに注意*15
  • ペットがいなくて祭壇よりも道具屋か雑貨屋が近くに在る場合は、祝呪の確認より先に売り値から袋を判別しても良い。
  • 呪われた軽量化の鞄は入れたアイテムを取り出そうとすると中身の一部が消失してしまう事があるので、その可能性がある鞄には大事なアイテムを入れない事。
鞄の判別方法
*16

灰色の宝石

  • 呪われた重しは拾うと呪いを解くまで置けなくなるので、その可能性がある場合、かならず拾う前に床においた状態で判別する事。
  • 蹴っとばす方向に空間が無い場合は、つるはしなどで掘って空間を作る。 掘れない壁などで空間が作れない場合は、一旦諦めて解呪出来る用になってから再度出直した方が良い。
灰色の石の判別方法
*17

識別の巻物

店の売り値で判別する。

  • 売り値はキャラクタの魅力値によって変化する。
  • レベル14以下の観光客、またはアロハシャツかTシャツを店主に見える状態で着ている*18か低能帽をかぶっていると、観光客売り値が適用される。 それ以外は一般売り値となる。
識別の巻物の売り値
*19

その他

  • 羽兜と模様入り兜、とさかの兜、面頬付きの兜は、たとえ呪われていなくても逆属性の兜の可能性があるので装備しない事。 特にクエストクリア前だとクエストに入れなくなって、昇天不可能になってしまう。
  • 薬と巻物は危険な物が多く有用な物でも使うと無駄に無くなるので、判別できるまで使わないで取っておいておいた方が良い。
  • 指輪はそれほど危険な物は存在しないので、呪われていなければ付けてみる事である程度自動識別できる。 もし危なければすぐに外せば問題ない。

薬の調合

薬の調合を図にして見た*20

薬の調合

魔法のマーカ消費量

巻物と魔法書を書く時の魔法のマーカ消費量*21。 範囲内でランダムに決まる。

巻物を書く時の魔法のマーカ消費量

魔法書(攻撃魔法)を書く時の魔法のマーカ消費量

魔法書(僧侶魔法)を書く時の魔法のマーカ消費量

魔法書(予知魔法)を書く時の魔法のマーカ消費量

魔法書(補助魔法)を書く時の魔法のマーカ消費量

魔法書(脱出魔法)を書く時の魔法のマーカ消費量

魔法書(治癒魔法)を書く時の魔法のマーカ消費量

魔法書(物質魔法)を書く時の魔法のマーカ消費量

魔法使いの為の魔法カタログ

著者の独断で使いやすさ順に分類してみた。 魔法使いでしか魔法を使った経験が無いので、魔法使い視点での使いやすさになります。 分類出来るだけの知識が無い使用経験の少ない魔法は、未分類に入れてます。

最強3大魔法

使えるとゲームの難易度が大きく下がる。 習得する難易度が低くて序盤から使えるのも得点が高い。 序盤で死にやすいゲームなので、これ重要。

識別の魔法
これは説明が要らないと思うけど、拾ったアイテムを即有効に使える訳で… ゲームバランスを壊しかねない程強力。 これと地図の魔法、宝を探す魔法、ユニコーンの角が揃っていれば、マインドフレアに脳みそを吸われても*22怖くなかったりする。
魅了の魔法
取り合えず困った時はこれを使っとけばOK。 敵に囲まれた時は自動で敵を攻撃してくれる肉の壁が作れるし、見張りや店主をミスって怒らせた時もこれでなだめられる。 ペットも作り放題。
矢の魔法
攻撃力に対する消費魔力の燃費が良くて、火の玉や冷気、衝撃と違ってアイテムを壊さない所が良い。 しかもレベルが上がると威力も上がる。 壁での反射を使って2度攻撃を当てたり、視界外の敵を狙ったりと戦略の幅が広いのも良い所。 反射の射線上に居ると自分にも当たるけど、魔法使いは初めから魔法を防ぐクロークを着ているのでそんな事気にせずに撃てる*23

強力な魔法

これが使えると楽に進める。

地図の魔法
宝を探す魔法
この2つの組み合わせでゲヘナ探索があっという間に終わる。 ゲヘナへ入る迄に揃えておきたい魔法。 これと識別の魔法、ユニコーンの角が揃っていれば、マインドフレアに脳みそを吸われても*24怖くなかったりする。

そこそこ使える魔法

無くても困らないけど使えれば便利。

衝撃の魔法
いちいちつるはしに持ち替えなくても岩を壊せて便利。 敵と一緒に持ち物の薬とかガラス素材のアイテムを破壊するんで、攻撃には使いにくい。 壊した岩の向うの死角にペットが居て悲しい気持ちになったり… 倉庫番では敵と一緒に岩まで壊してしまう事も… でも、リッチ族*25に有効な攻撃手段だったりする。
開錠の魔法
施錠の魔法
箱と扉だけでなく離れた場所に在る跳ね橋の開け閉めも出来る。 施錠の魔法は扉が無い場所に扉を作れるのでベースキャンプ作りに便利。
無力化の魔法
水や白紙の巻物、魔法書を作る時に水たまりまで行く必要がなくなる。 ベースキャンプに篭もったまま聖水や巻物、魔法書が作れる。
冷気の魔法
火の玉の魔法
敵の弱点属性に合わせて使えばなかなか強力。 冷気は水を凍らせられるし、火の玉でそれを溶かして敵を水に沈めたり出来る。 超世界の目との組み合わせ限定だけど、レベルが熟練者以上になれば壁越しに一方的に攻撃が可能。
脱力の魔法
レベルドレイン耐性を持つ敵が少ないので意外と使える。
牛歩の魔法
風の精霊に飲み込まれた時にこれで脱出出来る。 減速の杖と同じ効果だけど、杖は意外と貴重品。

序盤に使える魔法

上位の代替手段手が入るまでは役に立つ。

盲目を癒す魔法
ユニコーンの角入手前まで限定だけど、その頃ってまだテレパシーが使えなかったりElberethのお世話になる事が多いので、これが使えるかどうかで生死が分かれる事も…
怪物を探す魔法
テレパシーの能力を得るまで、その代わりに使える。
灯りの魔法
序盤にランプなどの照明器具が無いけど、暗いノームの鉱山に入りたい時に…
怪物を造る魔法
怪物を造る杖か怪物を作る巻物、トリックの鞄を入手する前にアーティファクトを授かりたい時に…
回復の魔法
これも回復量が少ないので序盤限定だけど、魔力の燃費も悪くない。
軟化の魔法
序盤の食料不足対策に…

効果が魔力の燃費に見合ってない

これに魔力を消費するなら他の魔法を使った方が…

死の指の魔法
いざって時に使いたいのに、そう言う時って魔力も足りなくて撃てない事が多い。
超回復の魔法
回復量のばらつきが大きくて安心して使えない。

存在価値が有るのか…

上位の代替手段有ったり、代替手段の方が先に手に入る。

瞬間移動の魔法
食べ物で瞬間移動能力を得た方が…
病気を癒す魔法
能力回復の魔法
ユニコーンの角が有れば不要な気が… ユニコーンの角が呪われた時の保険としては使えるけど、それも角を2本持ってればすむ事だし。 病気を癒す魔法の方はスライム化も治せるけど、これも炎の杖とか火の玉の魔法で事足りる。
食料を探す魔法
習得の難易度が低くて序盤から使えるのは良いんだけど、探すくらいならば軟化の魔法や怪物を造る魔法で作った方が…

未分類

恐怖の魔法
マジックベーンでElberethを刻めば良いのでは…
眠りの魔法
Elberethが効かないエルフに効果が無いのが何とも…
変化の魔法
浮遊の魔法
千里眼の魔法
霊感の魔法
混乱の魔法
守りの魔法
解呪の魔法
造魔の魔法
蘇生の魔法
跳躍の魔法
速攻の魔法
透明の魔法
穴掘りの魔法

コピー&ペースト用テキスト集

日本語NetHack用パッチ

HP and Pw status bar

キャラクタ名と称号を表示する部分に体力(HP)と魔力(Pw)の最大値に対する比率をバー表示するパッチです。 体力だけならば探せば見つかったんだけど、魔力もってのが無かったので自作しました。 このパッチを当てると下図のように、体力の残りを反転で、魔力の残りをアンダーラインで表示するようになります。 最大値の時は称号の右端までバーが伸びます。

ステータス表示画面

デモ動画→ A demonstration of "HP and Pw status bar" patch.

このパッチはテキスト表示用です。 試してはいませんが、タイル表示ではたぶん効果がないと思います。 また、アンダーラインが表示できない環境では魔力バーは表示されません。 残り体力のみの表示になります。

ダウンロードはこちら→ nethack-3.4.3_hppwbar-1.0.diff

パッチの当て方:

$ tar xzf nethack-343-src.tgz && cd nethack-3.4.3
$ patch -p1 < ../nethack-3.4.3_hppwbar-1.0.diff
$ zcat ../jnethack-3.4.3-0.10.diff.gz | patch -p1

Color HP Monitor

Ralph Churchill さん作成の オリジナルNetHack 3.4.3 用 Color HP Monitor を 日本語NetHack 3.4.3-0.10 用に修正しました。

ダウンロードはこちら→ jnethack-3.4.3-0.10_hpmon-1.0.diff

パッチの当て方:

$ tar xzf nethack-343-src.tgz && cd nethack-3.4.3
$ zcat ../jnethack-3.4.3-0.10.diff.gz | patch -p1
$ patch -p1 < ../jnethack-3.4.3-0.10_hpmon-1.0.diff

自由研究

初期ステータスと寿命の関係

Wizでプレイした時*32の初期ステータスと寿命の関係をグラフ化してみました。 初期ステータスの振り直しをしないプレイスタイル*33なので、プレイヤーの好みによるばらつきは無いはず。 最初に割り振られた値がたとえ悪くても最後まで諦めずにプレイした結果です。 縦軸が初期ステータスの値で横軸が死んだ/昇天した時点の歩数を表しています。

あきらかにサンプル数不足なんですが、それでも攻撃数と逃げやすさに影響する早さや、打たれ強さに関係する耐久力、Elberethを書く成功率に影響する知力の違いによる生存率の違いがもっとはっきり現れると思ってたら、あまり関係ないのかも…

初期強さと寿命の関係
初期早さと寿命の関係
初期耐久力と寿命の関係
初期知力と寿命の関係
初期賢さと寿命の関係
初期魅力と寿命の関係

外部リンク集

オリジナルNetHackの一次配布元
http://nethack.org
日本語NetHackパッチの一次配布元
https://jnethack.osdn.jp
NetHack使用ライセンス
http://nethack.org/common/license.html
NetHack使用ライセンス(日本語訳参考資料)
https://ja.osdn.net/projects/opensource/wiki/licenses%2FNethack_General_Public_License
NetHackWIKI(英語)
http://nethackwiki.com (Mazes of Menace, Player, Monster, Item/Artifact)
NetHack日本語WIKI
http://nethack-users.osdn.jp/hackaholic (ダンジョン構成, 職業/種族, モンスター一覧, アイテム)
NetHack公開サーバ(英語)
telnet://nethack.alt.org

*1日本のは参加型ストーリー鑑賞であって、ロールプレイングゲームとは呼べないと思うんだが…
*2文字コードは EUC-JP
*3NetHack 3.4.3
*4JNetHack 3.4.3-0.10
*5Wizでの初昇天達成 の時にやる予定だったんだけど、骨ファイルで大量のアーティファクトが発掘されちゃったんで諦めた
*6次はWizで昇天を目指す の時は残念ながら出なかったんで
*7Who do you think you are, War?*8
*8著者の知っている中では最高の名言だと思ってる
*9今まで昇天した時は、飛躍の魔法の存在を忘れてた
*10Val-Hum-Neu 7回目 の骨ファイルだったようです
*11制御シーケンス文字も含まれる
*12なぜ例がマインドフレアなのかと言うと、何度も脳を吸われた嫌な記憶があるから
*13中盤以降は識別の巻物か魔法が使えると思うので
*14情報元は 攻略情報コラム/アイテム判別方法/杖 - hack@holic
*15それが原因で死んだ事がある
*16情報元は 鞄 - hack@holic
*17情報元は 攻略情報コラム/アイテム判別方法/宝石 - hack@holic
*18シャツの上に鎧もクロークも着ていない
*19情報元は NetHack 3.4.3 のソースコード
*20情報元は Alchemy - NetHackWiki
*21情報元は NetHack 3.4.3 のソースコード
*22死なない程度によろしく
*23普段気にしてないので、ニンフなどにクロークを取られた時にそんな事忘れてて自爆しがちだけど
*24死なない程度によろしく
*25アーチリッチは除く
*26「油の塗られた」はウナギとクラーケン対策
*27「油の塗られた」はウナギとクラーケン対策
*28「油の塗られた」はマインドフレア対策
*29呪われた巻物も書きたいけど不浄な水が無い時は、呪われていない魔法のマーカ(uncursed magic marker)の方が良い
*30「油の塗られた」は水没対策
*31最強武器であると同時に最高危険物でもあるので取扱い注意
*32次はWizで昇天を目指すWizを極めたい
*33初期装備も同様
Copyright © 2017 Yuichi Kobayashi <kobayasy@kobayasy.com>