今回は試しに最近やっている大人気ゲーム「Minecraft」の話を書いてみます。普通のアクションゲームなら別に書くことも無いのですが、このゲームいろいろ調べることが多く面白かったので、この業界の人に向いているのではと思いましたので…。
■そもそもどんなゲームか
(つい最近やり出した”にわか”が偉そうにしているのはご容赦ください!)まず、もしかするとそもそも「Minecraft」をご存じない方も居られるかもしれませんので、wikipedia様からゲーム概要を抜粋します。
https://ja.wikipedia.org/wiki/Minecraft
『Minecraft』(マインクラフト)は、Notch(マルクス・ペルソン)とその会社 (Mojang AB) の社員が開発したサンドボックスゲームである。ブロックを空中や地面に配置し、自由な形のものを作っていくゲームである。シングルプレイやマルチプレイがあり、日本語圏では『マイクラ』という略称で呼ぶこともある。
このゲームの世界は主に1m×1m×1mの立方体のブロックで構成されており、プレイヤーはそのブロックを破壊したり設置したりすることができる。立方体のブロックを設置・破壊するゲームソフトは数多くあるが、Minecraftの地上には草原、森、砂漠、雪原などのさまざまなバイオームや地形が存在し、地下には洞窟や廃坑、渓谷などが広がっている。また昼夜の概念もあり、プレイヤーはその世界で自由に生活できる。
まったく詳しくないのですが、本格的に流行ったのはだいぶ前みたいで、どうやらインディーズで作られたゲームとは思えないほど、それはそれは売れたらしく、いろんな環境に移植されているそうです。うらやましい限りです。アプリ版もあり、先日、電車の中で両手でiphoneを持って中学生らしい少年が遊んでいるのをみかけました。
基本的にはランダムに生成されたマップ上を冒険するゲームです。モンスターがでるのでやっつけたり、家を建ててみたり、洞窟を見つけて探検したり、海を渡って未開の土地を切り拓いたり、やれることが多いです。僕が気に入っているところは、ランダムに生成された地形(山や洞窟、湖等)がそれっぽく生成されるところで、そこがよくできているので、その自然を無遠慮にぶっ破壊して、都合まるだしの素っ気ない建物を建てたとき、背徳的な妙な快感が得られるのです。しかも人類がその行為の果てに環境問題を引き起こしたことを知っているので、なんだかバッドエンドに向かう映画みたいな、妙な空虚さも感じられて居心地が良いです。どうも世の中的にはみんなで仲良くわいわいやるようですので、これはあくまで個人的な感想ですが、そんな面もあっておすすめです。
■今回の記事の目的はこれ!
道具に魔法的な効果(火が付く、水中で息が続く等)を付与するために経験値が必要なのですが、いろいろ経験値を貯める方法はあるのですが、それほどすぐには貯まりませんし、しんじゃうと無くなります。
一気に貯める方法をインターネットで調べたところ、どうも天空トラップタワー(TT)なるものがあるようです。出現したモンスターを効率的に狩る仕組みです。
動画見る限り作れそうではあったのですが、作り方は出てくるのですが、なぜこの構造になったのかが詳しく書かれたものが見つけられませんでした。
理屈が判っていないまま作り出すのは、ちょっともごもごするので色々調べてみると、色々知識が必要だったのでこの記事にまとめてみます。
■スポーン範囲と条件、距離に応じたMOBの動作について
まずはモンスターを出現させる必要があります。以下のサイトには、この条件だと記載されていました。
http://www26.atwiki.jp/minecraft/pages/545.html#id_f82f6865
・プレイヤーを中心とした直線距離24m~128mの球形範囲内。
・スポーン位置(ブロック)の明るさレベルが7以下。
・スポーン位置(ブロック)の地面が不透過ブロック(ガラス、フェンス、半ブロック等以外。埋没すると窒息ダメージを受けるブロック)。
・スポーンするMobの大きさ(当たり判定)分の空間があること。
・プレイヤー周囲のモンスターの数が上限(シングルプレイの場合79匹)に達していないこと。
まず、用語ですが、スポーンはモンスター・生物の出現の意味、Mobはモンスターのことで、距離は1mが1ブロックになります。
ほんで、上の条件を簡単に書くと、以下になります。
- 1.プレイヤーに近すぎず遠すぎない距離であること。
- 2.暗い場所であること。
- 3.ちゃんとしたブロックの上であること。
- 4.出現したときにモンスターが他のブロックと重ならないこと。
- 5.出現数の上限に達していないこと。
結構注文が多いですが、条件2は上を塞げば、条件3はブロックを置けば、条件4は空間を確保すれば対応可能です。
問題は、残りの条件1と条件5です。ある区画を「スポーンしてきたモンスターをやっつける」場所として整備しても、夜になれば暗くなるので、平らで上に空間がある、その他の場所がスポーン条件に適合します。
そのせいで、条件5の出現数制限で肝心の場所になかなかスポーンしなくなるか、最悪完全にスポーンしない問題が起きます。周りのブロックを全て松明で照らす等、地上をどうこうする方法はありますが、それだけでも手間ですし、このゲーム地下に大小無数の空洞が生成されるのでそこにモンスターがスポーンしていたら手の施しようがありません。
それなら、128m以上、上空に施設を作ってしまえばいいじゃないか!という発想です。
※実際は距離と上限数はもうすこし細かい計算があるようですが、難しそうだったので見て見ぬふりしました。
http://minecraft-ja.gamepedia.com/%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%B3
それから、重要なのが、距離に応じたモンスターの動作です。
http://www26.atwiki.jp/minecraft/pages/564.html#id_25eea9bb
プレイヤーから 直線距離:32m以上の距離があると移動しなくなり、128mを超えるとデスポーン(消滅)する。
出現距離と合わせると以下になります。
- 0m – 23m : 出現しない
- 24m – 31m : 出現し移動する
- 32m – 127m : 出現するが移動しない
- 128m – : 出現していても消滅する
出現するが移動しないモンスターがいやらしいです。対策をしないと上限数で効率が下がることになります。
■モンスターの種類について
モンスターは色々いて種類ごとに身長と横幅が違います。中でもタチが悪いのが、壁を上る蜘蛛と、ブロックをパクってワープして逃げていくやつです。
Minecraft Japan Wiki – 生物/モンスター http://www26.atwiki.jp/minecraft/pages/545.html
蜘蛛は壁に張り付くのでコントロールしづらいですし、ブロックパクるやつは論外なので、出現条件4「出現したときにモンスターが他のブロックと重ならないこと」で対策します。蜘蛛は横幅が1.4mx1.4mあるそうですが、幅3mx3m 高さ2mの領域が無いと出現できないようなので、この領域を作らないようにします。
Minecraft Japan Wiki – 生物/モンスター 蜘蛛 http://www26.atwiki.jp/minecraft/pages/545.html#id_af7ea836
ワープパクりマンは身長が2.9mあるので、高さは2mまでにします。
Minecraft Japan Wiki – 生物/モンスター エンダーマン http://www26.atwiki.jp/minecraft/pages/545.html#id_ec768520
■退治方法
倒し方はいくつかあるようですが(例えば溶岩で焼く、窒息させる等)、経験値を得るためには直接叩いてやっつける必要があります。
■そのために一カ所に集める
ばらばらにいられると叩きに動かないといけず、スポーン位置が変わってややこしいし、しんどいので、1カ所に集まってもらいたいです。そこで水で流すことになります。水でモンスターを流して1カ所に集まってもらいます。
■今までの話から全体像を説明
判らんと思いますがこういう感じです。もっと書こうかと思いましたが、下手過ぎるので他の人の動画を見て頂けないでしょうか・・・。ちょっと違うのですが、なんとなくイメージ付くと思います。
作戦としては、スポーンさせて、水で動かして、プレイヤーのところに集めたところを仕留める!そんで経験値ゲットです。それから「32m – 127m」の出現するけど動かないモンスターは移動させるのが大変なので(スポーン場所から水に移動する方法に関係する)、いっそ出現しないようにブロックを置かない+沸かないようにします。そのため、施設の高さは「24m – 31m」の間に来るように調節します。これがどうも、「24-32方式」と呼ばれるトラップタワーの方式だそうです。なんで32なのか判りません。もしかすると32mのモンスターは動く範囲内なのでしょうか?うーん。
■しかし、この記事は途中で終わる
ここまでの知識から実際にどう実装すれば欲しい結果が得られるのか書きたかったのですが、分量が多くなって書ききれませんでした。実装編に続くことにします。もし書けばですが…。
もし実装編があるとすれば、下記について書きたいです。
■スポーン層について
・具体的なモンスターのスポーン制御
・モンスターを運搬層へ渡す方法
■運搬層について
・水の特性8ブロック
・水2ブロック下
■処理層について
・安全に攻撃する姑息な工夫
・地味な落下ダメージの計算式
■完成
■おわり
実際に作ってみたときのスクリーンショットを貼って、一応記事として終わった感を出しておきます。
で、では…。