Modスクリプト:オブジェクト

Modスクリプト全体で使用されるオブジェクトには、いくつかの種類があります。以下に、各項目について、その概要と含まれるプロパティ(デフォルト値を含む)を簡単にまとめました。大まかな目安として、アンダースコア(_)で始まるプロパティは読み取り専用であり、変更することはできません。オブジェクトのプロパティにアクセスするには`obj.get("property")`を使用し、新しい値を設定するには `obj.set("property", newvalue)` または`obj.set({property: newvalue, property2: newvalue2})` を使用する必要があります。

注:オブジェクトの「id」プロパティは、グローバルに一意のIDです。異なる種類のオブジェクト間であっても、2つのオブジェクトが同じIDを持つことはあってはなりません。また、オブジェクトの ID は頻繁にアクセスされる上、決して変更されることがないため、必要に応じてobj.get("_id")の代わりにobj.idを使ってアクセスできるショートカットが用意されています(どちらでも動作します)。

Mod Script サンドボックス v1.5 専用です。オブジェクトはobj.type もサポートしており、これはobj.get("type")またはobj.get("_type") と同等です。

if ('graphic' === obj.type) {
  // 何か処理を行う
}

Pathv2(最新版VTTエンジンで利用可能)

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type パスv2 オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_ページID オブジェクトが存在するページのID。読み取り専用。
形 "" pol、free、eli、またはrec。パスをポリライン、フリーハンド、楕円、または矩形のいずれとして表示するかを指定します。
ポイント パスを作成するために使用されるx,y座標の配列を含むJSON文字列。
充填 "透明" 塗りつぶし色。文字列「transparent」または16進数の色コード(例:#000000)を文字列として使用してください。
脳卒中 #000000 ストローク(境界線)の色
回転 0 回転(度単位)。
レイヤー "" 現在のレイヤー。「gmlayer」、「objects」、「マップ」、「walls」、または「foreground」のいずれか。壁のレイヤーに刻まれた筋が光を遮っている。
ストローク幅 5
y 0 パス中心のY座標
x 0 パス中心のX座標
制御される "" パスを制御できるプレイヤーIDのカンマ区切りリスト。支配プレイヤーは経路を削除できる。その経路がプレイヤーによって作成された場合、そのプレイヤーは自動的にリストに含まれます。「すべてのプレイヤー」は、リスト内のすべてのプレイヤーを含めることで表されます。
バリアタイプ "壁" 動的照明バリアのタイプには、「壁」、「oneWay」、「透明」があります。
ワンウェイリバース 偽 ブール値
フェードオーバーラップ true この設定が「true」の場合、オブジェクトレイヤーのグラフィックの内側境界線と前景レイヤーのオブジェクトが重なると、その不透明度は `fadeOpacity` に指定された値になります。 falseの場合、重なりがある場合でも完全な不透明度を維持します
フェード不透明度 0.3 この値は、オブジェクトレイヤー上のグラフィックがオブジェクトと重なった際、かつ`fadeOnOverlap` が`true` に設定されている場合の、オブジェクトの不透明度を決定します。
風景としてレンダリング false trueの場合、このオブジェクトは動的照明およびマスクを非表示/表示によって隠蔽されます
インタラクション手動リセット false この設定がtrueの場合、オブジェクト上のインタラクションがリセットされます
相互作用によって引き起こされた 偽 インタラクションがトリガーされると true に設定されます

shapeプロパティには、以下の値があります:

  • pol- ポリライン。各連続する点の間には直線が引かれる。始点と終点が同じ場合、閉じた図形が形成されます。
  • free- フリーハンド。曲線は点を用いてガイドとして描かれる。始点と終点が同じ場合、閉じた図形が形成されます。
  • eli- 楕円。楕円は、境界ボックスを設定する点を用いて描画される。最初の2点のみが使用されます。
  • rec- 長方形。点を用いて境界ボックスを設定し、長方形が描画される。最初の2点のみが使用されます。

pointsプロパティは、ポイントの配列を含む JSON 文字列です。ポイントは、x座標とy座標の2つの位置からなる配列として表現される。 (0,0) → (0,70) → (70,0) を経て、再び (0,0) に戻る三角形は、[[0,0],[0,70],[70,0],[0,0]] と表されます。 xおよびyプロパティは、ページ上の PathV2 オブジェクトの位置を指定します。それらは図面の中心がどこにあるべきかを指定します。一部の形状(楕円や長方形)については、それはかなり簡単に理解できます。より複雑な形状(ポリラインやフリーハンド)の場合は、pointsプロパティから最小値と最大値を特定し、その中間点を使用する必要があります。

Mod Script サンドボックス v1.5 専用です。インスタンスメソッド:toFront()、toBack()、toAbove(target)、toBelow(target)。 target は、グラフィック、テキスト、パス、または pathv2 オブジェクト、あるいはそれらのオブジェクトの ID です。

パス(クラシック・卓上)

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "パス" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_ページID オブジェクトが存在するページのID。読み取り専用。
_path 描画コマンドのJSON配列。各コマンドは、["M", x, y]または["L", x, y](移動または直線)、あるいは曲線の場合は["C", ...]の形式です。 x と y は、パスの左上隅からのオフセット値です。作成時にパスを指定します。その後は読み取り専用となります。
充填 透明 塗りつぶし色。文字列「transparent」または16進数の色コード(例:#000000)を文字列として使用してください。
脳卒中 #000000 ストローク(境界線)の色
回転 0 回転(度単位)。
レイヤー "" 現在のレイヤー。「gmlayer」、「objects」、「マップ」、「walls」、または「foreground」のいずれか。壁のレイヤーに描かれた模様が光を遮っている。
ストローク幅 5
幅 0
高さ 0
トップ 0 パス中心のY座標
左 0 パス中心のX座標
scaleX 1
scaleY 1
制御される "" パスを制御できるプレイヤーIDのカンマ区切りリスト。支配プレイヤーは経路を削除できる。その経路がプレイヤーによって作成された場合、そのプレイヤーは自動的にリストに含まれます。「すべてのプレイヤー」は、リスト内の全員が対象であることを意味します。
バリアタイプ 壁 動的照明バリアのタイプには、wall、oneWay、transparentがあります。
ワンウェイリバース 偽 ブール値
フェードオーバーラップ true この設定が「true」の場合、オブジェクトレイヤーのグラフィックの内側境界と前景レイヤーのオブジェクトが重なると、その不透明度はfadeOpacityに指定された値になります。 falseの場合、重なりがある場合でも完全な不透明度を維持します
フェード不透明度 0.3 この値は、オブジェクトレイヤー上のグラフィックがオブジェクトと重なった際、かつ`fadeOnOverlap` が`true` に設定されている場合の、オブジェクトの不透明度を決定します。
風景としてレンダリング 偽 trueの場合、このオブジェクトは動的照明およびマスクを非表示/表示によって隠蔽されます
インタラクション手動リセット 偽 この設定がtrueの場合、オブジェクト上のインタラクションがリセットされます
相互作用によって引き起こされた 偽 インタラクションがトリガーされると true に設定されます

クラシックパスを作成する際のパス(_path として保存される)。この形式については、上記の_path行に説明があります。

Mod Script サンドボックス v1.5 専用です。インスタンスメソッド:toFront()、toBack()、toAbove(target)、toBelow(target)。 target には、グラフィック、テキスト、パス、pathv2 オブジェクト、またはそれらのオブジェクトの ID を指定できます。

窓

注:窓とドアは 、他の種類のオブジェクトと比べて反転した軸を使用します。例えば、別のオブジェクトでは100となるトップ変数が、窓やドアではy -100となる。

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "窓" 読み取り専用。
_ページID このウィンドウが属するページ。作成時にpageidを渡してください。その後は読み取り専用となります。
色 "#ff0000" ウィンドウの16進数表記の色。
x 0 ウィンドウの中心をx軸上に合わせる。
y 0 ウィンドウの中心をY軸上に合わせる。
isOpen 偽 プレイヤーがこのウィンドウを通過できるかどうかを判定します。
ロック状態 偽 プレイヤーがウィンドウと対話するのを防ぎます。
経路 2つのハンドル「handle0」と「handle1」があり、それぞれにx座標とy座標が設定されています。それらの座標は、このオブジェクトのx/y 座標からのオフセットであり、y 軸が反転した同じ座標系に基づいています。

例

on('chat:message', function(msg) {
  if (msg.type === 'api' && msg.content === '!cw') {
    const currentPageID = Campaign().get('playerpageid');
    const win = createObj('window', {
      x: 70,
      y: -70,
      pageid: currentPageID,
      path: {
        handle0: {
          x: -70,
          y: 0,
        },
        handle1: {
          x: 35,
          y: 0,
        },
      },
      color: '#000000'
    });
  }
  if (msg.type === 'api' && msg.content === '!mw') {
    const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
    win.set({
      x: 240,
      y: -139
    });
  }
  if (msg.type === 'api' && msg.content === '!dw') {
    const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
    win.remove();
  }
});

ドア

注:窓 やドアは 、他の種類のオブジェクトと比べて軸が逆になっています。例えば、他のオブジェクトでは100となるトップ変数が、窓やドアの場合はy -100となります。

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type 「ドア」 読み取り専用。
_ページID このドアが属するページ。作成時にpageidを渡してください。その後は読み取り専用となります。
色 "" ドアの16進数表記の色。
x 0 ドアの座標中心をX軸上に配置する。
y 0 ドアの座標中心をY軸上に配置する。
isOpen 偽 プレイヤーがこのドアを通過できるかどうかを判定します。
ロック状態 偽 プレイヤーがドアと相互作用することを防ぎます。
isSecret 偽 プレイヤーの視界からドアアイコンを削除し、障壁として機能します。
パス: 2つのハンドル「handle0」と「handle1」があり、それぞれにx座標とy座標が設定されています。それらの座標は、このオブジェクトのx/y 座標からのオフセットであり、y 軸が反転している点では同じです。

テキスト

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "テキスト" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_ページID オブジェクトが存在するページのID。読み取り専用。
上 0
左 0
幅 0
高さ 0
テキスト ""
フォントサイズ 16 最良の結果を得るには、編集メニューのプリセットサイズ(8、10、12、14、16、18、20、22、26、32、40、56、72、100、200、300)を使用してください。
回転 0
色 rgb(0, 0, 0)
脳卒中 "透明"
フォントファミリー 「Arial」 これを設定しない場合、後でtextプロパティの値を変更すると、font_sizeが8に縮小されます。使用可能な値(大文字・小文字は区別されません):Arial、Patrick Hand、Contrail One、Shadows Into Light、およびCandal。無効な名前を指定すると、無名の等幅セリフ書体が使用されます。
レイヤー "" 現在のレイヤー。「gmlayer」、「objects」、「マップ」、「walls」、または「foreground」のいずれか。
制御される "" テキストを制御できるプレイヤーIDのカンマ区切りリスト。操作者はテキストを削除できる。テキストがプレイヤーによって作成された場合、そのプレイヤーは自動的にリストに追加されます。「すべてのプレイヤー」は、リストに全員が含まれていることで表されます。
フェードオーバーラップ true この設定が「true」の場合、オブジェクトレイヤーのグラフィックの内側境界と前景レイヤーのオブジェクトが重なると、その不透明度はfadeOpacityに指定された値になります。 falseの場合、重なりがある場合でも完全な不透明度を維持します
フェード不透明度 0.3 この値は、オブジェクトレイヤー上のグラフィックがオブジェクトと重なった際、かつ`fadeOnOverlap` が`true` に設定されている場合の、オブジェクトの不透明度を決定します。
風景としてレンダリング 偽 trueの場合、このオブジェクトは動的照明およびマスクを非表示/表示によって隠蔽されます
インタラクション手動リセット 偽 この設定がtrueの場合、オブジェクト上のインタラクションがリセットされます
相互作用によって引き起こされた 偽 インタラクションがトリガーされると true に設定されます

Mod Script サンドボックス v1.5 専用です。インスタンスメソッド:toFront()、toBack()、toAbove(target)、toBelow(target)。 target には、グラフィック、テキスト、パス、パスv2 オブジェクト、またはそれらのオブジェクトの ID を指定できます。

ピン

「pin」オブジェクトは、マップ上に直接表示されるインタラクティブなマーカーである「マップピン」を表します。ピンには画像を表示したり、ツールチップを表示したり、GM メモを含めたり、資料内のハンドアウトにリンクしたりできます。それらは可視化または非表示にでき、劇的な演出や発見された場所の照明として活用できるほか、よりインタラクティブなプレイのための情報マーカーとしても使用可能です。ピンに関する追加情報はヘルプセンターでご覧いただけます。

不動産 既定値 メモ
_id 他のRoll20オブジェクトと同様の固有ID。読み取り専用。
_type ピン ピンのタイプ。読み取り専用。
_pageid "" このピンが属するページのID。読み取り専用。
x 0 ページ上のピンのX座標。
y 0 ページ上のピンのY座標。
背景色 #242424 ピンの背景色(16進数または透明)。 #RRGGBB または #RRGGBBAA(半透明)形式の HTML カラー文字列をサポートします
形 涙の滴 ピン形状。有効な値は、涙型、円、ひし形、四角形です。
アイコン ベース・ドット customizationTypeがiconの場合の組み込みアイコン
ピン画像 "" customizationTypeがimageの場合に表示される画像の URL
カスタマイズタイプ アイコン ピンにアイコンを表示するか、pinImage を表示するかを指定します。 customizationType:image を使用する場合は、pinImageに有効な画像 URL を設定してください。 customizationTypeを 「icon」と「image」の間で切り替えても、pinImageはクリアされず、URLが保持されたままになります
useTextIcon 偽 useTextIconが true の場合、ピンにはアイコンや画像の代わりにテキストラベルが表示されます。そのラベルはiconTextから取得されたもので、最初の3キャラクターのみが表示されます
アイコンテキスト "" useTextIconが true の場合のテキストラベル(最初の 3 キャラクターが使用されます)
ツールチップ画像サイズ 中 ピンのツールチップに表示される画像のサイズ。有効な値は「small」、「medium」、「large」、「xl」です。
リンク "" このピンがリンクしているハンドアウトのID。 linkType には、ハンドアウトまたは"" のみ指定できます。
リンクタイプ "" リンクされたオブジェクトの種類。有効な値:ハンドアウト、""(空の文字列)。
サブリンク "" リンク先のハンドアウト内で、スクロールして表示する見出しテキスト。 subLinkType(headerPlayerまたはheaderGM)と組み合わせて使用します。
サブリンクタイプ "" サブリンクの種類。有効な値:headerPlayer、headerGM、""(空の文字列)。
タイトル "" ピンに表示されるタイトルテキスト。
メモ "" 普通の文字列。キャラクターやハンドアウトの「blob」フィールドのいずれでもない。
gmNotes "" 通常の文字列、GM専用。キャラクターやハンドアウトの「blob」フィールドのいずれでもない。
ツールチップ画像 "" ピン上に表示されるツールチップ画像のRoll20画像識別子
可視範囲 "" 「all」は、全員にピンを表示します。""は、プレイヤーからそれを隠します。
自動ノートタイプ "" 自動生成されるノートのフォーマット。有効な値:「」(空の文字列)、blockquote。
ツールチップ表示対象 すべて ツールチップを表示できるユーザーを制御します。有効な値:all、""(空文字列)。
ツールチップタイトルの表示対象 すべて ツールチップのタイトルを表示できるユーザーを制御します。有効な値:all、""(空文字列)。
nameplateVisibleTo すべて 名前を表示できるユーザーを制御します。有効な値:all、""(空文字列)。
imageVisibleTo すべて 画像を表示できるユーザーを制御します。有効な値:all、""(空文字列)。
notesVisibleTo すべて ノートを閲覧できるユーザーを制御します。有効な値:all、""(空文字列)。
gmNotesVisibleTo すべて GMメモを閲覧できるユーザーを制御します。有効な値:all、""(空文字列)。
拡大縮小 1.0 ピンのスケール係数。 0.25から2.0の間でなければならない。
画像同期解除 偽 ピンの画像が、リンクされているオブジェクトと同期していないかどうか。同期が取れていないプロパティを設定すると、3つ全てが同じ値に設定されます。
ノート同期解除 偽 ピンに付いているメモが、リンクされているオブジェクトと同期が取れていないかどうか。同期が取れていないプロパティを設定すると、3つ全てが同じ値に設定されます。
gmNotes同期解除 偽 そのピンの GM メモが、リンクされているオブジェクトと同期していないかどうか。同期が取れていないプロパティを設定すると、3つ全てが同じ値に設定されます。

注1:ピンにカスタムコンテンツを使用する場合(ハンドアウトの画像、メモ、GM メモを上書きする場合)、非同期プロパティのうち少なくとも1つを「true」に設定する必要があります(これにより、すべてのプロパティが設定されます)。

注2:有効なアイコン値:base-dot、base-castle、base-skullSimple、base-spartanHelm、base-radioactive、base-heart、base-star、base-starSign、base-pin、base-speechBubble、base-file、base-plus、base-circleCross、base-dartBoard、base-badge、base-flagPin、base-crosshair、base-scrollOpen、base-diamond、base-photo、base-fourStarShort、base-circleStar、base-lock、base-crown、base-leaf、base-signpost、base-beer、base-compass、base-video、base-key,base-chest,base-village,base-swordUp,base-house,base-house2,base-church,base-government,base-blacksmith,base-stable,base-gear,base-bridge,base-mountain,base-exclamation,base-question.

グラフィック(コマ/マップ/カード/その他)

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type グラフィック オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_サブタイプ "コマ" コマ(コマやマップ)、カード、またはダイストークンのいずれかです。読み取り専用。
カードID グラフィックがカードの場合、IDに設定する。読み取り専用。
_pageid オブジェクトが存在するページのID。読み取り専用。
imgsrc グラフィックの画像のURL。 imgsrcおよびアバターに関する制限については、以下の注記をご覧ください。
バー1リンク バー1がキャラクターにリンクされている場合、IDに設定する。
バー2リンク
バー3リンク
bar4_link
表す このトークンが表すキャラクターのID。
左 0 マップの左端からグラフィックの中心までのピクセル数。
上 0 マップの上端からグラフィックの中心までのピクセル数。
幅 0 グラフィックの幅(ピクセル単位)
高さ 0 グラフィックの高さ(ピクセル単位)
回転 0 トークンの向き(度単位)
レイヤー "" 現在のレイヤー。「gmlayer」、「objects」、「マップ」、「walls」、または「foreground」のいずれか。
描画中 偽 このプロパティは詳細設定のコンテキストメニューから変更されます。
スナップを無効化 偽 グリッドへのグラフィックのスナップを無効にする。
トークンメニューを無効化 偽 グラフィック トークン メニュー設定(トークン バブルとラジアル メニュー)を無効化します。
フリップV 偽 縦に反転する。
フリップ 偽 水平方向に反転。
名前 "" トークンの名前。
gmnotes "" GM限定のメモ。同期文字列。多くの場合、URLエンコードされたHTMLです(%3Cや%3E などで始まる場合があります)。これはキャラクターやハンドアウト用のブロブフィールドではありません。
制御される "" グラフィックを制御できるプレイヤーIDのカンマ区切りリスト操作プレイヤーはグラフィックを削除できる。そのグラフィックがプレイヤーによって作成された場合、そのプレイヤーは自動的にリストに追加されます。「すべてのプレイヤー」は、リストに全員が含まれていることで表されます。
バー1値 "" バー1の現在値これは数字またはテキストである可能性があります。
バー2値 ""
バー3値 ""
bar4_value ""
バー1_最大 "" ゲージ1の最大値 _value と _max の両方が設定されている場合、トークンの上にバーが表示され、バー1の割合を示すことがあります。
バー2_最大 ""
バー3_最大 ""
bar4_max ""
オーラ1の半径 "" オーラの半径(このページの設定で指定された単位を使用)。整数または浮動小数点数である可能性があります。オーラを消去するには空の文字列を設定してください。
オーラ2_半径 ""
オーラ1_カラー #FFFF99 オーラの16進数表記の色。
オーラ2_カラー #59E594
オーラ1_オプション "円" オーラの形状を設定します。有効なオプションは「circle」または「square」です。注:以下と同期されています aura1_square
オーラ2_オプション "円" オーラの形状を設定します。有効なオプションは「circle」または「square」です。注:以下と同期しています aura2_square
オーラ1_スクエア 偽 オーラは円か四角か?
オーラ2_スクエア 偽
色合い "透明" 16進数の色、または透明。グラフィックの色を濃くします。
ステータスマーカー "" 現在アクティブなステータスマーカーの、コンマ区切りのリスト。カスタムマーカーでは、Campaignの_token_markersにあるname::idタグを使用します。以下の注記をご覧ください。
表示名 偽 コマの名前の表示。
出演者名を表示 偽 名前を全プレイヤーに表示する。
showplayers_bar1 偽 バー1を全プレイヤーに表示する。
showplayers_bar2 偽
showplayers_bar3 偽
showplayers_bar4 false
showplayers_aura1 偽 オーラ1を全プレイヤーに表示する。
showplayers_aura2 偽
プレイヤー編集_名前 true 操作しているプレイヤーがコマの名前を編集できるようにする。また、`showplayers_name` が false の場合でも、操作しているプレイヤーに名前を表示します。
playersedit_bar1 true 操作中のプレイヤーがコマの「バー1」を編集できるようにする。また、showplayers_bar1が false の場合でも、操作プレイヤーにはゲージ 1 が表示されます。
プレイヤー編集バー2 true
playersedit_bar3 true
playersedit_bar4 true
bar1_権限数 "" bar1のオーバーレイの表示方法を設定します。有効な値:everyone、hidden。 "" は、編集者のみが値を確認できることを意味します
bar2_権限番号 ""
bar3_権限番号 ""
bar4_num_permission ""
playersedit_オーラ1 true 操作中のプレイヤーが、コマのオーラ1を編集できるようにする。また、showplayers_aura1が false の場合でも、操作プレイヤーにはオーラ 1 が表示されます。
プレイヤー編集_オーラ2 true
光半径 "" 非推奨となった従来動的照明:明るい光の半径。 「bright_light_distance」を参照してください。
光_減衰半径 "" 非推奨の従来動的照明:薄暗い光の半径の開始点。 light_dimradiusが空の文字列の場合、そのコマはlight_radiusの距離まで明るい光を放ちます。 light_dimradiusに値が設定されている場合、そのコマはlight_dimradiusの値まで明るい光を放ち、そこからlight_radiusの値までは薄暗い光を放ちます。「動的照明」のドキュメントにある「low_light_distance」を参照してください
light_otherplayers 偽 非推奨の従来動的照明:このコマの光をすべてのプレイヤーに表示します。これはhas_night_vision ではありません。
ライト・ハッサイト false 非推奨の従来動的照明:この照明は、制御しているプレイヤーに「視線確保」のための視界を提供します。 「has_bright_light_vision」を参照してください。
光角 「360」 非推奨の従来動的照明:角度(度単位)。 180は、フィールドの前半部分に光が差し込んでいる。 「has_directional_bright_light」、「directional_bright_light_center」、および「directional_bright_light_total」を参照してください。
光_ロサンゼルス 「360」 非推奨の従来動的照明:グラフィックの視野角(度単位)(light_hassight がtrue に設定されていると仮定)。詳細は、動的照明のドキュメントにある has_limit_field_of_vision、limit_field_of_vision_center、limit_field_of_vision_total を参照してください。
側面 "" パイプ区切りで並んだサイド画像のリスト。各エントリはURLエンコードされています。 「|」で分割し、decodeURIComponent を使用してデコードします。
currentSide 0 側面へのインデックス。 Mod Script サンドボックス v1.5 専用です。 currentSideを設定すると、マーケットプレイスの画像を含め、imgsrc が自動的に更新されます。その同じ.set()に有効なimgsrc が含まれている場合は、代わりにそのimgsrc が使用されます。
最後の動き "" コマの最後の移動。これは、コンマ区切りの座標のリストです。たとえば、「300,400」というのは、コマが左座標300、上座標400の位置から最後の移動を開始したことを意味します。コマの現在の「上」と「左」の値は、常に直前の移動の「終点」であるとみなされます。ウェイポイントは複数の座標セットによって示される。たとえば、「300,400,350,450,400,500」という指定は、コマが左座標=300、上座標=400の位置から開始し、次に左座標=350、上座標=450の位置にウェイポイントを設定し、さらに左座標=400、上座標=500の位置に別のウェイポイントを設定し、最終的に現在の上座標+左座標の位置で移動を終了したことを示します。
光乗数 "1" 非推奨となった従来の動的照明乗数。 1は正常な視力です。現在の動的照明では「light_sensitivity_multiplier」が使用されており、100が標準値です。
アドバンストフォワードオーブビュー距離 "" 自動除去マスクが明らかになるコマ周辺の半径
光感度乗数 100 光源の効果に対する乗数効果。倍率200のコマは、同じ光源のもとで、倍率100のコマと比べて2倍の距離まで視認可能となる。
ナイトビジョン効果 null 暗視効果。 null が標準的な効果です。その他の設定には、「調光」や「夜間モード」などがあります。
バーの場所 null コマのゲージが配置されている場所。 null がデフォルトの配置です。その他の値:overlap_top、overlap_bottom、bottom。
compact_bar null バースタイル。 nullがデフォルトです。 「compact」は「compact bar」を使用します。
ロック動作 偽 グラフィックを固定するオプション。ブール値の真または偽
フェードオーバーラップ true この設定が「true」の場合、オブジェクトレイヤーのグラフィックの内側境界と前景レイヤーのオブジェクトが重なると、その不透明度は `fadeOpacity` に指定された値になります。 false の場合、重なり具合にかかわらず、設定されたbaseOpacityの値のままになります。
フェード不透明度 .3 この値は、オブジェクトレイヤー上のグラフィックがオブジェクトと重なった際、かつ`fadeOnOverlap` が`true` に設定されている場合の、オブジェクトの不透明度を決定します。
風景としてレンダリング 偽 trueの場合、このオブジェクトは動的照明およびマスクを非表示/表示によって隠蔽されます
ベース不透明度 1.0 任意のレイヤー上のグラフィックの初期不透明度。
インタラクション手動リセット 偽 この設定がtrueの場合、オブジェクト上のインタラクションがリセットされます
相互作用によって引き起こされた 偽 インタラクションがトリガーされると true に設定されます

現在の動的照明のプロパティ(上記の従来のlight_*フィールドに加えて):

不動産 既定
has_bright_light_vision 偽
has_night_vision 偽
ナイトビジョン・ティント null
暗視距離 0
明るい光を放つ 偽
明るい光の距離 0
emits_low_light 偽
低照度時の検知距離 0
dim_light_opacity 0
lightColor "透明"
has_limit_field_of_vision 偽
視野中心の制限 0
視野の総範囲 0
has_limit_field_of_night_vision 偽
暗視機能の中心範囲 0
暗視機能の視野範囲(合計) 0
has_directional_bright_light 偽
指向性のある明るい光(中央) 0
指向性_高輝度_合計 0
has_directional_dim_light 偽
方向性のある微光の中心 0
指向性_微光_合計 0
ツールチップ ""
show_tooltip 偽
gm_only_tooltip 偽
renderAsDarkness 偽

Mod Script サンドボックス v1.5 専用です。 currentSideを設定すると、imgsrc が自動的に更新されます:

const setRandomSide = (obj) => {
  if ('graphic' === obj.type) {
    obj.set({
      currentSide: randomInteger(obj.get('sides')?.split('|').length ?? 1) - 1
    });
  }
};

Mod Script サンドボックス v1.5 専用です。図中の方法:

  • createCopy(properties)—createObjと同様にコピーを行います。マーケットプレイスのimgsrc/sides も含みます。新しいグラフィックを返します。
  • toFront(),toBack(),toAbove(target),toBelow(target)— グローバル関数と同じです。 targetはオブジェクトまたは ID です。
obj.createCopy({ pageid, レイヤー, left: x, top: y });

コマ・マーカーの例

ゲーム全体で利用可能なマーカーの一覧は、Campaign().get('_token_markers') です。各エントリは次のような形式になっています:

{
  "id":59, // データベース内の
  のID   "name":"Bane", // マーカーの名前(一意ではない)
  "tag":"Bane::59", // トークンが実際に参照される方法
  // これにはカスタムマーカーのIDは含まれますが、
  // デフォルトのマーカーのIDは含まれません。
  "url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
  // ^コマ・マーカーの画像のURL
}

リンクされたキャラクターとコマに関する重要な注意事項キャラクターにリンクされているコマについては、コマの `controlledby` フィールドは、キャラクターの`controlledby` フィールドによって上書きされることに注意してください。コマのゲージ(例:bar1_valueやbar1_max)の場合(例:bar1_link が設定されている場合)、ゲージに値を設定すると、関連する能力値の現在値や 最大値も自動的に更新されるため、両方を手動で設定する必要はありません。さらに、ゲーム内で能力値(またはコマのゲージ)が変更されると、「change:attribute」(およびプロパティ固有の「change:attribute:current」など)イベントが発生し、その後に「change:graphic」(および「change:graphic:bar1_value」)イベントが発生します。どちらのイベントにも応答できますが、能力値イベントが最初に発生するため、その時点では基礎となるゲージ値はまだ更新されません。

ステータスマーカーに関する重要なお知らせ2013年8月6日をもって、トークン上のコマ・マーカーの扱いが変更されました。 Graphic オブジェクトのstatusmarkersプロパティは、トークン上で有効にするべきすべてのステータスマーカーの色およびアイコンを、コンマ区切りで列挙したリストになりました。フォーマットは以下の通りです:

//カンマ区切り(結合して作成するか、分割して配列に変換してください)。
//ステータスアイコンや色の後に「@」記号が続く場合、
//「@」の後の数値が、アイコンのバッジとして表示されます
statusmarkers = "red,blue,skull,dead,brown@2,green@6"

statusmarkersプロパティには直接アクセスすることも可能ですが、既存のスクリプトとの下位互換性を維持し、また、文字列の分割や解析を自分で処理するコードを記述することなくステータスマーカーを簡単に操作できるようにするため、オブジェクト上にステータスマーカーの操作に利用できる一連の仮想プロパティを用意しています。各ステータスマーカーには、status_<markername>というプロパティがあります。例えば:

obj.get("status_red"); //マーカーがアクティブでない場合はfalseを返す。アクティブな場合はtrueを返す。マーカーにバッジが設定されている場合は文字列(例:"2" や "5")を返す。
obj.get('status_bluemarker'); //後方互換性のため引き続きサポートされており、obj.get("status_blue"); と同等です。
obj.set("status_red", false); //マーカーを削除します
obj.set("status_skull", "2"); //スカルアイコンに「2」のバッジを設定し、既にアクティブでない場合はトークンに追加します。

これらの仮想プロパティにはイベントがないため、トークンのコマ・マーカーの変更を監視するには`change:graphic:statusmarkers`を使用する必要があります。なお、例えば`change:graphic:status_red` は有効なイベントではなく、決して発生することはありません。利用可能なステータスマーカーの完全なリスト(マーカートレイに表示される順序と同じ):

赤、青、緑、茶、紫、ピンク、黄、死、頭蓋骨、眠気、半分のハート、半分の霞、禁止、カタツムリ、稲妻の螺旋、 スパナ、鎖で繋がれた心臓、化学ボルト、死の領域、飲んでください、縁のひび割れ、忍者マスク、ストップウォッチ、漁網、オーバードライブ、強さ、拳、南京錠、 "三つ葉", "ふわふわの翼", "打ちのめされた", "踏みつけ", "矢で貫かれた", "オーラ", "背中の痛み", "黒い旗", "出血した目", "ボルトシールド", "傷ついた心", "蜘蛛の巣", "壊れた盾", "翻る旗","放射能", "トロフィー", "砕けた頭蓋骨", "凍った眼球", "転がる爆弾", "白い塔", "掴み", "悲鳴", "手榴弾", "監視砲", "全員で一つ", "天使の衣装", "アーチェリーターゲット"

ページ

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "ページ" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_zorder "" ページ上のオブジェクトの順序を指定する、IDのカンマ区切りリスト。保存された文字列の末尾にはコンマが付いていることが多いため、分割する際は空のセグメントを削除してください。 toFrontとtoBackはこのリストを上書きします。読み取り専用。
名前 "" ページのタイトル。
グリッドを表示 true マップ上にグリッドを表示する。
闇を見せる 偽 マップ上にマスクを表示する。
ショー照明 偽 非推奨となった従来のリモート照明:動的照明を使用するには、動的照明のドキュメントにある「dynamic_lighting_enabled」を参照してください。
幅 25 単位での幅。
高さ 25 単位での高さ。
スナップ増分 1 グリッドスペースのサイズ(単位)
グリッドの不透明度 0.5 グリッド線の不透明度。
霧の不透明度 0.35 GMにとってのマスクの不透明性
背景色 "#ffffff" マップ背景の16進数カラー。小文字で保存されます。
グリッドカラー #C0C0C0 グリッド線の16進数カラー。
グリッドタイプ "square" 正方形、六角形(Hex V)、六角形(Hex H)、二等辺形、または等辺形のいずれか。
スケール番号 5 1単位の距離。
スケール単位 "ft" スケールに使用する単位の種類。
グリッドラベル 偽 六角形グリッドのグリッドラベルを表示する。
対角線タイプ フォーレ 4つのうちの一つ、ピタゴラス(ユークリッド)、スリーファイブ、またはマンハッタン。
アーカイブ済み false ページがアーカイブ保管に格納されたかどうか。
ライトアップデイトドロップ 偽 オブジェクトがドロップされた時のみ、最新の動的照明を更新する。
ライトンフォースロス 偽 非推奨となった従来型の動的照明:オブジェクトに対して視線(LoS)を適用します。
光制限移動 偽 視覚を持つオブジェクトが動的照明の壁を通り抜けることを許可しないでください。
ライトグローバルイルム 偽 非推奨の従来動的照明:コマが「視認」できる範囲のどこかでこの設定が true になっている場合、その場所に明るい光が存在するとみなされます。「動的照明」のドキュメントにある「daylight_mode_enabled」を参照してください
adv_fow_enabled 偽 非推奨:従来型の自動除去マスク。
adv_fow_dim_reveals 偽 非推奨の従来版「自動除去マスク」:薄暗い光が霧を浮かび上がらせる。
adv_fow_show_grid 偽 非推奨の従来版「自動除去マスク」:フォグの中にもグリッドを表示します。
grid_offset_x 0 水平グリッドのオフセット。
grid_offset_y 0 垂直グリッドのオフセット。
force_lighting_refresh null 動的照明の更新をリクエストするように設定されました。デフォルト値はnullであり、ブール値ではありません。
ジュークボックストリガー null ページ読み込み時に再生。オプションには、「なし」、「停止」、「すべて」、またはトラック ID が含まれます。
動的照明有効 偽 動的照明を使用する
デイライトモード有効 偽 「昼間照明モード」を使用する
デイライトモード不透明度 1 「昼間照明モード」での光の明るさを設定します
エクスプローラーモード オフ オプション:オフ、基本
闇の効果 "なし" オプション:なし、darkfog、lightfog
_配置 0 Mod Script サンドボックス v1.5 専用です。ページメニュー内の並べ替え基準。既存のページでは、疎な値(例:2000)が使用されています。この数値で並べ替えを行ってください。配列のインデックスとしては使用しないでください。配置メソッドを介する場合を除き、読み取り専用です。
_path "," Mod Script サンドボックス v1.5 専用です。カンマ区切りのページフォルダID。値は通常、コンマで始まり、末尾に余分なコンマが付くことがあります。分割する際は、空のセグメントを削除してください。配置メソッドを介する場合を除き、読み取り専用です。
_wrapperAutoColor #ffffff Mod Script サンドボックス v1.5 専用です。ラッパーの色を算出しました。読み取り専用。
useAutoWrapper true Mod Script サンドボックス v1.5 専用です。 true の場合、_wrapperAutoColor を使用します。
wrapperColor null Mod Script サンドボックス v1.5 専用です。 useAutoWrapperが false の場合に使用されます。

Mod Script サンドボックス v1.5 専用です。メソッド:placeBefore(obj)、placeAfter(obj)(obj はページまたは ページフォルダ)、placeIn(obj)(objはページフォルダ)。フォルダレベル間を移動すると、_path が更新されます。

PageFolder

Mod Script サンドボックス v1.5 専用です。

pageFolderオブジェクトは、ページメニュー内のページフォルダです。それらを作成したり、削除したりすることができます。フォルダを削除すると、その子フォルダはメニュー上で1つ上の階層に移動します。

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "pageFolder" 読み取り専用。
名前 「新しいフォルダ」 ページメニューに表示されます。
_配置 0 ページメニューから注文してください。
_path "," カンマ区切りの親ページのフォルダID。

メソッド:placeBefore(obj)、placeAfter(obj)(ページまたは ページフォルダ)、placeIn(obj)(ページフォルダ)。フォルダを変更すると、そのフォルダとそのサブフォルダすべての_path が更新されます。 remove() は、子要素を上に移動させた後、フォルダを削除します。

var folder = createObj('pageFolder', { name: 'Dungeons' });

キャンペーン

不動産 既定値 メモ
_id "root" このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "キャンペーン" オブジェクトのタイプを特定したり、オブジェクトを検索したりするために使用できます。ただし、Campaign オブジェクトは 1 つしか存在せず、Campaign() を通じてアクセスできる点に注意してください。読み取り専用。
ターン順序 "" ターン順番のJSON文字列。以下を参照してください。
イニシアチブページ false ターン順番ウィンドウが開いている際にトラッカーで使用されるページID。 false に設定すると、ターン順番ウィンドウが閉じます。
プレイヤーページID false プレイヤーのブックマークが設定されているページのID 以下の「playerspecificpages」で上書きされない限り、プレイヤーにはデフォルトでこのページが表示されます。
プレイヤー固有ページ false 次の形式のオブジェクト(JSON文字列ではない):{player1_id:page_id,player2_id:page_id} … } このオブジェクト内のページに設定されたプレーヤーは、playerpageid を上書きします。
_ジャーナルフォルダ "" ゲームのフォルダ構造に関するデータを含むJSON文字列。読み取り専用。
_ジュークボックスフォルダ "" ゲームの音楽プレーヤープレイリスト構造に関するデータを含むJSON文字列。読み取り専用。
_token_markers "[]" ゲーム内で利用可能なコマ・マーカー(標準およびカスタム)のJSON配列。読み取り専用。「グラフィック」セクションにある「コマ・マーカーの例」をご覧ください。
前景レイヤー表示 true true の場合、プレイヤーは前景レイヤー上のオブジェクトを見ることができます。偽の場合、彼らはそうしない。注:これはすべてのページに影響するグローバル設定です。
tokenBubbleMax 3 有効な値は、コマバブルの数を表す「3」または「4」です。アップグレードされたVTTエンジンで利用可能です。

これらの追加のプロパティは、get 経由ではなく、Campaign() が返すオブジェクトから読み取られます:

不動産 サンドボックス メモ
sandboxVersion 両方 「1.0」または「1.5」
nodeVersion 両方 サンドボックスプロセス用の Node.js バージョン文字列
シート名 v1.5のみ 設定済みのキャラクターシートの略称
計算された要約 v1.5のみ 利用可能なBeaconの計算プロパティ名
アクション概要 v1.5のみ ビーコンシートで利用可能なアクション
log(Campaign().sandboxVersion);

ターン順番ターン順番は、現在のターン順番の一覧を表すJSON文字列です。それはオブジェクトの配列です。現在、ターン順番には一度に1ページ分のオブジェクトしか含めることができません。ターン順番の現在のページIDは、`initiativepage`属性で指定されます。両方を同期させておくことを必ず確認してください。そうしないと、奇妙な結果になる可能性があります。ターン順番を扱うには、JSON.parse()を使用して、現在のターン順番の状態を表すオブジェクトを取得します(注:まず、それが空の文字列""ではないことを確認してください。…。もし空の文字列の場合は、空の配列で手動で初期化してください)。以下に、ターン順番オブジェクトの例を示します:

[
  {
    "id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //GraphicオブジェクトのID。この設定が有効の場合、ターン順番リストは卓上のグラフィックに基づいて自動的に名前とアイコンを取得します。
    "pr":"0", //リスト内のアイテムの現在の値。数値またはテキストである可能性があります。
    "custom":"" //アイテムのカスタムタイトル。 IDが"-1"以外の値に設定されている場合、無視されます。
  },
  {
    "id":"-1", //カスタムアイテムの場合、IDは必ず「-1」に設定する必要があります(これは数値ではなく文字列であることに注意してください。
    "pr":"12",
    "custom":"Test Custom" //カスタムアイテムに表示される名前。
  

ターン順番を変更するには、現在のターン順番オブジェクトを編集し、JSON.stringify()を使用して Campaign の能力値を変更してください。なお、リスト内のターン順番の並びは配列の順序と同じであるため、例えばpush() はリストの末尾にアイテムを追加し、unshift() は先頭にアイテムを追加するなどとなります。

var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //注: まずturnorderが空の文字列ではないことを確認します。空の配列として扱う。
else turnorder = JSON.parse(Campaign().get("turnorder"));
//ターン順番の最後に新しいカスタムエントリを追加する。
turnorder.push({
  id: "-1",
  pr: "15",
  custom: "ターンカウンター"
});
Campaign().set("turnorder", JSON.stringify(turnorder));

Player:

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "pL" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_d20ユーザーID ユーザーID — サイト全体で共通。たとえば、ウィキ上のプレイヤーのユーザーページは /User:ID となります。ここで、ID は_d20userid に保存されている値と同じです。読み取り専用。
_displayname "" プレイヤーの現在の表示名。ユーザーの設定ページから変更できます。読み取り専用。
オンライン false 読み取り専用。
_lastpage "" プレイヤーがGMとして最後に閲覧したページのページID。このプロパティは、プレイヤーとして参加したプレイヤーやGMに対して更新されません。読み取り専用。
_マクロバー "" プレイヤーのマクロバーにあるマクロを、カンマ区切りで並べた文字列。読み取り専用。
speakingas "" 「As」ドロップダウンからプレイヤーが選択したプレイヤーまたはキャラクターのID。空の文字列に設定すると、プレイヤーは自分自身として話します。文字に設定された場合、その値はcharacter|<ID> となります。ここで、<ID> は、そのキャラクターのIDです。
色 #13B9F0 プレイヤー名の横にある四角形の色、およびマップ上のそのプレイヤーの位置情報やピングサークルなどの色。
マクロバーを表示 false プレイヤーのマクロバーが表示されているかどうか。

マクロ

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "マクロ" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_プレイヤーID このマクロを作成したプレイヤーのID。読み取り専用。
名前 "" マクロの名前。
アクション "" マクロのテキスト。
可視化 "" マクロを作成したプレイヤーに加えて、マクロを閲覧できるプレイヤーIDのカンマ区切りリスト。「すべてのプレイヤー」は、リスト内の全員が含まれていることで表されます。
イストークンアクション false このマクロはトークンが選択された際に表示されるべきコマ・アクションですか?

ロール表

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type ロールアブルテーブル オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
トークン名 "new-table"
出演者を表示 true

Mod Script サンドボックス v1.5 専用です。 createToken(properties)は、テーブルアイテムのアバター(マーケットプレイスの画像も使用可能)を辺として使用するグラフィックを作成します。グラフィックを返します。テーブルアイテムにアバターが設定されていない場合、何も作成されません。

テーブルアイテム

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type テーブルアイテム オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_rollabletableid "" このアイテムが属するテーブルのID。読み取り専用。
立ち絵 "" テーブルアイテムに使用される画像のURL。アバターおよびimgsrcに関する制限については、以下の注記をご覧ください。
名前 ""
重量 1 同一テーブル内の他のアイテムと比較したテーブルアイテムの重み。簡単に言えば、重み3のアイテムは、重み1のアイテムに比べて、表を振った際に選ばれる確率が3倍高い。

キャラクター

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "キャラクター" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
立ち絵 "" キャラクターに使用された画像のURL。アバターおよびimgsrcに関する制限については、以下の注記をご覧ください。
名前 ""
略歴 "" そのキャラクターのプロフィール。ノート、GMノート、およびバイオフィールドへのアクセスについては、下記の注記を参照してください。
gmnotes "" キャラクターに関するメモ(GMのみ閲覧可)以下の注記を参照し、Notes、GMNotes、およびbioフィールドへのアクセス方法を確認してください。
保管済み false
インプレイヤージャーナルズ "" このキャラクターを閲覧できるプレイヤーIDのカンマ区切りリスト「すべて」を選択すると、すべてのプレイヤーに閲覧権限が与えられます。「すべてのプレイヤー」は、リスト内のすべてのプレイヤーが含まれていることで表されます。
制御される "" このキャラクターを操作および編集できるプレイヤーIDのカンマ区切りリスト。「すべて」を選択すると、すべてのプレイヤーに編集技能が与えられます。「すべてのプレイヤー」は、リスト内の全員が対象であることを示しています。
_デフォルトトークン "" キャラクターのデフォルトのコマが設定されている場合、そのコマを表すJSON文字列。これは「blob」であり、「bio」や「notes」と同様、get()はコールバックを受け取ります。 set()しないでください。 setDefaultTokenForCharacter を使って記述してください。
inParty false そのキャラクターがパーティーに所属しているかどうか。
タグ "[]" 文字列のJSON配列。空白やコンマは入れないでください。無効なタグは削除され、Mod出力コンソールに警告が表示されます。両方のサンドボックス版で利用可能です。

Mod Script サンドボックス v1.5 専用です。 sheetEnvironment は 「従来」または「beacon」です。 character.sheetEnvironmentとして読み込んでください(get 経由ではありません)。

Mod Script サンドボックス v1.5 専用です。 createToken(properties, options, callback) は、キャラクターのデフォルトのコマからグラフィックを作成します。デフォルトのコマがない場合は、キャラクター立ち絵が使用されます。アバターも存在しない場合、作成は失敗します。マーケットプレイスの画像は使用可能です。 _defaulttoken は非同期であるため、グラフィックは返されるのではなく、コールバックに渡されます。

オプション 既定 メモ
preferAvatar false imgsrc にはキャラクター立ち絵を使用することを推奨します。
多面的な false サイドの生成方法:false を指定すると、デフォルトのコマと同じサイドが生成されます。true または ensure を指定すると、サイドが存在しない場合にimgsrcとavatar が追加されます。replace を指定すると、既存のサイドが上書きされます。appendまたはprependを指定すると、imgsrc および avatar が追加されます。
obj.createToken({ pageid, layer, left: x, top: y }, { multisided: 'ensure' }, function (token) {
  token.set('status_green', 5);
});

能力値

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "能力値" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_characterid "" この属性が属するキャラクターのID。読み取り専用。 createObj を使用する場合は必須です。
名前 "無題"
現在 "" この能力値の現在の値は、チャットやマクロでは「@{キャラクター名|能力値名}」という構文で、技能では「@{能力値名}」という構文で参照できます。
最大 "" この属性の最大値は、チャットやマクロでは「@{キャラクター名|能力値名|max}」という構文で、技能では「@{能力値名|max}」という構文で参照できます。

重要:キャラクターシートのデフォルト値が能力値の使用にどのように影響するかについては、キャラクターシートの操作に関する以下の注記を参照してください。

技能

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内の全オブジェクトにおいて、世界で唯一無二の存在です。読み取り専用。
_type "技能" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
_characterid "" この能力が属するキャラクター。読み取り専用。 createObj を使用する場合は必須です。
名前 "無題_能力"
descriptionq "" 説明はキャラクターシートインタフェースに表示されません。
アクション "" 技能のテキスト。
イストークンアクション false この技能は、親キャラクターにリンクされたトークンが選択された際に表示されるべきトークンアクションですか?

ハンドアウト

不動産 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内のすべてのオブジェクトにおいて、グローバルに一意である。読み取り専用。
_type "ハンドアウト" オブジェクトのタイプを識別したり、オブジェクトを検索したりするために使用できます。読み取り専用。
ピン "[]" このハンドアウトの各部分に関連するピンをそれぞれ表すオブジェクトの配列を含むJSON文字列。
立ち絵 "" ハンドアウトに使用した画像のURL。アバターおよびimgsrcに関する制限については、以下の注記をご覧ください。
名前 「謎のメモ」
メモ "" ハンドアウトのテキストを含みます。ノートとGMノートの使用については、下記の注記を参照してください。
gmnotes "" GMのみが閲覧可能なハンドアウト内のテキストを含みます. ノートとGMノートの使用については、下記の注記を参照してください。
インプレイヤージャーナルズ "" このハンドアウトを閲覧できるプレイヤーIDのカンマ区切りリスト「すべて」を選択すると、すべてのプレイヤーに表示されます。「すべてのプレイヤー」は、リスト内の全員が対象であることを示しています。
保管済み false
制御される "" このハンドアウトを制御および編集できるプレイヤーIDのカンマ区切りリスト。「すべてのプレイヤー」は、リストに全員が含まれていることで表されます。
タグ "[]" 文字列のJSON配列。キャラクタータグと同じルールです。両方のサンドボックス版で利用可能です。

注: Campaign().get("_journalfolder")は読み取り可能です。スクリプトはジャーナルフォルダに書き込みを行うことができません。スクリプトによって作成されたハンドアウトは、ルートディレクトリに配置されます。

デッキ

カードのドロー、配り、シャッフル、呼び出し、拾い上げ、取得、プレイ、および渡すためのヘルパーModスクリプト関数が用意されています:shuffleDeck、cardInfo、recallCards、dealCardsToTurn、drawCard、pickUpCard、takeCardFromPlayer、playCardToTable、giveCardToPlayer。これらは両方のサンドボックス版で利用可能です。関数のドキュメントを参照してください。

不動産 既定値 メモ
_id "" デッキのID
_type デッキ
名前 "" デッキ名
_currentDeck "" 現在デッキ内にあるカード(卓上/手札にプレイされたカードを含む)のカンマ区切りリスト。デッキがシャッフルされると変化する。
_currentIndex -1 デッキ内の現在の位置を示すインデックス、「次にどのカードが引かれるか?」
_currentCardShown true 現在のカードをデッキの一番上に表示する
出演者を表示 true デッキをPLに見せる
プレイヤーは描画できる true プレイヤーはカードを引くことができますか?
立ち絵 "" このカードデッキのカードの裏面
示された false ゲームボード上にデッキを表示する(現在デッキは表示されていますか?)
プレイヤーが確認したカード数 true プレイヤーは、他のプレイヤーの手札枚数を見ることができますか?
プレイヤーはカードの表側を見る false プレイヤーは、他のプレイヤーの手札を覗いたとき、カードの表面を見ることができますか?
GM_seenumcards true GMは、各プレイヤーの手札の枚数を確認できますか?
GM_カード表面を見る false GMは、各プレイヤーの手札を覗き込んだ際、カードの表側を見ることができますか?
無限カード false このカードデッキ/デッキには無限枚のカードがあるのでしょうか?
カードシーケンサー -1 カードを引く際にデッキを進めるために内部で使用される。
プレイされたカード 表向き このデッキのカードはどのように卓上にプレイされるのですか?表向きか裏向きか。
デフォルトの高さ "" 卓上に置かれたカードのデフォルトの高さはどれくらいですか?
デフォルト幅 ""
破棄パイルモード "なし" このデッキはどのような捨て札山を持っていますか? none= 捨て札山なし、choosebacks= プレイヤーがカードの裏面を見て1枚を選べる、choosefronts= 表側を見て1枚を選べる、drawtop= 最も最近捨てられたカードを引く、drawbottom= 最も古い捨て札を引く。
_捨て札 "" このデッキの現在の捨て札はどのような構成になっていますか?コンマ区切りのカードリスト。これらはプレイから除外されたカードであり、リコールが行われるまでシャッフルによってデッキに戻されることはありません。

カード

不動産 既定値 メモ
名前 "" カード名
立ち絵 "" カードの表面
カードの裏面 "" カード裏面の画像を上書きする
_デッキID "" デッキのID
_type カード
_id ""

Mod Script サンドボックス v1.5 専用です。 createToken(properties, options)は、カードがテーブルにプレイされたかのようにグラフィックを生成します(マーケットプレイスの画像の使用も可能です)。グラフィックを返します。

オプション 既定 メモ
asCard true もしそうなら、その図はカードです。 false の場合、カードのように見えるだけの多面体のコマです。
faceup デッキのデフォルト設定 表側または裏側を表示します。currentSide を設定します。

手

各プレイヤーは1つの手札のみを持つこと。

物件 既定値 メモ
現在のハンド "" 現在手札にあるカードのカンマ区切りリスト。これはもはや読み取り専用ではないことに注意してください。理想的には、カードデッキの機能のみを用いて調整すべきである。
_type 手
_親ID "" ハンドの所有者であるプレイヤーのID
_id ""
現在のビュー バイデッキ プレイヤーが手札を開いたとき、表示されるのはデッキ単位か、カード単位か?

音楽プレーヤーの曲

物件 既定値 メモ
_id このオブジェクトの固有ID。このゲーム内のすべてのオブジェクトにおいて、グローバルに一意である。読み取り専用。
_type ジュークボックストラック オブジェクトの種類を特定したり、オブジェクトを検索したりするために使用できます。読み取り専用。
プレイ false トラックが再生中かどうかを判定するために使用されるブール値。これを「true」に設定し、「softstop」を「false」にすると、トラックが再生されます。
ソフトストップ false 非ループトラックが少なくとも一度は終了したかどうかを判定するために使用されるブール値。トラックを確実に再生させるには、これをfalseに設定する必要があります。
タイトル "" 音楽プレーヤースタブにおけるトラックの表示ラベル
巻 30 トラックの音量レベル。この値は整数(文字列ではない)に設定する必要があることに注意してください。そうしないと機能が破損する可能性があります。 0~100の値(パーセンテージ)。
ループ false トラックをループさせるべきですか?そうであればtrueに設定する。

カスタムFX

物件 デフォルト値 メモ
_id このオブジェクトの一意のID。このゲーム内のすべてのオブジェクトにおいて、世界中で唯一無二のもの。読み取り専用。
_type custfx オブジェクトの種類を特定したり、オブジェクトを検索したりするために使用できます。読み取り専用。
トークン名 "" FXリストにおけるFXの表示名。
定義 {} FXを記述するJavaScriptオブジェクト。

imgsrcおよびavatarプロパティの制限

現在、imgsrcおよびavatarプロパティを編集することは可能ですが、Roll20 のすべてのユーザーに安全な環境を提供するため、これらのプロパティに対しては以下の制限を設けています:

  • Roll20ライブラリにアップロードされた画像ファイルを使用する必要があります。外部サイト(Imgurなど)やRoll20マーケットプレイスからのものではありません。保存されたURLは、Roll20のCDN(多くの場合https://files.d20.io/images/...)に書き換えられます。). s3.amazonaws.comというプレフィックスは必須ではありません。また、get("imgsrc") が渡された URL と一致するとは限りません。
  • 渡すURLにクエリ文字列を含めてください。
  • グラフィックのimgsrc値において、サムネイルサイズの名称を指定する必要はなくなりました。画像のURLは、修正済みの保存形式およびCDNの配置先に合わせて調整されます。したがって、obj.get('imgsrc')が作成時に指定したURLと一致するとは期待しないでください。 findObjs() はURL を正規化して照合を行うため、有効な URL であればどのようなものでも検索できます。

ライブラリから画像を削除すると、その画像を使用しているすべてのゲーム(Modスクリプトを使用しているゲームも含む)からその画像が削除されます。

Mod Script サンドボックス v1.5 専用です。 createCopyおよびcreateTokenを使用すると、既存のオブジェクトからコピーして、マーケットプレイスの画像を使用したグラフィックを作成できます。

ノート、GMノート、バイオフィールドの使用非同期

「キャラクター」や「ハンドアウト」の「メモ」、「gmnotes」、または「プロフィール」フィールドにアクセスするには、get()関数の 2 番目の引数としてコールバック関数を渡す必要があります。例を挙げると:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
  log(bio); //ここでキャラクターのプロフィールを何らかの処理に利用する。
});

オブジェクトが作成された後、set()を使用してこれらのフィールドを設定してください。 createObj には、bio、notes、gmnotesを渡さないでください。 notesとgmnotesは、それぞれ別のset()呼び出しで設定してください。 「graphicgmnotes」は通常の文字列であり、このリストには含まれていません。キャラクター_defaulttoken はBLOB です。コールバックを使用して読み取り、setDefaultTokenForCharacter を使用して書き込みを行ってください。

キャラクターシートを使った作業

キャラクターシート機能は、属性オブジェクトタイプの使用に影響を与えます。なぜなら、シートにはシート上の各属性に対してデフォルト値を指定する機能があるためです。ただし、属性がデフォルト値に設定されている場合、そのキャラクターに対してゲーム内に実際のAttributeオブジェクトはまだ作成されていません。この複雑さを隠す便利な機能を提供します。この関数は、特にゲームがキャラクターシートを使用していることが分かっている場合に、能力値の値を取得するために使用すべきです。 getAttrByName(character_id, attribute_name, value_type)キャラクターのID、能力値の名前(IDではない、例:HPやStrなど)を指定し、value_typeには現在の値か最大値のどちらを取得したいかを指定します。例を挙げると:

var キャラクター = getObj("キャラクター", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(キャラクター.id, "str"); // strの現在の値、例:"12"
getAttrByName(キャラクター.id, "str", "max"); //strの最大値、例:"[[floor(@{STR}/2-5)]]"

自動計算された値を持つフィールドは、結果の値ではなく数式を返すことに注意してください。その後、その数式をsendChat()に渡すことで、ダイスエンジンが自動的に結果を計算してくれます。キャラクターシートとModスクリプトの連携に関する詳細については、必ず「キャラクターシート」のドキュメントもご確認ください。 setAttrs、getSheetDefaultValue、getSheetItem、およびsetSheetItem(いずれもサンドボックス)も参照してください。 Mod Script サンドボックス v1.5 専用です。 getComputed、setComputed、performAction。関数のドキュメントを参照してください。

getAttrByName は、属性オブジェクトそのものではなく、その属性の値のみを取得します。 currentやmax 以外の能力値のプロパティを参照したい場合、または能力値のプロパティを変更したい場合は、findObjs など、上記の他の関数のいずれかを使用する必要があります。属性オブジェクトが存在しない場合、getAttrByName()は、その名前に対してキャラクターシートで定義されている値がある場合はその値を返し、定義されていない場合はundefined を返します。

オブジェクトの作成

createObj(type, attributes)

次のような 'graphic'、 'text'、 'パス', 'pathv2', 'キャラクター', '技能', 「能力値」, 「ハンドアウト」, 'rollabletable', 'tableitem', 'マクロ', 'card', 「デッキ」, 「custfx」, 'window', 'door'、および 'pin' オブジェクト。 Mod Script サンドボックス v1.5 専用です。 'pageFolder'. createObj関数を使用すると、ゲーム内に新しいオブジェクトを作成することができます。オブジェクトの型(上記のオブジェクト一覧にある有効な_typeプロパティのいずれか)と、そのオブジェクトのプロパティのリストを含むattributesオブジェクトを、引数として渡す必要があります。なお、オブジェクトに親オブジェクトがある場合(たとえば、属性や技能はキャラクターに属し、グラフィック、テキスト、パスはページに属するなど)、プロパティのリストに親オブジェクトのIDを指定する必要があります(たとえば、能力値を作成する際には、characteridプロパティを含める必要があります)。また、新しいオブジェクトを作成する場合でも、読み取り専用プロパティを設定することはできず、それらは自動的にデフォルト値に設定される点に注意してください。これに対する唯一の例外は、Path を作成する際、pathプロパティを指定する必要があるという点ですが、一度作成された Path のpathプロパティは変更できません。 createObj は新しいオブジェクトを返すため、そのオブジェクトを使って処理を続けることができます。

// サンドボックスの準備が整った後に追加されるキャラクターに「Strength」能力値を作成する。
// 「ready」が実行される前に `add:character` をバインドすると、すでに存在するキャラクターに対してもイベントが発火してしまいます。
on("ready", function() {
  on("add:character", function(obj) {
    createObj("能力値", {
      name: "Strength",
      current: 0,
      max: 30,
      characterid: obj.id
    });
  });
});

オブジェクトの削除

object.remove()

「graphic」、「text」、「path」、「pathv2」、「キャラクター」、「技能」、「能力値」、「ハンドアウト」、「rollabletable」、「tableitem」、「マクロ」、「カード」、「デッキ」、「custfx」、「window」、「door」、および「pin」オブジェクトを削除できます。 Mod Script サンドボックス v1.5 専用です。 'pageFolder'。

.remove()関数を使用すると、既存のゲームオブジェクトを削除することができます。 .remove() 関数は、createObj関数で作成できるすべてのオブジェクトに対して機能します。その関数をオブジェクトに対して直接呼び出します。たとえば、mycharacter.remove(); などです。

グローバルオブジェクト

スクリプト内のどこでもグローバルに利用可能なオブジェクトがいくつか存在します。

キャンペーン() (関数)

Campaignオブジェクトを返す関数。キャンペーンは1つしかないため、このグローバル変数は常にゲーム内の唯一のキャンペーンを指します。 Campaign().get("playerpageid") を使用して、オブジェクトがアクティブなページ上にあるかどうかを確認するなどの操作を行う際に便利です。

都道府県

状態変数は、ゲーム内で実行されているすべてのスクリプトからアクセス可能な、グローバルスコープ内のオブジェクトです。 「state」という名前のグローバル変数を使用するだけで、どの関数やコールバックからでも、いつでもstateオブジェクトにアクセスできます。さらに、状態オブジェクトはMod サンドボックス の実行間でも保持されるため、スクリプトの今後の実行で必要となる情報をそこに保存することができます。注:stateオブジェクトは、Modスクリプトでのみ必要な情報を保存するために使用してください。これは、プレイヤーのコンピュータには送信されず、ゲームファイルのサイズを大きくすることもないためです。ゲーム内で必要な値は、Roll20オブジェクトのプロパティに保存してください。

保存可能な型

stateオブジェクトは、JSON標準でサポートされている単純なデータ型のみを永続化することができます。

タイプ 例 Descriptionq
ブール値 true false 「true」または「false」という値。
番号 123.5 10 1.23e20 JavaScriptがサポートする任意の数値形式。浮動小数点または整数。
文字列 『ハロー・ファンタジー』 「ああ、それから『ワールド』」 標準的なテキストの文字列。
配列 [ 1, 2, 3, 4 ]
[ 'A','B','C'][1, 2, ['bob', 3], 10, 2.5]
任意の型の順序付き集合(他の配列を含む)。
目的 { key: 1, value: 'roll20' } 文字列キーを持つ単純なキー/値オブジェクトで、値には他のオブジェクトを含む任意の型が指定可能。

警告:関数は、最初に状態に保存された時点では正常に動作しているように見えますが、サンドボックスの再起動時など、状態が永続化から初めて復元された際には消えてしまいます。

  • 注:これには、イベントやfindObjs()、getObj()、filterObjs()、createObj() などの関数から取得する Roll20 オブジェクトも含まれます。

重要なお知らせ

stateオブジェクトは、サンドボックス内のすべてのスクリプト間で共有されます。他のスクリプトを壊さないためには、いくつかの簡単なガイドラインに従うことが重要です:

  • 決して ルート状態オブジェクトに直接代入してはいけません。
state = { break: 'all the things' }; // 絶対にこんなことはしないでください!!!
  • スクリプト内で スクリプト内で「state」という名前のローカル変数を使用しないでください。この方法は機能しますが、後続のユーザーにとって混乱を招き、コードが不注意に編集された場合に問題を引き起こす可能性があります。
function turn(){
  var state = Campaign().get('turnorder'); // 推奨されない手法です。避けてください!
  // ...
}
  • 必ず プロパティは、必ず少なくとも1つの名前空間プロパティの下に配置してください。十分に説明的な名前空間プロパティを使用するようにしてください。 「script」や「settings」といった名前は避けてください。モジュールの名前、自分の名前、またはハンドルのいずれかを使用するのが望ましいです。
if( ! state.MyModuleNamespace ) {
  state.MyModuleNamespace = { module: 'my module', ok: 'this is fine!', count: 0 };
}
state.MyModuleNamespace.count++;

使用例

これは、stateオブジェクトを適切に使用した動作例です。

on('ready', function() {
  "use strict";
  // 名前空間付きプロパティが存在するか確認し、存在しない場合は作成する
  if( ! state.MyModuleNS ) {
    state.MyModuleNS = {
      version: 1.0,
      config: {
        color1: '#ff0000',
        color2: '#0000ff'
      },
      count: 0
    };
  }
  // 状態のプロパティを使用して、チャットへのメッセージを設定します。
  sendChat(
    'Test Module',
    '<span style="color: '+state.MyModuleNS.config.color1+';">'+
    'State test'+
    '</span> '+
    '<span style="color: '+state.MyModuleNS.config.color2+';">'+
    'Script v'+state.MyModuleNS.version+' started '+(++state.MyModuleNS.count)+' 回実行されました!'+
    '</span>'
  );
});

オブジェクトの検索/フィルタリング

Modスクリプトには、オブジェクトを検索するために使用できるいくつかのヘルパー関数が用意されています。

getObj(type, id)
この関数は、オブジェクトの_typeと_idが渡された場合、そのオブジェクトを1つ取得します。可能な限り他の検索関数ではなくこの関数を使用するのが最善です。なぜなら、オブジェクトのコレクション全体を反復処理する必要がない唯一の関数だからです。
on("change:graphic:represents", function(obj) {
  if(obj.get("represents") != "") {
    var character = getObj("character", obj.get("represents"));
  }
});

findObjs(attrs)

この関数に属性のリストを渡すと、一致するすべてのオブジェクトを配列として返します。なお、これはすべてのページにわたるあらゆるタイプのオブジェクトに対して適用される点に注意してください。したがって、卓上のオブジェクトを扱う場合は、少なくとも_typeと_pageidに対するフィルターを含めることをお勧めします。

var currentPageGraphics = findObjs({
  _pageid: Campaign().get("playerpageid"),
  _type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
  //現在のページにあるグラフィックであるobjに対して何らかの処理を行う。
});

オプションの第二引数として、以下のオプションを含むオブジェクトを渡すこともできます:

  • caseInsensitive(true/false): true の場合、文字列のプロパティは大文字と小文字を区別せずに比較されます
var targetTokens = findObjs({
  name: "target"
} , {caseInsensitive: true});
//「target」、「Target」、「TARGET」などの名前を持つすべてのトークンを返します。
  • startsWith(true/false): true の場合、文字列のプロパティは接頭辞として一致します。
  • tagMatch:タグの照合時:'all'(デフォルト;オブジェクトにリストされたすべてのタグが含まれる)、'any'(少なくとも1つ)、'only'(リストされたセットに完全に一致する)。
var knights = findObjs({ type: 'キャラクター', name: 'Sir' }, { startsWith: true });

filterObjs(コールバック)

各オブジェクトに対して指定されたコールバック関数を実行し、コールバックが true を返した場合、そのオブジェクトは結果配列に含まれます。現在、ほとんどの用途では filterObjs() の使用は推奨されません。findObjs() には実行速度向上のための組み込みインデックス機能が備わっているため、まず findObjs() で目的のタイプのオブジェクトを取得し、その後配列のネイティブ .filter() メソッドでフィルタリングする方がほぼ常に優れています。

var results = filterObjs(function(obj) {
  if(obj.get("left") < 200 && obj.get("top") < 200) return true;
  else return false;
});
//Results は、卓上の左上隅にあるすべてのオブジェクトの配列です。

getAllObjs()

ゲーム内のすべてのオブジェクト(全タイプ)の配列を返します。 filterObjs を呼び出し、すべてのオブジェクトに対して単にtrue を返すのと同じです。

getAttrByName(キャラクターID, 属性名, 値の型)

属性の値を取得します。属性が存在しない場合は、キャラクターシートのデフォルト値を使用します。 value_typeはオプションのパラメータであり、これを使用して「現在値」または「最大値」を指定できます。 getAttrByName は、属性オブジェクトそのものではなく、その属性の値のみを取得します。 currentやmax 以外の能力値のプロパティを参照したい場合、または能力値のプロパティを変更したい場合は、findObjs など、上記の他の関数のいずれかを使用する必要があります。繰り返しセクションについては、`repeating_section_$n_attribute` という形式を使用できます。ここで、n は繰り返し行番号(0 から始まる)です。たとえば、repeating_spells_$2_nameを実行すると、repeating_spells の 3 行目にあるnameの値が返されます。以下の方法を使用すると、getAttrByNameと同等の動作を実現できます:

// current と max は、対象の能力値およびゲームシステム
// に完全に依存しており、これらを自動的に決定する関数は存在しません
function myGetAttrByName(character_id,
  attribute_name,
  attribute_default_current,
  attribute_default_max,
  value_type) {
  attribute_default_current = attribute_default_current || '';
  attribute_default_max = attribute_default_max || '';
  value_type = value_type || 'current';
  var attribute = findObjs({
    type: 'attribute',
    characterid: character_id,
    name: attribute_name
  }, {caseInsensitive: true})[0];
  if (!attribute) {
    attribute = createObj('attribute', {
      characterid: character_id,
      name: attribute_name,
      current: attribute_default_current,
      max: attribute_default_max
    });
  }
  if (value_type == 'max') {
    return attribute.get('max');
  } else {
    return attribute.get('current');
  }
}
この記事は役に立ちましたか?
26人中23人がこの記事が役に立ったと言っています