2019年8月30日金曜日

Realms: 回路簡単な天空経験値トラップ

どうも。ころすけです。

今回は天空経験値トラップを作ろうと思います。今回のトラップの目的は「あまり遠くに行かなくてもある程度の経験値をある程度の時間で得る」というものです。

今後作るであろうエンダーマン経験値トラップの方がパフォーマンスには優れていると思いますが、その分エンドまで行って、更に本島から128ブロック(以上)移動してやっと経験値が得られるというものになるので、その行く時間等も含めて考えると、近場で、ある程度の経験値が稼げるトラップも役立つかなぁと言うのが、今回の作成動機です。

過去の冒険でも、同じような考えに基づいた経験値トラップを作りました。そのトラップはそれで良かったのですが、一つ不満だったのは「オブザーバーとディスペンサーを多用する設計で動作が重かった」という点です。

今回はそんな過去の経験に基づき、回路がシンプルで負荷があまりかからなそうな設計としました。

トラップの大まかな考え方

まず、はるか上空(Y=250付近)で一定期間毎に水源のOn/Offを行えるようにします。(今回はトラップドアとディテクターレールの組み合わせでこの仕組みを実現しましたが、ディスペンサーやピストンなどを使ってもOKかと思います。)
そしてはそこからの水流を、全ての湧き層を経由させて最下層まで流すようにします。一つの水流で上から下まですべての層をまかなう形なので、回路的にはかなりシンプルになりました。(上で水流のOn/Offを行う機構のみ)そして湧き層の更に下に、湧き層から落ちてくるMob達を一箇所(中心)に集めるための収集プール(水流で集めます)を作ります。この収集プールで中心に集められたMob達は、そこから更に約20ブロック下の待機場所まで落とされ、最終的にプレイヤーが最後の一撃を与える、というようなものとします。

湧き層の形と設置位置

各湧き層は上下方向2ブロックの空間をあけて設置しますが、偶数番目と奇数番目で設置位置が異なるように設置します。以下に湧き層の設置に関する参考図を示します。

湧き層の形状ですが、中心ブロックから水流がちょうど届く距離(中心から7ブロック先まで届く)の菱形のような形状(この手のトラップでよく見られる形状)にします。ここでひし形の頂点の一箇所だけはブロックを設置せずに空間にしておきます。(以下のピンクの部分)これによりその部分から更に下の層へ水流が落ちて行く事になります。

一つ下の層では、この水が落ちてくる場所を中心として同じように菱形の湧き層を作ります。そして今回は先程とはちょうど反対側の頂点を空間としてあけておいて、そちらがわから更に下位層へ水が流れて行くようにします。あとはこのパターンの繰り返しで作りたいだけの層を作るというような感じでやりました。

補足1:最上層(上から数えて一層目)及びそれ以下の(上から数えて)偶数番目の層は上述の水流On/Offの機構で上空から落ちてくる水流の位置が中心となります。
補足2:最下層の菱形だけは頂点部分を空間にはせず、水流がそれより下に流れて行かないようにします。

収集プール

一番下の湧き層の更に下には、水流を利用して、各層の端から落ちてきたMob達を受け止め、中心部に集めるプールのような層を作ります。中心部分には3x3の穴をあけておき、そこからMob達を待機場所まで落下させるようにします。待機場所では落下ダメージにより瀕死(にある程度近い)状態のMob達をプレイヤーがKillするという感じの設計としました。

待機場所

待機場所は収集プールから18ブロック下にMobが落下するような高度に作りました。なぜ18ブロックかというと、できればプレイヤーKillの対象に蜘蛛も入れたかったというのがあります。今回のトラップでは蜘蛛もある程度落ちてきますが、(他のMobではOKな)20ブロック以上の落差にしてしまうと即時死んでしまいます。これは蜘蛛が落ちてくるMobの中で最も体力がない(体力=16, 例えばクリーパーなどは体力=20)からなのですが、即時死んでしまった場合には今回のトラップの主目的であるところの経験値が全く得られないという事になってしまいます。それを防ぐ落差ということで18ブロックとしました。(その分体力のあるウィッチなどは一発でKillできないというようなデメリットも出てきてしまいますが、それはまぁそれでOKとしました)

待機場所のMobが落ちてくる部分(3x3)は当初下付きブロックを設置してそのすぐ下にホッパーで一応アイテムも集められる仕組みを設置しました。更に3x3のエリアの外周はブロックで囲って、プレイヤーからはMob達の足だけが見えて、そこを攻撃するような感じに作っていました。

「当初」と書いたのは、実はこの仕組では問題がある事がわかったからですなのですが、結局最終的には下付きハーフブロックの代わりにエンチャントテーブルを使い、更に外周ブロックもすべて黒曜石で作るようにしました。察しが付くかもしれませんが、「問題」と言うのはクリーパーの爆発です。どうもクリーパーはプレイヤーが関与していない状況下でも、Mob同士の小競り合いで勝手に爆発してしまうパターンがあるようです。今回のトラップの作成&テスト過程でこれが起こってしまって大変でした。クリーパーが爆発すると、上からどんどん落ちてくるMobが容赦なく攻撃してくる事になるので、サバイバルでやっている身としては、かなりの「おおごと」になります。修復を行う際にも、Mobがどんどん落ちてくる状況下では無理なので、まずはその場を離れて(オーバーワールドで遠くまで離れて)Mob達をデスポーンさせて、今度はネザー経由でここに戻ってきて、上からMobが落ちてくる前に3x3の穴を土ブロックで一時的に塞ぐようにして、それからやっと修復作業をする、というような事になってとても面倒でした。

そんなこともあったのでいろいろ調べて、最終的にエンチャントテーブルを使う事に決めました。調べてみるとエンチャントテーブルは今回の目的にピッタリのいくつかの特性を備えていました。
  • クリーパーの爆発では壊れない。非常に爆破耐性が高い。
  • 高さが1mに満たないので隙間からMobの足を攻撃できる
  • (高さが1mに満たないので)真下に設置した通常のホッパーでアイテムを吸い取れる
唯一のデメリットはコストです。エンチャントテーブル1個に付きダイヤが2個必要なので、今回結局18個(3x3x2)のダイヤを消費することとなりました。

待機場所の高度

前述のとおり待機場所は収集プールから18ブロック程度下に設置する事になるのですが、(できることならば)周辺の湧き潰しが楽になるような高度(Y値)に設置したいところです。例えば地上から128ブロック上空(例えばY=200付近)に待機場所を作れば周辺の湧き潰しはほぼいらなくなります。しかしそんな高度に待機場所を設置するとなると、その更に上に設置することになる湧き層をあまり設置できない状況(実質10層も取れない状況)となってしまいます。

そこで、まずこのトラップを作るバイオームを深海バイオームにすることを決めました。他のバイオームよりは低い高度に待機場所を作れるからというのがその理由です。例えば深海の底がY=35付近であったとすると(そして近場に陸地が無いと仮定すると)待機場所をY=160付近まで下げても湧き潰しはほんとんどいらない状況のはずです。(ドラウンドはもともとあまりスポーンしないので今回考慮外)

過去の経験から湧き層はある程度の数作らないとまともな経験値トラップにはならないと考えていました。なるべく多くの層を確保したいという気持ちがあったこともあり、プラニング段階で、待機場所をY=140程度にしようと決めてしまいました。(この時点では後で海底の下に発見する事になる廃坑の事は知る由もありません…)待機場所がY=140付近ならば湧き層は30層以上は確保できるかなぁというざっくりとした考えだけで決めた感じです。そして、前回の冒険で作った経験値トラップが60層あってまぁまぁの性能だった事も考慮して、今回はせめて同等かそれ以上を目指すことにしました。そして出した結論は、この同じセット(1セット=はるか上空の水流On/Off機構+30層)を複数作るというものです。いろいろ考えて4セット作る遠大な(しかしかなりアバウトな)計画を立てました。

作業

アバウトな計画のもと、実際の作業をはじめました。作業順序としては、まずはるか上空の水流On/Offの機構を(4つ)作るところから始めました。

ディスペンサーを4つ設置してそれらをディテクターレールでOn/Offするように線路を敷きました。

トロッコを動かしてから下に降りて見上げると、以下の画像のように一定時間ごとに水柱が落ちてきます。

その後、落ちてくる水の位置を確認しながら収集プール部分をまず作りました。真ん中のフェンスゲート部分(3x3)からMobを更にしたの待機場所付近まで落とす予定です。

上からは水が定期的に落ちてくるので、位置の確認は楽です。

収集プールの形状は以下のようにして、今回設置する4セットの湧き層から落ちてくるMob達が全て中心のフェンスゲートの場所に集まるようにしました。
適宜水源を設置して、収集プール部分は最終的に以下のようになりました。(外側の枠は下付きのハーフブロックです。ガラスなどMobがわかないブロックでもOKかと思います。)

その後は収集プールから18ブロック程度下の待機場所までの柱状の囲いとMobをやっつける部分などを作りました。

そしてまずは湧き層を2層だけ作ります。上から落ちてくる水の位置を確認しながら位置決めを行いました。

それ(2層だけ湧き層を作るという事)を4セット全てについて行いました。2層だけ作ったのは、位置関係とか動作に問題がないか予め確認しておきたいと思ったからです。

で、位置を確認してみると案の定というか、不具合が見つかりました。4セットの位置関係が近すぎて蜘蛛がその隙間に引っかかってしまうことが判明しました。(初期段階で確認しておいて正解でした)

面倒ですが、天空まで行って、水流発生部分に調整をして、位置関係を1ブロックづつ離すようにしました。更に作ったばかりの2層づつの湧き層もそれに合わせて移動しました。

この時点での待機場所の作りは、以下のような感じで丸石と丸石のハーフブロックでMobの足を狙うというようなものでした。(前述のとおり、この部分はクリーパーの意図しない爆発に耐えられないことがわかって後からエンチャントテーブルと黒曜石でより堅固なものに作り変えます)

あとは湧き層を増やしながら性能のテスト(夜間のみ)をし、また作業をしてはテストを繰り返して最終的に4セット全てについて天空の水源発生部分の下まで湧き層を作りました。(なかなか大変でした。)

そして、最後に昼間も稼働させるため、水源を発生させる天空の装置の更に上に、大きな屋根を作りました。
屋根は以下のような感じで、全部下付きハーフブロックで作りました。(コスト削減のため)
それなりに大きい屋根なので(ウィッチトラップのものよりもだいぶ大きい)そこそこ大変でしたが、何とか完成までこぎつけました!

その後テストでクリーパーの爆発がウィッチ等の他のMobとの小競り合いでまれに発生することがわかりました。クリーパーが爆発すると上からどんどん降ってくるMob達があっという間にそのあたりに散乱する状況となって、とても大変な事になります。(ました。)サバイバルで難易度もノーマルを自分に課しているので、修復には結構な手間がかかりました。

そんなこともあったので、最終的にプレイヤーがMobを斬りつける部分は以下のようにエンチャントテーブルと黒曜石を用いた堅固なもにしました。(ダイヤ18個消費)

これでクリーパーの爆発でもびくともしないようになりました。コストは高かったのですが、上述のとおりエンチャントテーブルは高さが1mに満たないため、隙間からMobの足が狙えて且つ真下に設置するホッパーにもアイテムが吸い取られるという理想的な振る舞いをしてくれています。

以下に天空の水源発生部分と大屋根のスクショを載せておきます。
このトラップ、作ってから気づいたのですが、エンダーマンも良く湧きます。(湧き層の上が3ブロック以上空いてる部分も多くあるため)しかしエンダーマン対策は特にしていない(できていない)ので彼らはこんな感じに生き延びてしまうようです。

待機場所にもエンダーマンがやってきます。待機場所のエンダーマンは手を下さないといつまでもデスポーンしない(近距離であるため)ので、待機場所から落とすかもしくはやっつけています。現状だとまだエンダーパールを集めないといけない冒険初期段階なので、まぁありがたくキルさせてもらっています。

待機場所から収集プールを見上げた時のスクショです。

こんな感じで、隙間からMobを成敗します。

性能

性能を測ってみました。測り方は結構アバウトなのですが、まず経験値をゼロにしました。(高所から飛び降りて) そしてこのトラップでレベル30になるまでの時間を計測しました。(2回)どちらもほぼ3分という結果だったので、だいたいそんなもんなんだと思います。湧き層の数は前回よりも多いのですが、性能は前回とあまり変わりません。「負荷」という面では今回の方がはるかに軽い感じです。正直、もう少し良い性能が出てほしかった気持ちはありますが、致し方ありません…。

まぁ、とは言っても、修繕目的で近場で使えるという点では十分使える性能なので、今後の冒険で役立ってくれる事とは思います。



2019年8月19日月曜日

検証: ウィッチトラップで大きな屋根 v.s.箱型の性能差

どうも。ころすけです。

ウィッチトラップで大きな屋根を作るのは一般的ですが、これは少しでもスポーンの確率をあげるためです。 しかしウィッチは暗ければスポーンするので、トラップを箱型にして中を真っ暗にしてしまえば、わざわざ大きな屋根を構築しなくても、トラップ自体はある程度ちゃんと稼働します。

前々から一度試してみたかった事なのですが、この箱型にした場合と大きな屋根にした場合で、実際にどれくらいの性能差が出るのか、これを今回は検証しました。

検証方法はこの間Realmsで作ったウィッチトラップのワールドを、手元のPCに2セットコピーして、2パターン共に手元のPCで(つまりRealmsではなくシングルプレイで)検証しました。2セットのうち1個はそのまま(つまり大きな屋根バージョン)で、もう1個を箱型に変更してそれぞれ20分計測してみました。

大きな屋根の場合

結果は以下の通りでした。
20分の計測で1265アイテムでした。換算すると毎時3795アイテムという結果です。(前回3時間半かけて検証した時(毎時間3890アイテム)と誤差がありますが、まぁこんなものなのでしょう…)

箱型の場合

結果は以下の通りでした。
20分の計測で1120アイテムでした。換算すると毎時3360アイテムという結果でした。

結果のまとめ

20分という短い時間なので誤差も大きいかとは思いますが、それでもやはりある程度の差があることがわかりました。今回の数値だけでみると、箱型を大きな屋根にすると1割程度の効率アップが見込めるという事かと思います。

昔は大きな屋根の形がよく理解できていなくて、その作成も結構面倒だなぁと感じていましたが、なれてしまえば簡単にできるので、1割もアップするなら十分やる価値ありかなと個人的には思います。

Realms: 回路簡単、高効率ウィッチトラップ(毎時3890アイテム)

どうも。ころすけです。

今回の冒険(1.14が出てからRealmsで始めた冒険)でもウィッチトラップを作ろうと思います。過去の冒険でもウィッチトラップは作っているのですが、今回はそれらよりも良い性能のものを目指します。

 前回=毎時2000アイテム
 前々回=毎時1700アイテム

今回、性能をあげるために以下を導入してみました。
  1. ふるい式にした(過去のものは水流式)これは水流式の場合、水流が発生している場所でウィッチが(たぶん)スポーンできない状況があるのに対して、ふるい式だとウィッチは常にスポーン可能であるというメリットがあると思ったからです。
  2. ウィッチの処理をトロッコ式(24個のトロッコを同じ場所に設置しておいてそこにウィッチを誘導して処理する方法)にした。(過去のものは水流エレベータで上まで誘導後に落下ダメージを食らわせていた)トロッコ式の方がウィッチがスポーンしてから処理するまでの時間が短いというのがその理由です。
また、「回路が複雑化しなくて作りやすそう」という理由でトロッコとレール(通常レール、パワードレール、ディテクターレール)でふるい部分の制御を行うようにしました。

作成

まず魔女の小屋を見つけました。いくつか候補を探し出した上で、最も湧きつぶしがしやすい(周りがひらけていて高地がない)小屋を選びました。
まずネザーゲートを小屋近くに整備しました。
条件が良いとは言っても、湧きつぶしは避けては通れません。 結構な時間をかけて周りを水没させて行きました。(あとから振り返るとおそらく全行程の1/3程度の時間をこの作業に費やしました)
ふーっ。やっとこれで良いかなと思える程度の水没が完了しました。
まず一番上の層(小屋の天井のすぐ上)から作りはじめます。各層を作りながら小屋を壊すような感じでやっていきました。
今回はふるい式にするので通常ブロックとソウルサンドを代わり替わりに設置して行きました。
以下のように7x9の湧きエリアの長辺方向に列が並ぶように設置しました。
2ブロックの空間を開けて真ん中の湧き層も同じように作っていきます。
その過程で、小屋も壊します。
2層目ができました。
同様に3層目も作りました。今回の小屋は一番下の湧き層がY=63(水面と同じ)でした。(参考:前回もY=63, 前々回はY=64でした。→ 魔女の小屋のY値は固定で決まっているわけではない。)
次に2ブロックあけて、天井も作ります。
こんな感じです。(実は後で気づいてこの天井のブロックは下付きハーフブロックで置き換えました。ですので、最初から下付きハーフブロックで作ってもOKと思います)

ここからの説明&スクショは少しわかりにくいかもしれないので、最初に参考図(平面図)を示します。

今回、ふるいを動かすための制御をディテクターレールで行います。そのためにまず線路の土台となるブロックを設置します。土台は7x9の湧きエリアを中心に、長辺の内側は1ブロックの空間をあけ、短辺の内側は2ブロックの空間をあけて設置します。(平面図及び以下参照)
3層全部についてこれを行います。
次にピストン(粘着ではない通常のもの)を2ブロック開けた側の線路の土台に設置して行きます。(両隅はあけておく)
こんな感じです。
これを以下のように両方向について行います。
同じことをすべての層について行います。
次に、先ほど設置した線路の土台にレールを設置して行きます。ピストンの後ろ側にはディテクターレール、4つの角には通常レール、その他にはパワードレールを設置します。
一層あたり、ディテクターレールが7x2=14個、通常レールが4個、パワードレールが30個必要な計算です。パワードレールの確保には、3層で金インゴットが90個必要な計算なので冒険開始直後だと少々大変かもしれません。(パワードレールはもう少し減らしても多分大丈夫(未検証)だと思います。)
これをすべての層に対して同じように行います。
次に各層の天井にトラップドアを設置して行きます。(トラップドアは1層あたり7x9=63個必要です) 以下のように天井の各ブロックの端に設置するようにします。
以下のようになります。
これを右クリックで以下のように立てて行きます。
全部のトラップドアを以下のように同じ方向(ピストンとの位置関係で以下のスクショのような方向)で設置して下さい。このトラップドアがあるおかげで、床がピストンで押された際にウィッチが床の追従して移動してしまわないようにしています。(ウィッチが床に追従して動いてしまうと、「篩い」がうまくいきません)
これを3層全部について行います。
次に以下のようにピストンに接する形で1列追加します。
以下のような感じです。この作業は片側のみ行います。(上記参考平面図の紫の部分です)以下のスクショの手前側のみを設置し、奥のほうに見えているピストンの前には追加をしません。
同じことをすべての層について行います。
次に、すべてのパワードレールにパワーが行きわたるようにします。以下の例ではレバーを適宜設置してそれを行っています。レッドストーンブロック等でもよいかと思います。注意点としては他のMobが湧いてしまわないように作る事があります。(例えば以下のガラスブロックを石ブロックなどで作るのはNG)
以下のようにすべてのパワードレールにパワーを供給します。
これをすべての層について行います。
できました。
ここで念のためにふるいがうまく動いているかトロッコ(各層毎に一台)を動かしてテストしておきます。問題がなければトロッコがぐるぐると回り続けて、湧き層が以下のようにピストンで定期的に動くはずです。
次に長辺方向であいていた部分をガラスブロックでうめます。
更にそのすぐ上にもガラスブロックを設置します。(湧いたウィッチが逃げてしまわないため)
こんな感じでピストンの上にも設置します。(これはピストンの上にはMobが湧いてしまうのを防ぐ意味ために行います)
更に以下のようにもう一列ガラスブロックを設置します。これに関しては先ほど片側一列先ほどのみ追加したブロックの真上及び今回は反対側の同じ位置にもガラスブロックを追加します。(ウィッチが逃げないためのもの)
同じことをすべての層で行います。

次に地下を作っていきます。まず最初に参考図を示します。(以下の参考図でピンクの枠が7x9の湧きエリアを示しています)
地下は一番下の湧き層(7x9)の真下をくりぬきます。(高さ2ブロック)
そして、どちらか一方の短辺に水源を設置します。(これにより水流が反対側の短辺に向かって発生します。)
反対側の短辺を2ブロック掘って、以下のように水路を作ります。
(1ブロック下げただけでも一応稼働はしますが、テストワールドでの検証の結果、ウィッチが引っかかる感じだったので2ブロック下げました。)
この水路にも水源を設置して、ウィッチを1箇所(7x9の湧きエリアの隅っこの位置ー参考図参照)にあつめます。集める場所と反対側の水路に横穴を2ブロック分掘って(参考図参照)そこに水源を設置します。これによって看板など余計なものを設置しないでも水流がちょうど良い長さで収まるようにします。
上記の確認方法として、以下のように隅一か所だけが水に埋まっていない状況になっていればOKです。(この一箇所にウィッチが集まる)
次にこの隅っこのブロックを3ブロック掘ります。
以下のような感じ。
そしてそこにホッパーを設置して、チェストなどドロップを集める部分に接続します。
ホッパーの上にレールを敷きます。また、次のステップで設置するトロッコが動いてしまうことを防止する意味で、線路の両端にブロックを起きます。(以下のスクショでは左側がガラス、右側が石ブロックとなっています)
線路の上にトロッコを24個置きます。トロッコを重ねて設置するには、以下のスクショのように、線路部分にカーソルをあてて、次々とトロッコを設置すればうまくできます。
24個のトロッコを設置し終えたら、ウィッチから攻撃を受けないように(及びトロッコが移動しないように)周囲を囲います。
次に、トロッコが設置されている高さのY値を調べます。(例えば以下のように...)
今回はY=56でした。待機場所はトロッコの真上の天空にしますが、待機場所の高さはここで調べたY値+127とします。(もしくはそれ以下でも良いですがその分、より広い範囲の沸きつぶしが必要となるので127で良いと思います。また待機場所をトロッコの真上にしない場合は127よりも小さな値として、待機場所からトロッコまでの距離が128未満であるようにします。)
今回待機高度は56+127=183とするので、そこまでの水流エレベータを作成しました。
溶岩とバケツで作りました。(参考記事:小ネタ:あっという間に水流エレベーターを作成する方法
こんな感じで、すぐに出来上がりました。
そしてトロッコの真上の座標に待機場所を作りました。
夜間放置してもOKなようにファントム対策のトラップドアを念の為つけておきました。
当初フルブロックで作ってしまっていた天井を下付きハーフブロックに置き換えました。(これは天井の上に他のMobが湧いてしまうことを防ぐためにそうしていますが、フルブロックのままで松明等で湧き潰ししてもOKと思います)
後は大きな屋根を作って湧き層が真っ暗になるようにします。
湧きエリアの隅から各方向へ15ブロック(すべて下付きブロックで)伸ばしました。
そしてあとは間を埋めて行きます。
斜め方向も埋めていけば...
完成です。
待機場所から見るとこんな感じです。
後はドロップ収集場所も少し拡張して、ある程度の時間放置しても大丈夫なようにしました。
これでひとまず完成です。
後はパフォーマンスを測ります。(Realmsなのでノートブロックを鳴らしながら)3時間半放置しました。

その結果は以下のとおりでした。
 レッドストーン 1766個
 グロウストーンダスト 1726個
 火薬 1770個
 棒 3431個
 砂糖 1628個
 ガラス瓶 1546個
 クモの目 1747個
合計取得アイテム数  13614個(3時間30分)
 ≒ 毎時 3890アイテム
となりました。(以下スクショです)
チェストその1

チェストその2

チェストその3

チェストその4

接続ホッパーその1

接続ホッパーその2

接続ホッパーその3
パフォーマンスには満足できました。また今回は今までで作成工程自体も一番楽でした。