配布マップのためのコマンド技法(チャンクローダー)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

配布マップのためのコマンド技法(チャンクローダー)

2016-08-24 22:23
    ◎アマスタを使ったチャンクローダー(検証済み)
    ●用意する物(コマブロの中身)
    ・/summon ArmorStand ~ ~ ~ {Tags:["load"],NoGravity:1,Marker:1,Invulnerable:1}
    ※ 特にNBTタグはいらないんだけどね
    ・/spreadplayers <x> <z> 0 1 true @e[tag=load]
    ※ xとzは読み込ませたい座標
    ・/tp @e[tag=load] <setworldspawnで設定した座標>

    これだけ。

    ●手順
    0) ワールドスポーン(setworldspawnで設定したところ)に行きます
    1) アマスタ召喚します
    2) リピート( or クロック)で /spreadplayers → /tp の順番で動くようにします
    3) 読み込みます
    4) 用が済んだらアマスタをkill
    *tips
    /spreadplayersをやった後、20秒くらいは読み込み続けてます。
    /tpで元の位置に戻して、永続的に戻してますが、
    もちろん読み込む範囲が広がってるので、重くなります。

    ●複数チャンクを読み込む方法
    ・spreadplayers の座標を読み込むチャンクの真ん中へ
    ・召喚数を増やして散開距離(それぞれのアマスタの距離)を16(1チャンク分)にする
    ・ギリギリで設定すると失敗することもたまにあるので、なんどかリピートする

    ちゃんと計算(アマスタの数やspreadの割合)すれば、
    200×200の範囲全てを3秒以内に全部読み込みます。

    ●参考動画(英語)
    1chunk版 : https://www.youtube.com/watch?v=O8dv9P49cKk
    Nchunk版 : https://www.youtube.com/watch?v=bqsSHABnUDc




    ◎矢を使ったチャンクローダー(実際に利用はまだないけど検証済み)
    ●用意するもの(コマブロの中身)
    ・/summon Arrow ~ ~1 ~ {xTile:<x>,yTile:0,zTile:<z>,NoGravity:1}
    ※ xとzは読み込ませたい座標

    ●手順
    0) ワールドスポーン(setworldspawnで設定したところ)に行きます
    1) インパルスのコマンドブロックにコマンドを入れます
    2) 召還(実行)します
    ※ 消えると読み込まなくなります

    ●複数チャンク読み込む方法
    ・コマブロの中身を下のコマンドに入れ替える

    ・/summon Arrow ~ ~1 ~ {xTile:<x>,yTile:0,zTile:<z>,NoGravity:1,Passengers:[
    {id:"Arrow",xTile:<x>,yTile:0,zTile:<z>,NoGravity:1},
    {id:"Arrow",xTile:<x>,yTile:0,zTile:<z>,NoGravity:1}
    ]}
    ※エンティティ数が莫大な量になるため、ワールドスポーンを必ず描画範囲外になるように
    ※ 200くらい召喚して、描画範囲内にいたら1100fps → 350fpsまで落ちた
      描画範囲外なら1100fpsまで戻った

    ●ワールドスポーンにあるチャンクローダーから
     別の遠い場所にあるチャンクローダーを読み込んだ場合
    → ワールドスポーンにあるやつ or 今いる描画範囲内じゃないと
      テレポートして20秒位で使えなくなりました

    -----

    [TOPへ戻る]
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。