FC2ブログ

一生涯5,000万円生活

2015-06.30 Tueマイクラ村日記

Time[21:41] Comment[0] Trackback[0]
 ようやく村が完成した。 上手くいかなかった理由を突き止めて、手直ししたらすんなりいった。 つまらない勘違いで随分時間を無駄にしてしまった。

 当初の設計では、下図の横に伸びたブロック(ドアと同じ高さ)をアイアンゴーレムの湧き層にするために、画像よりもさらに高い位置と、村人と同じかより下の段にドアを設置して、村の中心座標を調整しようとしていた。 分かる人は分かるだろうが、これでは上手くいかない。


Wikiによると、村の判定は次のような流れになる。

①村人が、木のドアを検出する。検出範囲は各村人を中心に、32*32*±4ブロックの範囲。

②検出されたドアが「家」かどうか判定される。「家」であるための条件は後述する。

③各「家」から半径32ブロックの範囲が重なった「家」同士がまとめられて、1つの村になる。

④村に所属する家のドアの座標の平均値が、村の中心の座標になる。

⑤村の中心から、64*64*±4の範囲にいる村人が、その村の人口としてカウントされる。

 私の勘違いは、③にあった。 村人が検出して「家」と判定したドアが、半径32の球内にあるドアを「家」と判定して村ができると思っていたのである。 しかし、ドアが「家」であるかどうかの判定は村人しか行わないというのが実際であった。 つまり、村人から高さ±4以内にないドアは、その時点で「家」になることはない。

 さらなる勘違いは、座標の数え方である。 足元から数えるのは分かっていたが、下半身の1ブロックから上に4つだと思っていた。 これなら、上図の村人は真上にあるドアを検出することができる。 が、これは間違っていて、正しくは足元の平面から数えて4ブロックである。 となると、画像のドアは検出限界の1ブロック上にある。

 この2重の勘違いにより、村に「家」が21軒なかった。 これはアイアンゴーレムのスポーン条件を満たしていないのだから、上手くいかなくて当然だ。

 しかし、ドアの位置を下げることはできないので、改良案では村人の位置を上げることにした。 全員上げるスペースはないが、「家」を検出するには1人で十分だ。 村人1人を7ブロックほど上の小部屋に入れることで、「家」の検出範囲を上下に大きく広げて、ドアの設置条件を緩和することができた。


 ところで、巷には村人無限増殖や製鉄所の作成動画が溢れていて、いくつか見てみたけれど、率直に言ってほとんどがゴミだった。 私の目的に合致しないからではなく、動画製作者が施設の動作原理を理解していないからだ。 つまり、他所で紹介されていたものを自分でも作ってみた、という動画なんである。

 Wikiを見ながら試行錯誤すれば、こうやって自分なりのものが作れるようになる(洗練されているかはさておき)のに、結果が出るからと他人の作品を真似るだけでは、マインクラフトのようなゲームをやる値打ちは半減すると思うのだが、普通はこんなものなのだろうか。
スポンサーサイト