先日は、
■ 配布ワールドを作る場合(2) 【 マインクラフト統合版1.16.40 】
にて、配布ワールドを作る場合に指定したほうがいい内容について触れました。そして、その中でバリアブロックについて書きました。
ワ ールドの選択を 【 古い 】 にした場合
この場合は、ネザーが使えないのですが、読み込み範囲が狭いので最初に読み込むと再読み込みが発生しません。まず、
のような感じにしてワールドを作ります。すると、
のような小さなワールドが出来上がります。コマンドブロックでアドベンチャーモードの指定をしようとしたのですが、古いだとうまくいきませんでした。
バ リアブロックを作る
【 無限 】 と 【 フラット 】 で作った時に移動制限を付けたい場合、バリアブロックを用意します。
のように
【 /give @s barrier 】
と入力すると、バリアブロックを得ることができます。プレイをしていたら、難易度がノーマルになっていたので水中で貝掘りに勤しむ海洋地元民さんに遭遇しました。
配布ワールドなどで敵対的MOBを出したくない場合、難易度設定で難易度をピースにすると敵対的MOBはスポーンしなくなります。
バリアブロックですが、
のように配置できるのですが、移動範囲を指定する場合、
のように周囲を囲むことになります。この場合、/fillコマンドやストラクチャーブロックを使うことになりますが、次の1.16.100ではストラクチャーブロックの機能をコマンドで実行できるので、数量制限がかからない状態でブロックの総数の多い構造物を空間ごとコピーできるようになります。この作業をワールドの範囲で指定する場合だと、/fillが向いていそうですが、こんな感じで、移動制限をかけることで、プレイヤーを特定の範囲の外に出れないようにする事ができます。ちなみに、ブロックを持ち変えるとバリアブロックは見えなくなるので、
のようになります。この状態で、
のようにすると、TNTでも破壊する事ができなくなります。サバイバルでは、
のように見えますが、こうするとサバイバルでも破壊する事ができない建造物を作る事ができます。その為、建築をした場合だと、建造物の外周をどの程度設けるのかでも変わってきますが、
のように建造物の周辺に移動可能な範囲を設けておくと、移動範囲に制約をかけた状態で外から建造物を見るような作りにすることもできます。
レッドストーンやコマンドブロックには実行可能な範囲が決まっているので、それを超えると動かなくなります。その為、アスレチックのワールドなどで同じ指定を同じように動かしたい場合だと、コマンドブロックの有効範囲外でもそれが実行できるようにしておく必要があります。
先日は、移動範囲やワールド内のブロックを破壊不能にする方法について書きましたが、今回は、時間凍結の影響を受けなくする方法やコマンドブロックについて書こうかなと思きます。
時 間凍結対象外の空間を広げる
例えば、タイムを計測するような条件だと、途中でコマンドブロックの効果が切れると問題があるので、そうならないように時間凍結の影響を回避する必要があります。統合版だと、特定の範囲をプレイヤーの周辺と全く同じ挙動になる空間を用意できます。この特殊な仕様の空間が 【 ティック領域 】 です。
テ ィック領域
統合版限定ですが、 【 ティック領域 】 という特殊な空間を作れる仕様になっており、コマンドを使う事で、プレイヤーの周囲と同じ状態で【 時間凍結の対象外 】 にすることができます。
また、 【 最大100チャンク範囲 】 の空間を指定でき、単体ではなく、 【 最大10カ所 】 まで指定できます。
そして、ティック領域ですが、 【 ネザーやエンドにも配置可能 】 となっています。
ティック領域は、指定後は除外しない限りその場所で動くのですが、コマンドブロックで指定したほうが確実なので、コマンドブロックを用いて指定します。
コ マンドブロックを使う
コマンドブロックはワールド内で、レッドストーン信号や自動でコマンドを実行するためのブロックになります。コマンドブロックは、バリアブロック同様にクリエイティブでしか入手できないので、
【 /give @s command_block 】
と入力すると、
のようにコマンドブロックを得ることができます。そして、これを
のように反復にすると、
のように色が変わります。これは、実装したコマンドを反復して実行できる物になりますが、これを用いることで、継続してコマンドを実行する事ができます。
テ ィック領域の設定
コマンドブロックを開いて、
【 /tikingarea add ~~~ ~~~ test 】
のように打ち込みます。/tickingareaコマンドですが、
【 /tikingarea add 始点 終点 エリアの名前 】
で追加できます。addは追加する時に使用しますが、
■ list : 現在追加しているティック領域のリストを表示
■ remove : 指定したティック領域を削除
することができます。配布ワールドの場合、範囲を決めて使うので、Removeは使わないと思いますが、こう言った機能が存在しています。
コマンドブロックでは、長いコマンドを描くことがありますが、その場合、コマンドの入力部の右側にある
の + のボタンをクリックすると入力部分が拡大されます。
戻る時には左にある ー をクリックすると元の画面に戻れます。
この状態で、
のように 【 常にアクティブ 】 にすると
のようにティック領域の指定が行われます。そして、がぞうのようにコマンドブロックを配置すると、連続して1ゲームティックのタイミングで信号が送られるので、
【 /title @a title test 】
と言うコマンドを入力します。これが、画面内にタイトルとして文字を表示するコマンドになりますが、この状態でゲームに戻ると、
のような感じで、物凄い速度で点滅します。点滅が速過ぎて半透明に見えると思いますが、動作確認用の回路を作る事もできます。
タイトルの文字ですが、色やフォントの選択もできるので表示したい文字列を指定できるので、レッドストーン回路を用いることで、タイミングを合わせて画面内に表示したいものを表示していく事ができます。
タ イミングをコントロールする
コマンドブロックはレッドストーン信号で動作するので、回路を組む事で制御する事ができます。レッドストーン回路の場合、レッドストーンで動くものに限定されていましたが、コマンドブロックの場合、コマンドで制御できる物を論理演算回路を用いて制御することもできます。
先ほどは、テストの表示が1ゲームティックで表示されていましたが、タイミングのコントロールをする場合、レッドストーン回路で周期をコントロールする個tができます。レッドストーンティックはゲームティックの2倍の1msなので回路を通す事で更新速度を遅くすることができます。例えば、
のようなクロック回路を作った場合、遅延を入れる事が出来るので、
のようにコマンドブロックを用意してこのブロックにはなにもコマンドを入れずにつないで、更に、コマンドブロックを追加して、
のようにチェーン指定を行い、先ほどのコマンドを記述します。そして、レッドストーン信号が必要な状態にして、条件を無条件にすると、
のようにTESTの表示が先ほどよりも緩やかな状態でひょじされるようになります。ティック領域が有効な場合、ワールド内のどこでもコマンドが実行され散るはずですが、実際に、このワールドの両端に移動してみると、
の世に動作しており、このワールドの範囲内をカバーしていることが確認できました。その為、このサイズをフルに使って、レッドストーンやコマンドブロックを使った配布ワールドを作る場合にはシミュレーション距離の制約を受けない状態でワールドを作る事ができます。当然、これは、 【 無限 】 や 【 フラット 】 でワールドを作った場合も同じですが、この二つの場合、 【 ネザー 】 や 【 エンド 】 にもティック領域を作る事ができますから、移動先を確認しておいていどうできるようにしておけば、特殊な挙動をするコマンドをネザーやエンドでも使用する事が可能になります。
移 動を制御する
マイクラはオープンワールドンゲームですが、こう言ったスタイルのゲームだと、長距離の移動が現実と同じように長時間かかるので、その対策が必要になります。この場合、サバイバルのワールドでシングルプレイをする場合だと、 【 ネザーポータルを作る 】 と言う選択肢があります。最初の入り口は、オーバーワールド空になりますが、その後のネザーポータルの作成は、ネザー川からここなうことになります。そうする事で、ネザーポータルの干渉を回避する事ができます。
配布ワールドを作る場合、こうしたショートカットを作るのにネザーゲートを二回通るとテンポが悪くなるので、一気に移動できる仕組みを作るとテンポよくプレイを行う事ができます。こうした作りは、シーン単位で行き来をするような作りのゲームの移動方法になりますが、そう言った 【 まったく別の場所に移動できる作り 】 を実装する事ができます。こうした機能を実装する場合、/tpコマンドを使用します。
移 動の用に/tpコマンドを使う
移動をする場合、自動で移動と言う訳には行きませんから、トリガーとなる物を要しておく必要があります。その場合、
のように判定となる物を用意しておき、その信号によってコマンドブロックを動かすという方法があります。この構造だと、レッドストーン回路と全く同じなので、信号が出たら動くという仕様になっていますが、
【 /tp @a 125 72 70 】
と入力しておきます。この時の@aがセレクタなのでコマンドで移送される対象で、その後の数値が 【 X , Y , Z 】 の座標になります。この座標は、最初に居た場所の座標なので、感圧版を踏むと、
のように戻って来れます。これと同じものを作って、
のように先ほどの場所の座標を指定して、
の感圧版を踏むと、
のように先ほどの場所に戻ってくることができます。この座標を最初に決めておいて、その場所を基準に周辺の装飾を行って、移動ゲートのような作りにしておくと、特殊な移送用のゲートをワールド内に実装する事ができます。
この時のコマンドブロックを動かすための手段はいろいろありますが、こうすることで、シーンが切り替わるような作りにすることができます。今回は意図的に 【 古い 】 を選んで行っていますが、この小さなワールドの場合、描画距離を大きくしておくと最初の読み込みですべてを読み込めるはずなので、ゲームの演出で、スタート時に意図的にプレイヤーを一回転させると、ワールドの全てを読み込むことができます。そうなると、移動した後のワールドの生成が派生しないので、/tpコマンドでの移動のワールド生成のラグが発生しなくなります。
回 回用に/tpコマンドを使う
/tpコマンドは6DoFの設定が可能なので、軸移動と軸回転の指定ができます。構造的には、
【 /tp セレクタ 軸移動 軸回転 】
と言う構文になるので、数値の指定で回転をコントロールできます。例えば、
のような周期の長めなクロック回路を作ってコマンドブロックと繋ぎ、
【 /tp @p ~~~ ~10~ 】
のようなコマンドを記述して実行すると、周辺のプレイヤーが同時に回転し始めます。
のように立っていると、座標変動と角度の変更が発生するので、
のように少しずつ回転していきます。
/tpコマンドは一瞬居なくなって、違う座標に移動するのですが移動した先でのプレイヤーの向きも指定できるようになっています。
マ イクラのスポーン地点
マイクラのスポーン地点ですが、通常は、X軸とY軸が0の場所にスポーンするのですが、陸地がない場合だとスポーン可能なブロックがある場所を検索し手スポーンする事になります。今回は、かなり遠い場所にスポーンしていましたが、
のように原点が海の場合だと、そこから陸地を検索してスポーン可能な場所を確定し、そこがスポーン地点にしてされます。
M inecraftのプレイ環境
■ Core i5 650
■ H55M-Pro
■ DDR 1333 2GBx2+1GBx2(DUAL CH)
■ Quadro K620(PCI Express x16 【GEN2動作】)
■ SATA HDD
■ WINDOWS 10 x64 (20H2)
■ MINECRAFT BE 1.16.40
【 使用したソフト 】
■ GIMP 2.10.12