ワールドロジック
ワールドロジックは、マップにゲームの動作を加えるルールの一覧です。コードは書きません。エディターがルールをデータ(scene.json)としてエクスポートすると、サーバープラグイン NP Scene がそのまま実行します。
1 つのルールは次の順序で実行されます。
| 順序 | 部分 | 意味 | 例 |
|---|---|---|---|
| 1 | トリガー | ルールが始まるきっかけ(1 つ) | ゾーンに入ったとき・アクターを右クリック・ブロックを壊したとき・タイマー |
| 2 | フィルター | ルールの制限 | 全体で 1 回のみ・プレイヤーごとに 1 回・クールダウン・権限 |
| 3 | 条件 | すべて真のときだけ続行 | 時間帯 = 夜・手に持っている物・確率 |
| 4 | アクション | 上から順に実行 | サウンド・画面タイトル・アクターを表示・待機・テレポート |
アクション「待機」(wait)を入れると、その後のアクションは指定した秒数だけ遅れて実行されます。待機中に同じルールが再び起きると、別にもう 1 つ実行されます。
トリガー・条件・アクションの全一覧と欄はワールドロジック type 一覧にあります。
| 内容 | どこで |
|---|---|
| ワールドロジックパネル | ツール › ワールドロジック(下部ドッキング領域の「ワールドロジック」タブ。「ウィンドウ」メニューからも表示できます) |
| ゾーントリガーウィザード | Ctrl+Shift+T・ツール › ゾーントリガーを作成…・パネルの「ゾーントリガー」・「追加」› ゾーントリガー (ウィザード) |
| 同じルールをノードで見る | ツール › ロジックグラフ — ロジックグラフ |
クイックスタート
Section titled “クイックスタート”ゾーントリガーウィザードで「入ったらサウンド + タイトル」のルールを作成します。
- Ctrl+Shift+T を押します。
- ビューポートの床をドラッグしてゾーンを描きます。クリックだけなら 4×4 のゾーンになります。Esc で描画をキャンセルします。
- ウィザード画面の「名前」に
入口と入力します。 - 「いつ」は「プレイヤーが入ったら」のままにします。
- 「やること」で「サウンド再生」と「タイトル表示」を押します。下に行が追加されます。
- 「結果」欄の 1 行説明(例: 「プレイヤーが「入口」に入ったら → …」)を確認します。
- 「作成」を押します。ゾーンアクターとルールが一緒に作成されます(Ctrl+Z 1 回で元に戻ります)。
- すぐに確認したい場合は「作成してすぐテスト」を押します。プレイが始まります。
ワールドロジックパネル
Section titled “ワールドロジックパネル”パネルは左のルール一覧と右のプロパティ欄に分かれています。
左: ルール一覧
Section titled “左: ルール一覧”| 要素 | 動作 |
|---|---|
| 「ゾーントリガー」 | ゾーントリガーウィザードを開始します(ビューポートでドラッグして新しいゾーン)。 |
| 「変数」 | 変数・enum・データ型のウィンドウを開きます — 変数・関数・データ型 |
| + | 新しいルール(ゾーン進入 → メッセージ)を作成します。 |
| 複製・削除 | 選択したルールを複製または削除します。 |
| 上へ・下へ | ルールの順序を変更します。同じ瞬間に起きたルールは一覧の順に実行されます。 |
| ルールの行 | 有効化アイコン・トリガーアイコン・名前・1 行説明・エラー/注意アイコン |
| 「発動」(行末) | 手動でのみ起こすトリガーのルールに付きます。プレイでそのきっかけが起きたものとして実行します。 |
一覧の下にはさらに 3 つの欄があります。
| 欄 | 内容 |
|---|---|
| ゾーン | 「ビューポートにゾーン・ブロックボックスを表示」・選択したゾーンの案内・ゾーンの検査 |
| シミュレーション | 時間帯(大気プレビューの時刻・昼・夜)・天気(晴れ・雨・雷雨)・すべての権限あり |
| 履歴 | 「プレイでテスト」ボタンと、発動・スキップ・アクションのログ(時刻 秒) |
ビューポートやアウトライナーでゾーンを選択すると、そのゾーンを使うルールが一覧で強調表示され、最初のルールが開きます。使っているルールがない場合は「「名前」に実行内容を追加」ボタンが表示されます。
右: プロパティ欄
Section titled “右: プロパティ欄”| 部分 | 内容 |
|---|---|
| ヘッダー | 使用チェック・トリガーアイコン・ルール名・「発動」(手動でのみ起こすトリガー)・ウィザードで編集 |
| 1 行説明 | → で始まる平易な説明です。編集するたびに更新されます。 |
| id | scene.json のルール id です。英字・数字・_ . - のみ使えます。Enter で確定します。 |
| トリガー | type ボタン + 欄 |
| 条件 | 条件カードの一覧 + 「条件を追加」 |
| アクション | アクションカードの一覧 + 「アクションを追加」 |
| フィルター | 全体で 1 回のみ・プレイヤーごとに 1 回・クールダウン・権限 |
- type ボタンを押すと、グループ(ゾーン・流れ・ワールド・画面・アクター・コリジョン・ブロック・戦闘・変数・関数)別のメニューが開きます。
- 手動でのみ起こすトリガーには、メニューに「(発動ボタン)」が付きます。
- type を変更しても、同じ名前のアクター欄・テキスト欄の値はそのまま引き継がれます。
- 条件・アクションのカードには、番号・上へ・下へ・複製・削除ボタンがあります。
- 必須の欄は名前の後ろに
*が付きます。 - アクター欄の選択リストには、その欄に合う種類のアクターだけが表示されます。
- 検査メッセージ(エラー・注意)は、その欄のすぐ下に表示されます。
| 欄 | scene.json | 意味 |
|---|---|---|
| 全体で 1 回のみ | once | サーバー全体で 1 回だけ実行します。 |
| プレイヤーごとに 1 回 | once_per_player | 1 人につき 1 回実行します。「全体で 1 回のみ」がオンの場合は使われません。 |
| クールダウン | cooldown | 同じプレイヤーが再び実行するまでに待つ秒数です。 |
| 権限 | permission | この権限ノードを持つプレイヤーだけが実行します(例: noplatea.vip)。 |
条件が偽の場合、発動記録(1 回のみ・クールダウン)は残しません。
ゾーントリガーウィザード
Section titled “ゾーントリガーウィザード”床をドラッグしてゾーンを描くと、ウィザード画面が開きます。黄色の下書きボックスがビューポートに表示されます。
| 欄 | 選択肢 |
|---|---|
| 名前 | ゾーン(またはブロッカーボックス)アクターの名前 |
| サイズ | X(横)・Z(縦)・Y(高さ)のブロック数。床の中心を保ったまま変わります。 |
| いつ | プレイヤーが入ったら・プレイヤーが出たら・衝突したら (遮るボックスにぶつかる)・ブロックを壊したら |
| 壊すブロック | 「ブロックを壊したら」のとき。空なら任意のブロック。#minecraft:logs のようなタグも使えます。 |
| 誰が | 誰でも・最初の1人のみ (サーバー全体で1回) |
| ループ | 毎回・1回のみ (プレイヤーごと) |
「やること」のボタンを押すと行が追加されます。行は上から順に実行されます。
| やること | 作成されるアクション |
|---|---|
| サウンド再生 | サウンド |
| タイトル表示 | 画面タイトル |
| チャットメッセージ | チャットメッセージ |
| アクター出現 | アクターを表示 — 新しいテキストを選ぶと、隠したテキストアクターをゾーンの上に作成します。 |
| ブロック出現 | ブロックを埋める — 選択ツール(4)で選んだ範囲を使います。 |
| アニメーション再生 | アニメーション再生 |
| テレポート | テレポート — 新しい到着点を選ぶとスポーンアクターを作成します。 |
| ドアを開ける | ドアの範囲を空気に変え、指定した秒数の後に元に戻します(開閉音を選択)。 |
| チェックポイント | アクションバーのテキスト + チェックポイント — 復活する位置(スポーンアクター)を指定します。 |
- 「作成」は、ゾーン・必要なアクター・ルールを一度に作成します。
- 既存のルールをウィザードで編集すると、ボタンが「保存」・「保存してすぐテスト」に変わります。
- ウィザードが認識しないアクションは「その他のアクション」行としてそのまま残します。条件・クールダウン・権限もそのまま残します。
- 「衝突したら」を選ぶと、ゾーンの代わりにブロッカーボックスを作成します。
ブロックトリガーの「どこで」
Section titled “ブロックトリガーの「どこで」”0.9.11 以降: 「ブロックを壊したとき」・「ブロックを置いたとき」・「ブロックを右クリックしたとき」トリガーに「どこで」欄が追加されました。
| 「どこで」 | area | 判定 |
|---|---|---|
| ゾーン | zone | トリガーゾーンアクター内のブロック(従来と同じ) |
| 選択したブロック | blocks | ビューポートで選択したブロックのマスのみ |
| どこでも | anywhere | ワールド全体。ゾーンは不要です。 |
「選択したブロック」を使う手順です。
- ビューポートで選択ツールを使ってブロックを選びます。
- 「選択したブロック」欄の「選択範囲から」を押します。空気を除いたマスが入ります。
- 目のボタンを押すと、それらのマスをビューポートで再び選択して表示します。
- 選択したブロックは 4,096 マスまでです。広い場合はゾーンアクターを使います。
- 「どこで」がない古いルールは「ゾーン」として読み込みます。
- 「ブロック」欄でブロックの種類を絞り込めます(空なら任意のブロック)。
ルールを編集するたびに検査します。一覧の行にはエラー・注意アイコンが、プロパティ欄にはその欄の下にメッセージが表示されます。
| 種類 | 例 |
|---|---|
| エラー | 存在しないアクター・種類が合わないアクター・存在しないクリップ・誤ったサウンド id・ブロックに埋もれて入れないゾーン・同じ名前の関数ルール |
| 注意 | サウンドライブラリ・バニラにないサウンド・受け取るルールがないシグナル・wait のないシグナルのループ・使うルールがないゾーン・ルールがすべてオフのゾーン・不明な type |
不明な type(このエディターにないイベントプラグインの type)は読み取り専用の欄として表示され、そのまま保持されます。サーバーにそのプラグインがあれば実行されます。
コンソールコマンド logic は、ルール・クリップの一覧と検査結果をテキストで表示します。
サーバーで実行
Section titled “サーバーで実行”- エクスポートウィンドウで
.npbuildを作成するときに「シーンを含める」をオンにします(既定でオン)。scene.jsonが.npbuildの中に入ります — エクスポートとインポート - サーバーに
.npbuildをインストールすると、回転・反転・位置を適用してサーバー座標に変換します。 - サーバープラグイン NP Scene がルールを実行します。新しくコードを作成することはありません。
- 座標は建物の最小の角(origin)を基準に出力されます。形式は scene.json 形式にあります。
- 「1 回のみ」の記録・フラグなどの状態は、サーバーが
state.jsonに保存します。 - アクション「サーバーコマンド」は、サーバー設定で運営者がオンにしないと実行されません。エディターでは実行しません。
| オプション | 場所 | デフォルト | 意味 |
|---|---|---|---|
| ビューポートにゾーン・ブロックボックスを表示 | パネル「ゾーン」 | オン | トリガーゾーンの半透明ボックス + 名前・ルールの 1 行、ブロッカーボックス(斜線) |
| 時間帯 | パネル「シミュレーション」 | 大気プレビューの時刻 | プレイで「時間帯」条件が参照する時刻 |
| 天気 | パネル「シミュレーション」 | 晴れ | プレイで「天気」条件が参照する天気 |
| すべての権限あり | パネル「シミュレーション」 | オン | オフにすると、プレイで権限フィルター・条件が偽になる |
| シーンを含める | エクスポートウィンドウ | オン | .npbuild に scene.json を含める |
ショートカット
Section titled “ショートカット”| キー | 動作 |
|---|---|
| Ctrl+Shift+T | ゾーントリガーを作成(ドラッグでゾーン → ウィザード) |
| Esc | ゾーンの描画をキャンセル・ウィザード画面を閉じる |
| Ctrl+Z | ルールの変更を元に戻す(テキスト入力は 1 段階にまとめる) |
| 1〜9 | プレイ中に「発動」一覧のルールを実行 |
ヒント / 注意
Section titled “ヒント / 注意”- ルールが増えたら、ロジックグラフで流れを一目で確認します。同じデータなので、どちらで編集してもかまいません。
- プレイ中にルールを編集すると、次のプレイから反映されます。プレイは開始時にルールをコピーして使います。
- 「ブロックを壊したとき」・「ダメージを受けたとき」などのトリガーは、プレイが自動では起こしません。「発動」ボタンや数字キーでテストします。
- 「イベントをキャンセル」アクションは、ルールの先頭のアクションであるとき(
waitの前)にだけ意味があります。 - 「シグナルを送信」は、その名前を受け取るルールをその場ですぐに実行します。受け取るルールが複数あれば、すべて実行します。