コンテンツにスキップ

ワールドロジック

ワールドロジックは、マップにゲームの動作を加えるルールの一覧です。コードは書きません。エディターがルールをデータ(scene.json)としてエクスポートすると、サーバープラグイン NP Scene がそのまま実行します。

1 つのルールは次の順序で実行されます。

順序部分意味例
1トリガールールが始まるきっかけ(1 つ)ゾーンに入ったとき・アクターを右クリック・ブロックを壊したとき・タイマー
2フィルタールールの制限全体で 1 回のみ・プレイヤーごとに 1 回・クールダウン・権限
3条件すべて真のときだけ続行時間帯 = 夜・手に持っている物・確率
4アクション上から順に実行サウンド・画面タイトル・アクターを表示・待機・テレポート

アクション「待機」(wait)を入れると、その後のアクションは指定した秒数だけ遅れて実行されます。待機中に同じルールが再び起きると、別にもう 1 つ実行されます。

トリガー・条件・アクションの全一覧と欄はワールドロジック type 一覧にあります。

内容どこで
ワールドロジックパネルツール › ワールドロジック(下部ドッキング領域の「ワールドロジック」タブ。「ウィンドウ」メニューからも表示できます)
ゾーントリガーウィザードCtrl+Shift+T・ツール › ゾーントリガーを作成…・パネルの「ゾーントリガー」・「追加」› ゾーントリガー (ウィザード)
同じルールをノードで見るツール › ロジックグラフ — ロジックグラフ

ゾーントリガーウィザードで「入ったらサウンド + タイトル」のルールを作成します。

  1. Ctrl+Shift+T を押します。
  2. ビューポートの床をドラッグしてゾーンを描きます。クリックだけなら 4×4 のゾーンになります。Esc で描画をキャンセルします。
  3. ウィザード画面の「名前」に 入口 と入力します。
  4. 「いつ」は「プレイヤーが入ったら」のままにします。
  5. 「やること」で「サウンド再生」と「タイトル表示」を押します。下に行が追加されます。
  6. 「結果」欄の 1 行説明(例: 「プレイヤーが「入口」に入ったら → …」)を確認します。
  7. 「作成」を押します。ゾーンアクターとルールが一緒に作成されます(Ctrl+Z 1 回で元に戻ります)。
  8. すぐに確認したい場合は「作成してすぐテスト」を押します。プレイが始まります。

パネルは左のルール一覧と右のプロパティ欄に分かれています。

要素動作
「ゾーントリガー」ゾーントリガーウィザードを開始します(ビューポートでドラッグして新しいゾーン)。
「変数」変数・enum・データ型のウィンドウを開きます — 変数・関数・データ型
+新しいルール(ゾーン進入 → メッセージ)を作成します。
複製・削除選択したルールを複製または削除します。
上へ・下へルールの順序を変更します。同じ瞬間に起きたルールは一覧の順に実行されます。
ルールの行有効化アイコン・トリガーアイコン・名前・1 行説明・エラー/注意アイコン
「発動」(行末)手動でのみ起こすトリガーのルールに付きます。プレイでそのきっかけが起きたものとして実行します。

一覧の下にはさらに 3 つの欄があります。

欄内容
ゾーン「ビューポートにゾーン・ブロックボックスを表示」・選択したゾーンの案内・ゾーンの検査
シミュレーション時間帯(大気プレビューの時刻・昼・夜)・天気(晴れ・雨・雷雨)・すべての権限あり
履歴「プレイでテスト」ボタンと、発動・スキップ・アクションのログ(時刻 秒)

ビューポートやアウトライナーでゾーンを選択すると、そのゾーンを使うルールが一覧で強調表示され、最初のルールが開きます。使っているルールがない場合は「「名前」に実行内容を追加」ボタンが表示されます。

部分内容
ヘッダー使用チェック・トリガーアイコン・ルール名・「発動」(手動でのみ起こすトリガー)・ウィザードで編集
1 行説明→ で始まる平易な説明です。編集するたびに更新されます。
idscene.json のルール id です。英字・数字・_ . - のみ使えます。Enter で確定します。
トリガーtype ボタン + 欄
条件条件カードの一覧 + 「条件を追加」
アクションアクションカードの一覧 + 「アクションを追加」
フィルター全体で 1 回のみ・プレイヤーごとに 1 回・クールダウン・権限
  • type ボタンを押すと、グループ(ゾーン・流れ・ワールド・画面・アクター・コリジョン・ブロック・戦闘・変数・関数)別のメニューが開きます。
  • 手動でのみ起こすトリガーには、メニューに「(発動ボタン)」が付きます。
  • type を変更しても、同じ名前のアクター欄・テキスト欄の値はそのまま引き継がれます。
  • 条件・アクションのカードには、番号・上へ・下へ・複製・削除ボタンがあります。
  • 必須の欄は名前の後ろに * が付きます。
  • アクター欄の選択リストには、その欄に合う種類のアクターだけが表示されます。
  • 検査メッセージ(エラー・注意)は、その欄のすぐ下に表示されます。
欄scene.json意味
全体で 1 回のみonceサーバー全体で 1 回だけ実行します。
プレイヤーごとに 1 回once_per_player1 人につき 1 回実行します。「全体で 1 回のみ」がオンの場合は使われません。
クールダウンcooldown同じプレイヤーが再び実行するまでに待つ秒数です。
権限permissionこの権限ノードを持つプレイヤーだけが実行します(例: noplatea.vip)。

条件が偽の場合、発動記録(1 回のみ・クールダウン)は残しません。

床をドラッグしてゾーンを描くと、ウィザード画面が開きます。黄色の下書きボックスがビューポートに表示されます。

欄選択肢
名前ゾーン(またはブロッカーボックス)アクターの名前
サイズX(横)・Z(縦)・Y(高さ)のブロック数。床の中心を保ったまま変わります。
いつプレイヤーが入ったら・プレイヤーが出たら・衝突したら (遮るボックスにぶつかる)・ブロックを壊したら
壊すブロック「ブロックを壊したら」のとき。空なら任意のブロック。#minecraft:logs のようなタグも使えます。
誰が誰でも・最初の1人のみ (サーバー全体で1回)
ループ毎回・1回のみ (プレイヤーごと)

「やること」のボタンを押すと行が追加されます。行は上から順に実行されます。

やること作成されるアクション
サウンド再生サウンド
タイトル表示画面タイトル
チャットメッセージチャットメッセージ
アクター出現アクターを表示 — 新しいテキストを選ぶと、隠したテキストアクターをゾーンの上に作成します。
ブロック出現ブロックを埋める — 選択ツール(4)で選んだ範囲を使います。
アニメーション再生アニメーション再生
テレポートテレポート — 新しい到着点を選ぶとスポーンアクターを作成します。
ドアを開けるドアの範囲を空気に変え、指定した秒数の後に元に戻します(開閉音を選択)。
チェックポイントアクションバーのテキスト + チェックポイント — 復活する位置(スポーンアクター)を指定します。
  • 「作成」は、ゾーン・必要なアクター・ルールを一度に作成します。
  • 既存のルールをウィザードで編集すると、ボタンが「保存」・「保存してすぐテスト」に変わります。
  • ウィザードが認識しないアクションは「その他のアクション」行としてそのまま残します。条件・クールダウン・権限もそのまま残します。
  • 「衝突したら」を選ぶと、ゾーンの代わりにブロッカーボックスを作成します。

ブロックトリガーの「どこで」

Section titled “ブロックトリガーの「どこで」”

0.9.11 以降: 「ブロックを壊したとき」・「ブロックを置いたとき」・「ブロックを右クリックしたとき」トリガーに「どこで」欄が追加されました。

「どこで」area判定
ゾーンzoneトリガーゾーンアクター内のブロック(従来と同じ)
選択したブロックblocksビューポートで選択したブロックのマスのみ
どこでもanywhereワールド全体。ゾーンは不要です。

「選択したブロック」を使う手順です。

  1. ビューポートで選択ツールを使ってブロックを選びます。
  2. 「選択したブロック」欄の「選択範囲から」を押します。空気を除いたマスが入ります。
  3. 目のボタンを押すと、それらのマスをビューポートで再び選択して表示します。
  • 選択したブロックは 4,096 マスまでです。広い場合はゾーンアクターを使います。
  • 「どこで」がない古いルールは「ゾーン」として読み込みます。
  • 「ブロック」欄でブロックの種類を絞り込めます(空なら任意のブロック)。

ルールを編集するたびに検査します。一覧の行にはエラー・注意アイコンが、プロパティ欄にはその欄の下にメッセージが表示されます。

種類例
エラー存在しないアクター・種類が合わないアクター・存在しないクリップ・誤ったサウンド id・ブロックに埋もれて入れないゾーン・同じ名前の関数ルール
注意サウンドライブラリ・バニラにないサウンド・受け取るルールがないシグナル・wait のないシグナルのループ・使うルールがないゾーン・ルールがすべてオフのゾーン・不明な type

不明な type(このエディターにないイベントプラグインの type)は読み取り専用の欄として表示され、そのまま保持されます。サーバーにそのプラグインがあれば実行されます。

コンソールコマンド logic は、ルール・クリップの一覧と検査結果をテキストで表示します。

  1. エクスポートウィンドウで .npbuild を作成するときに「シーンを含める」をオンにします(既定でオン)。scene.json が .npbuild の中に入ります — エクスポートとインポート
  2. サーバーに .npbuild をインストールすると、回転・反転・位置を適用してサーバー座標に変換します。
  3. サーバープラグイン NP Scene がルールを実行します。新しくコードを作成することはありません。
  • 座標は建物の最小の角(origin)を基準に出力されます。形式は scene.json 形式にあります。
  • 「1 回のみ」の記録・フラグなどの状態は、サーバーが state.json に保存します。
  • アクション「サーバーコマンド」は、サーバー設定で運営者がオンにしないと実行されません。エディターでは実行しません。
オプション場所デフォルト意味
ビューポートにゾーン・ブロックボックスを表示パネル「ゾーン」オントリガーゾーンの半透明ボックス + 名前・ルールの 1 行、ブロッカーボックス(斜線)
時間帯パネル「シミュレーション」大気プレビューの時刻プレイで「時間帯」条件が参照する時刻
天気パネル「シミュレーション」晴れプレイで「天気」条件が参照する天気
すべての権限ありパネル「シミュレーション」オンオフにすると、プレイで権限フィルター・条件が偽になる
シーンを含めるエクスポートウィンドウオン.npbuild に scene.json を含める
キー動作
Ctrl+Shift+Tゾーントリガーを作成(ドラッグでゾーン → ウィザード)
Escゾーンの描画をキャンセル・ウィザード画面を閉じる
Ctrl+Zルールの変更を元に戻す(テキスト入力は 1 段階にまとめる)
1〜9プレイ中に「発動」一覧のルールを実行
  • ルールが増えたら、ロジックグラフで流れを一目で確認します。同じデータなので、どちらで編集してもかまいません。
  • プレイ中にルールを編集すると、次のプレイから反映されます。プレイは開始時にルールをコピーして使います。
  • 「ブロックを壊したとき」・「ダメージを受けたとき」などのトリガーは、プレイが自動では起こしません。「発動」ボタンや数字キーでテストします。
  • 「イベントをキャンセル」アクションは、ルールの先頭のアクションであるとき(wait の前)にだけ意味があります。
  • 「シグナルを送信」は、その名前を受け取るルールをその場ですぐに実行します。受け取るルールが複数あれば、すべて実行します。