current Token/ja
現在トークン
MapToolのドキュメントやMapToolのインターフェイスでは、『現在トークン』という言及を頻繁に目にするだろう。実際には、トークンは常に3つの『カテゴリー』に分類される。
- 選択トークン:選択トークンとは、単純に、ある時点でマップ上で選択されているトークンの事だ。トークンをマウスでクリックした場合(そしてあなたがそのトークンを所有している場合)、そのトークンは選択されていることになり、したがって選択トークンとなる。
- 発言対象トークン:発言対象トークンとは、君がそのトークンとして話し行動しているトークンの事だ。つまり、トークンを発言対象としてチャットにテキストを入力すると、そのトークンの画像と名前が表示され、そのトークンが話しているように見えるのだ。チャットコマンドでサイコロを振ると、あたかもそのトークンがサイコロを振ったかのように表示される。発言対象とは、仮想ゲーム卓環境で自分のキャラクターの『役割』を担う方法である。
- 現在トークン:これは、前述の2つのカテゴリーと重なるので、より厄介である。簡単に言うと、現在トークンとは、マクロコマンドやMapToolの他のコマンドによって変更されたり参照されたりしている『その時』(言い換えれば『現在』)のトークンのことだ。これは、そのマクロに『焦点が当たっている』と考えて欲しい。このため、あるトークンが選択トークン、発言対象トークン、そして現在トークンの3つを同時に持つ事が可能である。
マクロと現在トークン
『現在トークン』の概念は、想像通り、MapToolでのマクロの操作方法の重要な部分である。
MapTool上でトークンを選び『そのトークン上』でマクロをクリックすると、マクロは『自分のトークンに対して自分の操作を行う』という意味だと仮定する。つまり、そのトークンを参照してすべての操作を行う事になる。マクロが特性値を取得するように指示された場合(例えば、『Strength(筋力)』の値を取得する)、マクロはあなたが選択したトークンのStrengthという特性値を検索する。同様に、マクロが『HP』を減らすように指示された場合は、『HP』という名称の特性値がないか、そのトークンを調べる。
一方、地図画面でトークンを選択せずに、キャンペーンパネルやグローバルパネルのマクロをクリックした場合、マクロは何もしないか、チャットウィンドウにエラーを表示する可能性がある。これは、グローバルマクロやキャンペーンマクロがトークン上に常駐していないためであり、もしキャンペーンマクロの中にトークンのプロパティへの参照があっても、どのトークンを示しているのか判らない、つまり『現在トークン』を識別できないのだ。
ライブラリートークンと現在トークン
MapToolのマクロ・システムのより高度な使用方法には、ライブラリートークンの使用が含まれている。これは、他のトークンから呼び出すことができるマクロ関数のライブラリーを収蔵するトークンだ(他のプログラミング言語の関数呼び出しによく似ている)。理解しておくべき重要な点は、非ライブラリートークン(PCやNPCトークン、物体トークン)上のマクロがライブラリートークン上のマクロを呼び出す場合、『現在のトークン』が『呼び出し側のトークン』になると言う事だ。
つまり、勇敢なるグログナーというトークンのマクロがライブラリートークン上のマクロ『Roll Attack
』を呼び出した場合、『Roll Attack
』に関する限り、現在トークンは勇敢なるグログナーであり、すべての変数参照、特性値参照、操作は勇敢なるグログナーに対して実行され、ライブラリートークンに対しては実行されない。
ライブラリートークン自体に対する操作(ライブラリートークンから情報を取得したり、ライブラリートークンの特性値に値を設定するなど)は、setLibProperty および getLibProperty 関数を使用する。
現在トークンと選択トークン/発言対象トークンの違い
選択トークンとは、単純に、トークンをクリックしたり、選択範囲をドラッグしたり(あるいはSHIFTを押しながら複数のトークンをクリックしたり)して選択した単一のトークンやトークン群のことである。『現在トークン』は、選択トークンと関連しているが、いくつかの重要な違いがある。
ほとんどの場合、どのトークンが現在トークンであるかを判断するのは非常に簡単だ。それは、選択トークン(トークン上のマクロおよび『選択トークン』上で実行されるように設定されたマクロの場合)または発言対象トークン(キャンペーンおよびグローバル マクロの場合)となる。これは理にかなっている。MapToolのトークンを操作する最も簡単な方法は、トークンを選択してから何かをすることであり、選択したものに対してマクロが実行されることを前提としている。
しかし、現在トークンは選択されているトークンとは限らない。[[switchToken] や [[Macros:Branching_and_Looping#TOKEN_Option|token roll option] のようなマクロコマンドを使用して、特性値を取得または設定する目的で、マクロが『現在トークン』とみなすものを変更することが可能だ。これは非常に便利な機能で、敵のヒットポイントを減らしたり、NPCのトークンに命中したかどうかを確認したりすることができる。しかし、現在トークンと、選択トークンや発言対象トークンが常に同じものであると見做すことはできないという事にもなる。
要するに 一般的なプレイでは、選択トークンや発言対象トークンが現在トークンと異なる可能性はほとんどない。マクロを書くときには、この違いにもっと注意を払う必要があるだろう。
トークンの名称について
MapToolの設計方法により、すべてのトークンが固有の名称を持つことが強く推奨される。もしそうでなければ、マクロは『適切な』現在のトークンを認識するのに問題が発生する――もし『オーク』という名前の2つのトークンがあれば、実際には『オーク』という名前の『もう1つ』のトークンに影響を与えようとしているのに、マクロは間違った方を見て、その特性値を変更してしまう可能性がある。そのため経験則としては、複数のトークンに同じ名前を使わないようにした方が良いだろう。
まさにこの理由のために、MapToolにはトークンへの『自動番号付け』が組み込まれている。例えば、『オーク 1』というトークンを3回複製すると、『オーク 2』、『オーク 3』、『オーク 4』という3つのトークンが作られる。番号付けのオプションは、編集 → ソフトウェア設定から呼び出す『MapTool設定』ダイアログで選択できる。