メインコンテンツまでスキップ

Custom Biome

独自の色、霧、空、気候を持つカスタムバイオーム。塗り分けも、特定のプレイヤーだけへの表示も可能。

無料v0.9ワールドと建築
必要TypeWriter0.9Quest extensionPacketEventsWorldEdit任意PlaceholderAPI任意

概要​

Custom Biome を使うと、TypeWriter の Web パネルから独自のバイオームを作成できます。草、葉、水、空、霧の色、雲と太陽の設定、気温、降水量を設定できます。新しいバイオームはバニラのベースバイオームを元に作られるため、モブのスポーン、地物、その他のプロパティは継承され、変更したい部分だけを上書きします。

バイオームの使い方は 2 通りあります。1 つ目は、ブロック半径、WorldEdit の選択範囲、またはキャプチャした領域に対してワールドに塗り込む方法で、後からスナップショットを使って元のバイオームに戻せます。2 つ目は、プレイヤーごとのオーバーレイで、1 人のプレイヤーまたはオーディエンスにだけ表示する方法です。この場合、ワールドは変更されず、他の誰にも変化は見えません。汚染された森がクエスト中だけ現れる、といった演出ができます。

機能​

  • バイオーム定義 — 色(草、葉、乾燥した葉、水、空、霧、水中の霧、雲、空の光、日の出/日没)、霧と雲の距離、太陽・月・星の設定、気温、降水量。
  • プリセット — 複数のバイオーム間でパレットを共有し、異なる部分だけを上書きできます。
  • ライブ登録 — 可能な場合、バイオームはサーバーのレジストリに注入され、再起動後も残るよう、生成されたデータパックにも書き込まれます。
  • ワールドへの塗り込み — プレイヤーの周囲または領域全体にバイオームを適用します。元に戻すためのスナップショットも任意で作れます。
  • プレイヤーごとのオーバーレイ — アクション、オーディエンス、またはシネマティックを通じて、1 人のプレイヤーまたはオーディエンスにバイオームを表示します。
  • 出入りイベント — プレイヤーがバイオームに入ったとき、または出たときにエントリを発動します。
  • 発見記録 — 各プレイヤーが訪れたバイオームを記録し、ファクトやクエストで利用できます。
  • ファクト、変数、プレースホルダー — 現在のバイオーム、そのプロパティ、発見数を読み取れます。
  • オペレーター用コマンド — バイオームの一覧表示、プレイヤーのいる場所のバイオームの確認、塗り込み、更新、領域のキャプチャ。
  • Folia 対応 — 書き込みは、各チャンクを所有するリージョンでスケジュールされます。

インストール​

  1. PacketEvents をインストールします。オーバーレイとチャンクの更新はこれを使って送信されます。ない場合、オーバーレイは無効になります。
  2. TypeWriter の Quest 拡張機能を、Web パネルの Extensions タブからインストールします(Objective が使用します)。
  3. 任意: ゲーム内で作成した選択範囲を塗り込めるように、WorldEdit または FastAsyncWorldEdit をインストールします。
  4. 任意: 下記のプレースホルダーを使うには、PlaceholderAPI をインストールします。
  5. Custom Biome の JAR を plugins/Typewriter/extensions/ に置き、サーバーを再起動します。

バイオーム定義は、ワールドの datapacks フォルダにある typewriter_custom_biomes という名前のデータパックに書き込まれます。

注記

視覚的な属性(霧の距離、雲の高さ、太陽・月・星の設定)は、ソース上で Minecraft 1.21.11 以降向けと記されています。それより古いバージョンでは、色と気候のみが適用されます。

はじめに​

紫色の森を作り、クエストのステップでプレイヤーに表示する手順です。

  1. TypeWriter の Web パネルで manifest ページを開き、Custom Biome Definition エントリを追加します。
  2. biomeId(小文字とアンダースコア。例: corrupted_forest)を設定し、namespace は typewriter のままにします。baseBiome を minecraft:forest に設定します。
  3. 変更したい色を 16 進数で入力します。例: grassColor に #6a3d9a、foliageColor に #4b2a73。空のフィールドはベースバイオームから継承されます。
  4. パブリッシュしたら、ゲーム内で /tw biome list を実行し、バイオームが有効になっていることを確認します。再起動待ちと表示されている場合は、サーバーを再起動してください。
  5. manifest ページで Biome Overlay Audience を追加し、biome で定義を選び、クエストのステップに対応するオーディエンスの下に配置します。プレイヤーはオーディエンスにいる間そのバイオームを見ることができ、オーディエンスから出ると本来のバイオームに戻ります(restoreOnExit)。
  6. 特定のゾーンに限定するには、cornerA と cornerB を設定するか、ゲーム内で WorldEdit の選択範囲を作って /tw biome region <entry> を実行し、コーナーを自動入力します。

ワールド自体を変更するには、アクションシーケンスで Apply Biome または Paint Biome Region を使います。Restore Biome で元に戻したい場合は、塗り込みに snapshotId を付けてください。

ヒント

空と霧が共通のバイオームのグループには、Custom Biome Preset を作成し、各定義の preset で選択します。定義に設定した値はプリセットより優先され、プリセットはベースバイオームより優先されます。

仕組み​

塗り込みはバイオームをワールドデータに書き込むため、全プレイヤーに影響し、再起動後も残ります。オーバーレイはプレイヤーのクライアントにだけ送られます。何も保存されず、オーバーレイを取り除けば本来のバイオームが戻ります。複数のオーバーレイが同じチャンクを覆っている場合は、最後に適用されたものが表示され、それを取り除くと前のものが現れます。

ファクト、変数、プレースホルダーは、デフォルトでプレイヤーが見ているバイオーム(PLAYER_VIEW、オーバーレイを含む)を読み取ります。ワールドが実際に持っているバイオームを読み取るには、ファクトと変数で source を REAL_WORLD に設定します。

設定​

実行時のデータは plugins/Typewriter/custombiome/ に保存されます。

フォルダ内容
discovery/プレイヤーごとに 1 つの JSON ファイル(<uuid>.json)があり、訪れたバイオームを記録しています。
snapshots/snapshotId が設定されているときに、Paint Biome Region が記録したバイオーム。

コマンド​

ルートコマンドは /tw biome で、typewriter.biome が必要です。各サブコマンドにも、それぞれ個別の権限が必要です。

コマンド説明
/tw biomeコマンドの一覧を表示します。
/tw biome listカスタムバイオームを一覧表示し、それぞれが有効か、再起動待ちか、未登録かを示します。
/tw biome info [player]プレイヤーが立っているバイオームの名前、ID、カスタムかどうか、気温、降水量、ベースバイオームを表示します。
/tw biome apply <biome> [radius]自分または対象プレイヤーの周囲に、ブロック単位の半径でバイオームを塗り込みます。
/tw biome refresh [radius]この拡張機能がプレイヤーの近くで塗り込んだチャンクについて、バイオームデータ(半径 1〜16 チャンク)を再送信します。
/tw biome region <entry>WorldEdit の選択範囲を、領域エントリの cornerA と cornerB にコピーします。その後、ページをパブリッシュしてください。

編集可能なテキスト​

/tw biome コマンドがゲーム内に表示するテキストはすべて TypeWriter のスニペットなので、何も再ビルドせずに言い換え、翻訳、色の変更ができます。plugins/Typewriter/snippets.yml を開き、content.custombiome 配下のキーを見つけて値を変更し、/tw reload を実行します。エクステンションは起動時にすべてのスニペットをデフォルトのテキストで登録するため、初回起動後にファイルに表示されます。

テキストは MiniMessage です。テキスト内の {name} は、表に記載された値に置き換えられます。省略したプレースホルダーは単に表示されず、存在しないプレースホルダーはそのまま残ります。PlaceholderAPI のプレースホルダー(%...%)も、コマンドがプレイヤーによって実行された場合に解決されます。短い返信の Typewriter 返信プレフィックス(Typewriter »)だけはエンジン側のもので、これらのスニペットには含まれません。サーバーコンソールのログは英語のままです。

スニペット(content.custombiome. 配下)デフォルトプレースホルダー
command.list.empty<yellow>No custom biomes registered.</yellow>なし
command.list.header<gradient:#00d4ff:#0099ff><b>Custom Biomes ({count})</b></gradient>、前に空行あり{count}
command.list.strategy<dark_gray>Strategy: {strategy}</dark_gray>、後ろに空行あり{strategy}
command.list.strategy_livelive registry injection (reflection)なし
command.list.strategy_unsupportedunsupported ({reason}){reason} (技術的な内容、英語)
command.list.icon_live, icon_waiting, icon_missing• は緑、⚠ は黄、✖ は赤なし
command.list.status_live, status_waiting, status_missingホバーテキスト: Live in the registry, Written to the datapack — needs a restart, Not registeredなし
command.list.entryバイオームごとに 1 行。ホバーテキストとクリックでコピーに対応{icon}, {status}, {name}, {key}, {temperature}, {downfall}
command.list.temperature, command.list.downfall T:{value} と D:{value}(グレー){value}
command.info.headerBiome Info for {player}{player}
command.info.name, id, temperature, downfall, base_biomeName:, ID:, Temperature:, Downfall:, Base Biome:。続けて値が表示されます{value}
command.info.custom_yes, custom_noCustom: Yes と Custom: Noなし
command.help.titleCustom Biome Commandsなし
command.help.list, info, apply, refresh, regionコマンドごとに 1 行のヘルプなし
command.region.no_selectionNo WorldEdit selection (or WorldEdit is not installed).なし
command.region.page_not_foundCould not find the page holding '{entry}'.{entry}
command.region.write_failedCould not write the region: {failures}{failures} (技術的な内容、英語)
command.region.doneRegion of {entry} set to {min} → {max} in {world}.{entry}, {min}, {max} (x, y, z の形式), {world}
command.region.publish_hintPublish the page for it to take effect.なし
command.refresh.noneNo painted chunks near {player} to refresh.{player}
command.refresh.doneResent biome data for {chunks} painted chunk(s) to {player}.{chunks}, {player}
command.apply.unknownUnknown biome: {biome}{biome}
command.apply.unknown_hintUse /tw biome list to see available custom biomes.なし
command.apply.nothingNothing to paint at that location.なし
command.apply.donePainting {biome} over {cells} cell(s) across {chunks} chunk(s).{biome}, {cells}, {chunks}
placeholder.unknownunknownなし
注記

/tw biome list の 3 つのホバー用スニペットは、シングルクォートで囲まれた MiniMessage の引数の中に置かれるため、シングルクォートを含めることはできません。

placeholder.unknown は、カスタムではないバイオームに対して %typewriter_temperature%、%typewriter_downfall%、Biome Property 変数が返す値です。%typewriter_is_custom% が返す true と false は、条件がこれらと比較するため固定のままです。

権限​

権限許可される内容
typewriter.biome/tw biome コマンドツリーへのアクセス。
typewriter.biome.list/tw biome list
typewriter.biome.info/tw biome info
typewriter.biome.apply/tw biome apply
typewriter.biome.refresh/tw biome refresh
typewriter.biome.region/tw biome region

プレースホルダー​

typewriter エクスパンションが提供する PlaceholderAPI のプレースホルダーです。プレイヤー向けのプレースホルダーは、プレイヤーに表示されているバイオームを読み取ります。

プレースホルダー返す値
%typewriter_current% または %typewriter_id%プレイヤーのいる場所のバイオームキー。例: minecraft:plains。
%typewriter_name%バイオームの読みやすい名前。
%typewriter_key%キー部分のみ。
%typewriter_namespace%名前空間部分のみ。
%typewriter_is_custom%true または false。
%typewriter_temperature%カスタムバイオームの気温。それ以外は unknown。
%typewriter_downfall%カスタムバイオームの降水量。それ以外は unknown。
%typewriter_base%カスタムバイオームのベースバイオーム。それ以外はバイオームキー自体。
%typewriter_count%登録されているカスタムバイオームの数。
%typewriter_list%カスタムバイオームの表示名(カンマ区切り)。
%typewriter_discovered_count%プレイヤーが訪れたバイオームの数。
%typewriter_discovered_list%プレイヤーが訪れたバイオームのキー。
注記

この拡張機能は、上記のプレフィックスなしの名前(%typewriter_current%、%typewriter_count% など)に応答します。ソース内のコメントには custombiome_ プレフィックスについての記述がありますが、コードが一致させるのはプレフィックスなしの名前だけです。

エントリ​

20 件のエントリー(拡張機能のソースから生成)。

アクション5
イベント2
目標1
ファクト4
オーディエンス2
シネマティック1
変数3
マニフェスト2

トラブルシューティング​

/tw biome list に警告マークと「needs a restart」が表示される。 サーバーがライブレジストリにバイオームを追加できなかったため、生成されたデータパックにしか存在していません。サーバーを再起動してください。理由はコンソールに一度だけ出力されます。

アクションやイベントでバイオームが見つからない。 バイオームの識別子は namespace:id の形式です。例: typewriter:corrupted_forest。正確なキーは /tw biome list で確認してください。不明な識別子は警告(unknown biome '…')としてログに記録され、アクションは何も行いません。

プレイヤーにオーバーレイがまったく表示されない。 オーバーレイには PacketEvents が必要です。ない場合、コンソールに PacketEvents unavailable: per-player biome overlays are disabled と表示されます。また、プレイヤーがオーディエンスに入っていること、バイオーム(カスタム定義または vanillaBiome)が設定されていること、領域の場合は両方のコーナーが読み込まれたワールド内にあることも確認してください。

Paint Biome Region が何もしない。 region が WORLDEDIT_SELECTION の場合、トリガーしたプレイヤーが WorldEdit の選択範囲を持っていて、WorldEdit がインストールされている必要があります。コンソールには has no WorldEdit selection とログ出力されます。それ以外の場合は RADIUS_AROUND_PLAYER を使ってください。

Restore Biome がスナップショットは存在しないと言う。 スナップショットは、塗り込みアクションに snapshotId がある場合にのみ記録され、復元には同じ名前を使う必要があります。consume がオンの場合、復元後にスナップショットは削除されます。