マクロとコマ・アクション

マクロ & コマ・アクションは、頻繁に繰り返されるコマンド用のカスタムショートカットです。 マクロはゲームの一部です。 コマ・アクションは個々のキャラクターに属する。 それ以外は同じ技術です。 詳細はこちらをご覧ください

例えば、キャラクターに戦いの雄叫びを上げさせ、よく使うスキルを自動的に発動させるショートカットを作成することができます。 すぐにアクセスできるように、これらのコマンドをクイックバーコマ・アクションに追加することができます。


最初のマクロの作成

VTTの「コレクション」タブに移動してください。 「マクロ」の見出しの横にある「 +追加」ボタンを クリックします。 ここで最初の簡単なマクロを書くことができます。 

 

 

まずは、チャットに1行のテキストを送信し、d20を振るだけの、ごくシンプルなマクロから始めましょう。 

名前: 初めてのマクロ

行動: 

これが私の初めてのマクロ写真です!
/ロール 1d20 + 5

 

 

より高度なマクロ

では、より高度なマクロを試してみましょう。 このマクロは、D&D 5Eのいずれのゲームでも使用でき、選択したコマのセーヴィング・スローをロールすることができます。 これはPCにもNPCにも同様に適用されるため、GMはダイスを振る際にキャラクターシートを開く必要が一切ありません。

 

名前: セーヴィング・スロー

行動: 

/w GM &{template:default} {{name=@{selected|token_name} は、?{セーヴィング・スローを選択|
筋力 (@{selected|strength_save_bonus}), 筋力セーヴィング・スロー [[1d20 + @{selected|strength_save_bonus}]]|
敏捷力 (@{selected|dexterity_save_bonus}), 敏捷セーヴ [[1d20 + @{selected|dexterity_save_bonus}]]|
体力 (@{selected|constitution_save_bonus}), 体力セーヴ [[1d20 + @{selected|constitution_save_bonus}]]|
知力 (@{selected|intelligence_save_bonus}), 知力セーヴ [[1d20 + @{selected|intelligence_save_bonus}]]|
知恵 (@{selected|wisdom_save_bonus}), 知恵セーヴ [[1d20 + @{selected|wisdom_save_bonus}]]|
魅力 (@{selected|charisma_save_bonus}), 魅力セーヴ [[1d20 + @{selected|charisma_save_bonus}]]}}}


初めてのコマ・アクションの作成

コマ・アクションは、個々のキャラクターに固有のマクロの一種です。 コマンド自体は基本的に同じですが、使用される文脈が異なります。 各キャラクターシートの「詳細ツール」>「能力値」 & >「技能」タブで、これらを確認・管理できます。

 

 

ショートカット! Roll20の「D&D 2024」シートを使用している場合、コマ・アクションの作成は驚くほど簡単です。 キャラクターシートを開き、任意のアクションや技能のモーダル画面を表示して、「トークンバーに追加」を選択してください。

HCトークンアクションクリエイター.png

 

それ以外の場合は、キャラクターシートの「詳細ツール」タブから、「+ 新しいマクロ」ボタンをクリックしてください。 D&D 5Eのゲームで、キャラクターのイニシアティブを自動的にロールし、その結果をRoll20のターントラッカーに追加するスクリプトを作成します。

名称:イニシアチブ

マクロ:

 @{selected|token_name} がイニシアチブ判定を行います!
/roll 1d20 + @{selected|initiative_bonus} &{tracker}


マクロの使用 & コマ・アクション

マクロは、マクロ・クイック・バーにある対応するボタンを押すか、チャットに直接入力することで実行できます! チャットでマクロを実行するには、次のように入力してください# とコマンドを入力します(例: #test)と入力し、Enterキーを押します。

コマ・アクションは、トークンアクションバーの関連するボタンを押すことで起動できます。 


複数コマンド

マクロシステムの強みのひとつは、1つのコマンドで複数のアクションを実行できる点です。 これを行うには、各アイテムをそれぞれ別行に記述するだけで、マクロを実行すると、その順序通りに処理が実行されます。

エモートに加え、攻撃とダメージのロール結果も表示するマクロを作成したい場合、そのマクロは次のようなものになります:

名前: ダガー

マクロ:

/me 短剣を突き刺す
/roll 1d20+10 vs AC
/roll 1d4+9 Damage


 

マクロには、コマンド行と非コマンド行を混在させることもできます。例えば、次のようなものです:

/me モラディンの力を呼び起こす!
おまえを打ち砕く!
/反射神経判定 1d20+4 対抗
/ダメージ判定 1d8+4

 

まず感情を表現し、次に「おまえを打ち砕く!」と送る"をチャットに入力してから、その後で2回ダイスを振ってください。


ネストされたマクロ

マクロは互いにネストすることができ、これにより、マクロを組み合わせたり、1つの操作で複数のマクロを呼び出したりすることが可能になります。 マクロをネストするには、呼び出したいマクロの名前を、そのマクロ内の別の行に記述するだけです。


この例では、3つのマクロを用意します:#damage#attack#both

マクロ #damage = /roll 1d4+11
マクロ #attack = /roll 1d20+9
マクロ #both =
#attack
#damage

ダイスロールクエリ内でのネスト

ロールクエリ内にマクロをネストさせる場合は、マクロ名が正しく認識されるよう、マクロ名の後にスペースを入れるようにしてください。

?{どのマクロ?|攻撃,#use-sword |防御,#use-shield }

トラブルシューティング

演算の 演算の優先順位により、ダイスロールクエリ内にネストされたマクロ呼び出しは、クエリ全体が実行される前に完全に展開されます。 つまり、ダイスロールクエリ内にネストされたマクロに、クエリ構文と競合する「問題となるキャラクター」(「}」、「,」、「|」など)が含まれている場合、そのマクロによってクエリ全体が正常に動作しなくなる可能性があります。 その理由は、クエリが、参照先のマクロに含まれる問題のあるキャラクターを、元の構文の一部として扱うためです。

その場合は、(呼び出されたマクロ内部で)問題のあるキャラクターを削除するか、HTMLエンティティに置き換える必要があるかもしれません。

HTMLエンティティの置換を含むマクロは、Roll Queryの外では機能しなくなる可能性があります。 次のように保存する必要があります 技能として保存する必要があります。

「Collections」マクロを再度開くと、HTMLエンティティが元に戻ります。その後、そのマクロを保存すると、その変更も保存されます。 この動作は、 技能には見られません。


営巣技能

「技能」とは、特定のキャラクターに固有のマクロの別名であり、「ジャーナル」タブにあるキャラクターシートで作成されます。 マクロと同様に、技能も互いにネストさせることができ、これにより技能を連鎖させたり、1回のアクションで複数の技能を発動させたりすることが可能になります。

技能のネストは、マクロのネストと似ていますが、少し違いがあります。 マクロと同様に、呼び出し元となる技能の内部で、呼び出したい技能の名前を単独の行に記述するだけです。 さらに、ハッシュ記号(#)をパーセント記号(%)に変更し、技能名の前にキャラクター名を、縦棒(|)で区切って追加する必要があります。

縦棒キーは、ほとんどのキーボードでバックスラッシュキー(\)の上にあります。 このキーは、通常、米国仕様のキーボードではEnterキーの近く、欧州仕様のキーボードでは数字キーの列にあります。

注意

現時点では、技能参照記号(%)は、能力値参照記号(@)やマクロ参照記号(#)のように自動補完されません。 コマンド全体を手動で入力する必要があります。


この例では、3つの技能を用意します。%ddamage%aattack%bboth、そして「Bugbear」という名前のキャラクターです。

技能%damage = /roll 1d4+11
技能%attack = /roll 1d20+9
技能%both =
%{Bugbear|attack}
%{Bugbear|damage}

その他の例

以下にシステム固有の例をいくつか示します:

DnD 5e/Next マクロ

パスファインダー マクロ


技能コマンドボタン

「技能コマンドボタン」を使用すると、 技能 (またはシートボタンのロールボタン)を呼び出すことができます。 これらは Mods (API) コマンドボタンと密接に関連しています。 

その構文は以下の通りです:

[ラベル](~<キーワード>|<技能名>)

「 能力値 や 技能 の呼び出しと同様に、キーワードには「selected」、「target」、または「character_name」のいずれかを選択できます。 character_id をキーワードとして使用することもできます。 

もし、 キャラクターウィンドウのいずれかのタブ内に「アビリティコマンドボタン」が保存されている場合、キーワードを省略することもできます:

[ラベル](~<技能名>)

前の例に続き、 「技能」の例に続き、スレイヤーのボブは、敵をより手軽に切り刻めるように、自身の別の技能に[斧を振るう!!](~巨大な斧)を組み込むかもしれない。


能力値マクロ

能力値マクロは上記の例を組み合わせたものです。 キャラクターに割り当てられた能力値を変数の修飾子として活用することで、そのキャラクターに基づいた複雑なマクロを作成することができます。 マクロ内の変数はキャラクターの能力値に紐付けられているため、キャラクターエディタで変更を加えると、その値が自動的に更新されます。


選択したコマをマクロで使用する

選択したキーワードを使用すると、ロール/マクロの実行時に、画面上で現在選択されている要素から情報を取得することができます。 たとえば、ダイスロール中に選択されたコマから「Bar 1」の値を取得したい場合は、次のように記述します:

/roll 1d20 + @{selected|bar1}

「bar1」、「bar2」、または「bar3」を使用できます。 さらに、そのコマにリンクされているキャラクターから能力値を取得することもできます:

/roll 1d20 + @{selected|Intelligence}

「token_name」変数を使用すると、現在選択されているトークンの名前を取得できます:

/em @{selected|token_name} 銃を撃つ!

選択したトークンにキャラクタージャーナルが紐付けられている場合、「character_name」変数を使用する代わりに、そのキャラクタージャーナルから名前を取得することができます:

/em @{selected|character_name} 盾でブロック!

リンクされたキャラクタージャーナルの技能は、技能名を変数として使用することで発動させることができます:

>%{selected|Attack}

最後に、変数に対して3つ目の引数を導入しました。これにより、ゲージや能力値の「最大値」を取得できるようになりました:

/roll 1d20 + @{Guard|Intelligence|max}
/roll 1d20 + @{selected|bar2|max}

キャラクター名、能力値、技能名を含むすべての名称は、使用時に大文字と小文字の区別はありません。 つまり、「GUARD」も「guard」も、名前が「Guard」のキャラクターに一致することになります。

注意

キャラクターの能力値の完全な一覧を確認するには、そのキャラクターのシートを開き、「能力値 & 技能」というタブをクリックしてください。 「+ 追加」をクリックすれば、マクロで使用される独自の能力値を簡単に追加できます。


能力値とキャラクターシート

キャラクターシートには、カスタムマクロで参照したいと思われるような能力値が多数記載されています。 「自動計算式能力値」についてひとつ知っておくべきことがあります キャラクターシートには、他の能力値を基にした計算式によって算出された能力値が記載されていることがよくあります。 その能力値を参照すると、値の代わりに数式が表示されます。

@{selected|character_name} には @{selected|action_points} ポイントが残っています。

ロルフの残りのポイントは((ceil(((13+0)+(14+0))/12)+0)+0)です。

この問題を回避するには、属性参照をインラインロールで囲む必要があります:

@{selected|character_name} には [[@{selected|action_points}]] ポイントが残っています。

ロルフはあと3ポイント残っている。


マクロでのターゲット指定コマの使用

「selected」キーワードを使用して選択されたコマから情報を取得するのと同様に、「target」キーワードを使用すると、ターゲットのコマの変数や技能にアクセスすることができます。 このコマンドを使用すると、プレイヤーは通常は選択できないコマから選択できるようになり、敵との対決時に役立ちます。 例えば、プレイヤーに「知性」能力値を持つターゲットに対して1d20を1回振るよう指示した場合、そのダイスロールは次のように表示されます:

/roll 1d20 - @{target|intelligence}

これにより、プレイヤーが対戦相手のコマを選択するためのプロンプト画面が表示されます:

ターゲットを選択.png

ターゲットキーワードの使用方法は、前述の「選択キーワード」と同様ですが、主に2つの違いがあります。 まず、「target」キーワードを使用すると、プレイヤーは自分がコントロールしていないコマの値を利用できるようになります。次に、能力値の「max」部分を参照するための構文が若干異なります。 完全な構文の詳細については、以下の「高度な使い方」のサブセクションを参照してください。


ターゲット能力値呼び出しの高度な使用法

ターゲット変数の完全な構文は次のとおりです:

@{target|<target_name>|<attribute_name>|<optional_flags>}

(なお、「target_name」は任意の名前を指定でき、スペースを含めることも可能です。)

したがって、マクロ内に複数のターゲットを設定したい場合は、次のようにします:

@{target|Target1|HP} vs @{target|Target2|AC}

能力値の最大値を使用したい場合:

@{target|Target1|HP|max}

なお、属性の「max」を使用したい場合は、たとえ上記のように単に「target1」と指定しただけであっても、属性名を明示的に指定する必要があります。

また、複数の属性クエリで同じ `target_name` を使用する場合、その入力の要求は 1 回のみ行われ、すべての属性クエリの処理には同じトークンが使用されます。 これは、複数行にわたるマクロやコマンドの場合にも当てはまります:

/me が @{target|foe|character_name}を攻撃!
命中判定:[[1d20+3]] vs. @{target|foe|npc_AC} AC

繰り返し能力値の参照

行インデックスによる

繰り返し行内の能力値は、そのRowIndex によって参照できます。 能力値のRowIndexは0から始まります(インデックスは先頭からのオフセットを意味します)。したがって、1行目は$0、2行目は$1、3行目は$2……というように割り当てられます。

「Items」という名前の反復セクションの場合、キャラクターの2番目のアイテムの「ItemBonus」能力値には、次の構文でアクセスできます:

@{selected|repeating_items_$1_itembonus}

注記: 


行IDによる

RowIDを使って能力値を参照することもできます。 RowIDを使用する利点は、順序の変更(行の削除や並べ替えなど)の影響を受けないことです。 RowIDを取得するには(キャラクターシートの著者が何らかの形で提供していない場合)、シートのソースを確認する必要があります。 HTMLを上にたどって、data-reprowid というプロパティを持つタグが見つかるまで探してください。 このプロパティの値はRowID です:

<div class="repitem" data-reprowid="-KC0zCLum1Rq3V5wssyE">

その後、RowIndexの代わりにRowIDが使用されます:

@{selected|repeating_items_-KC0zCLum1Rq3V5wssyE_itembonus}

ダイスロールのオプション

「ダイスロールオプション」とは、ダイスロールの結果に基づいて実行される特別なアクションを示すために、ダイスロール内で使用されるフラグのことです。


先制行動の判定

ダイス出目をターントラッカーに直接送信するには、コマまたはイニシアチブを選択し、マクロに以下のダイスロールオプションを含めてください:

/ロール 1d20 + 5 &{tracker}

Roll20の「トラッカー」ダイスロールオプションは、ロールの結果を表示し、その結果をターントラッカーの値として使用します。 選択したコマがターン順番に順番を持っていない場合、新しいコマが追加されます。 すでにターン数が設定されている場合は、新しい値に更新されます。

さらに、以下のフラグを使用することで、選択したコマの現在のターン値にダイスの出目を加算したり、差し引いたりすることができます:

/roll 1d20 + 5 &{tracker:+}
/roll 1d20 + 5 &{tracker:-}

『シャドウラン』のように、毎ターン終了後に現在のイニシアチブから10を引く必要があるゲームの場合、次のようなグローバルマクロを設定することができます:

/me @{selected|token_name} のターンが終了します。 [[10 &{tracker:-}]]

なお、トラッカーフラグは通常のロールとインラインロールの両方で機能することに注意してください。

これらの値は、能力値と同じ方法で、次の構文を使用して参照することもできます:@{tracker|アイテム名}


エラーメッセージの抑制

「noerror」ロールオプションを指定すると、ロール中に発生するエラー(変数が見つからないといったエラーなど)がすべて抑制されます。

/roll 1d20 + @{selected|nonexistent_attribute} &{noerror}

変数とマクロの使用

実行時に指定した変数をマクロに組み込む最も簡単な方法は、ロールクエリを使用することです。 たとえば、ダイスロールに変数修飾子を追加したい場合は、次のようなマクロを作成できます:

/roll 2d20 + ?{Modifier|0}

マクロが実行されると、どの修飾子を含めるかを尋ねるプロンプトが表示されます。 修飾子が指定されていない場合、クエリの「|0」の部分は、デフォルト値として0を使用するよう指示します。

ロールクエリに関する詳細については、『Diceリファレンス』を参照してください。


チャットで変数を指定する

マクロの実行時に変数修飾子を使用したい場合は、マクロコマンドの末尾にその修飾子を付け、マクロを呼び出す際にそれを指定してください。

例えば、1d20+x(xは変数の値)というマクロを作成したい場合は、次のようなマクロを作成できます:

#d20 /1d20をロール+

マクロを実行するときは、次のように入力してください:
 

#d204

このマクロは結果を生成します /roll 1d20+4


ロールクエリ用ドロップダウンプロンプト

自由入力用のテキストフィールドだけでなく、プレイヤーに提示できるオプションのリストを指定することもできます。

構文は以下の通りです:

?{Name of Query|Option1|Option2|Option3|Option4|Option5}

また、次のように、label 以外の値を結果として指定することもできます:

?{Name of Query|Label 1, value1|Label 2, value2}

特殊攻撃:

... + [[ ?{奇襲攻撃?|いいえ, 0|はい, 3d6} ]] + ?{パワーアタック?|いいえ, 0|はい, 6 [パワーアタック!]}

D&D 5e 攻撃ロール:

[[ ?{攻撃タイプ|標準、1d20|有利、2d20kh1|不利、2d20kl1} ]]

治癒の呪文:

?{呪文|
   軽傷治療、**軽傷治療** 対象は[[1d8+5]] HPを回復する。 
   中程度の傷を癒す、**中程度の傷を癒す**対象は[[2d8+8]]のHPを回復する。 
   深刻な傷を癒す、**深刻な傷を癒す**対象は[[3d8+8]]のHPを回復する。
}
 

 


例(ロールクエリのネスト)

?{クエリ名|
   ラベル1, ?{値1|
      ラベル1A, 値1A |
      ラベル1B, 値1B 
   } |
   
   ラベル2, ?{value2|value2} 
}

HTMLエンティティを「積み重ねる」ことで、さらに深いネスト構造を実現することができます:

キャラクター 代替
& &amp;

?{クエリ名|
   ラベル1, ?{value1|
      ラベル1A, ?{value1A&#124;
         ラベル1Ai&#44; value1Ai &#124;
         ラベル 1Aii&#44; value1Aii
      &#125; |
      
      ラベル 1B, ?{value1B&#124;
         ラベル 1Bi&#44; value1Bi &#124;
         ラベル 1Bii&#44; value1Bii
      &#125;
   } |

   ラベル 2, ?{value2|value2} 
}

マクロゲージ

任意のマクロに対して、画面下部のゲージに表示されるクイックアクセスボタンを作成することができます。 まず、いつものようにマクロを作成してください。 マクロ・クイック・バーを有効にするには、設定メニューの「マクロ・クイック・バーを表示」にチェックを入れてください。

クイックバーを表示.png

ゲージにマクロを追加するには、マクロ名の横にある「ゲージに表示」オプションにチェックを入れるだけです。 マクロ・クイック・バーの表示をオンにするのを忘れていた場合、マクロを有効にすると、自動的にクイックバーが表示されます。

マクロインバー.png


クイックバーと選択中のマクロが、画面下部のキャラクターポートレートの下に表示されるようになりました。 ボタンの配置を変更するには、ボタンにカーソルを合わせ、右側に表示されるハンドルを使ってドラッグしてください。 ハンドルをクリックしてボタンの配置を変更するか、ドラッグして画面の外へ移動させて削除してください。

マクロバー.png

マクロ・クイック・バー上のマクロをShiftキーを押しながらクリックすると、そのマクロのエディタが開きます。


マクロメニュー

プレイヤーやGMは、マクロクイックバー上のマクロ ボタンを右クリックすると、設定メニューが表示されます。このメニューからは、マクロの表示方法に影響を与えるいくつかの簡単な機能を利用できます。

マクロ右クリックメニュー.png

名前変更

[名前の変更] エントリを選択すると、マクロに表示する新しい名前を入力するよう求めるダイアログが表示されます。 これは、キャラクターシートからボタンをドラッグして作成したマクロの場合に特に便利です。

」のエントリを選択すると、カラーピッカーが表示されます。 これにより、マクロボタンの背景色を変更して、各ボタンを視覚的に見分けやすくすることができます。 選択した背景色とのコントラストを保つため、ボタンのテキストの色が変更されます。


オートコンプリート

Roll20の一部のテキストエリアでは、 自動補完 に対応しています:

  • マクロ (using #を使用)
  • 能力値 (使用方法 @を使用)
  • 技能 (使用 %を使用)

オートコンプリート機能を使えば、マクロ、能力値、または技能のフルネームを入力しなくても、それらをすばやく参照できます。

適用範囲

オートコンプリートは以下の言語で利用可能です:

  • その 「アクション」 マクロの作成または編集時の「アクション」フィールド

  • その アクション フィールドの 技能 の「アクション」フィールド(キャラクターの「能力値」 & 技能」タブ内)

  • テキストチャット ウィンドウ

仕組み

  1. 「#」「@」、または「%」のいずれかの記号を1つ入力し、その後に数文字のアルファベットまたは数字を入力してください。

  2. Roll20には、挿入可能なマクロ、能力値、または技能の一覧が表示されます。

  3. 以下の 上/下の矢印キー でリスト内を移動し、 Enter キーを押して選択します。

アクセス規則

  • 以下の マクロが画面に表示される コレクション内で 「コレクション」 タブに表示されるマクロのみが表示されます。

  • のみ 能力値と技能 から あなたがコントロールしているキャラクター のみが表示されます。

知力」という能力値を持つキャラクターを操作する場合は、次のように入力してください:

@int

このリストには、@intelligence など、「int」を含むすべての能力値が表示されます。

ヒント

チャットで、キャラクターシートから何かをロールした後、 上矢印 キーを押してください。

ロールを生成したコードを公開します。 複数のロールを1つのカスタムマクロボタンにまとめるのに最適です。


ロール表

マクロ内では、ロール表を使用できます。 プレイヤーがマクロでそれらを使用できるようにするには、GMがそれらを作成し、プレイヤーに見えるようにする必要があります。


ダイスロールテンプレートの使用

キャラクターシートを使用する際は、通常、「ロールボタン」をクリックするか、マクロや技能の中でシートロールを呼び出すことで、ダイスロールテンプレートを使用することになります。 シート作成者が事前に設定済みですので、追加の操作は不要です。

独自のカスタムマクロでロールテンプレートを使用したり、独自のカスタムテンプレートを作成したりすることに興味がある場合は、引き続きお読みください。

ロールテンプレートの使用は簡単です。 チャットメッセージに、ロールテンプレートを使用することを示すフラグを含め、必要なデータを指定してください。 以下は、システムやキャラクターシートに関係なく、すべてのゲームで利用できるデフォルトのテンプレートを使用した例です:

&{template:default} {{name=テスト攻撃}} {{attack=[[1d20]]}} {{damage=[[2d6]]}}

&{template:<template_name>} は、指定された名前のロールテンプレートを指定します。 あとは、テンプレートに必要なデータをすべて、{{<propertyname>= <value> }} という形式で指定するだけです。 使用する「propertyname」はテンプレートによって異なります。利用可能な項目については、キャラクターシートのドキュメントをご確認ください。また、以下のページでは、すべての組み込みテンプレートに関するドキュメントを掲載しています。 「Value」には、テキストまたはインラインロール(マクロや技能などを含む)を指定できます。 マクロや技能を使用する場合は、「/roll」コマンドではなく、インラインロールで実行する必要がある点に注意してください。

以下は「%{Character|attack}」技能を使用した例です:

&{template:default} {{name=技能で試す}}{{attack= %{Character_Name|attack} }}{{damage= #damagemacro }}

 


ロールテンプレートはいつ使用できますか?

ロールテンプレートは、一般メッセージ(「/desc」や「/emote」などのコマンドを伴わないもの)や秘話で使用できます。 「/roll」コマンドではロールテンプレートを使用することはできません。ロールテンプレートは、インラインロールで使用することを想定しています。 インラインダイスを使用している限り、マクロやキャラクター技能と組み合わせてロールテンプレートを利用でき、シート作成者はシート上のロールボタン内でそれらを使用することができます。

 

 
この記事は役に立ちましたか?
576人中440人がこの記事が役に立ったと言っています