エフェクト(FX)ツール

エフェクト (FX) ツールは、ボタン一つで動的な視覚効果を作成でき、物語に命を吹き込むのに役立ちます。 このツールには、プリビルドのパーティクルエフェクトライブラリと、カスタムパーティクルエフェクトを作成する技能が搭載されています。

以前は、エフェクト (FX) ツールはProサブスクライバーのみが利用可能でした。 Roll20の新卓上エンジンのリリースに伴い、このツールは強化され、有料プランの有無に関わらず、すべてのユーザーが事前構築済みエフェクトを利用できるようになりました。 プロサブスクライバーは、カスタムエフェクトの作成および変更技能へのアクセスを維持します。

 

カスタムエフェクト

カスタムエフェクトを使用すると、組み込みの限られたエフェクトよりも多くのパーティクル放出パターンを作成できます。 プロ契約者はカスタムエフェクトの作成と編集が可能。 部屋の作成者がPro有料プランを所有している場合、カスタムエフェクトはすべてのプレイヤーがゲーム内で閲覧・使用できるようになります。

独自のカスタムエフェクトを作成するには、まず左のツールバーからエフェクトツール(ワンドアイコン)を選択し、メニューから「+カスタムエフェクト」を選択します。 マクロダイアログのようなダイアログが開き、デフォルトエフェクトで利用可能なさまざまな属性を変更したり、この記事で後述する追加プロパティ/属性を追加したりできます。 この情報はJSONフォーマットでなければなりません。フォーマットが正しくない場合、新しいカスタムEffectを保存することができません。 JSONが何なのかよくわからない場合は、デフォルトのコードの一般的なフォーマットから始めて、数字を変えるだけでいい。 また、記事の中でさらに説明されている追加プロパティのコード・スニペットを追加することもできる。

カスタムエフェクトのプロパティ

これらの特性(粒子放出パターンの能力値)は、当社のクラシック卓上カスタムエフェクト機能と、新しい卓上エンジンとの間で共有されています。

角度
これは、パーティクルがスポーンポイント(カーソル位置)から放出される角度です。 角度の単位は、0が右を指すところから始まり、90が真下、180が左、270が真上となる。 この値に-1を入力すると、使用するたびに「狙いを定めて」くださいと表示されます。 これは、エフェクトを使うたびに異なる方向に発射したい場合に便利です。

角度ランダム

粒子が元の角度から左右にどれだけ広がったか。 angleRandomを45にすると、元の角度を中心とした90度の射撃アークになる。

duration
マウスを押したままでも効果が持続する時間です。 これはマウスを押し続けることができないので、持続時間中続くことになる。 この場合の最大持続時間は50で、ちょうど約2秒である。 また、ボムやノヴァのように、パーティクルのバーストを1回だけ発生させたい場合にも有効で、持続時間はわずか10秒です。 持続時間を-1に設定すると、マウスボタンを押し続けている間だけ効果が持続し、そうでなければボタンを押し続けていても持続時間が終了すると効果は停止します。

emissionRate
パーティクルが生成され、原点から発射される速さの指標です。 このアトリビュートはmaxParticlesアトリビュートと密接に結びついており、この制限に達した場合、システムはパーティクルの生成を停止します。

gravity
この属性は、xとyの2つの "副属性 "を持つ唯一の属性である。 この2つのオプションがあるのは、「重力」をどの方向にも働かせることができるからだ。 どちらの属性にも0は使えないので、"重力なし "には0.01を使う。 XとYはどちらもプラスとマイナスの値を受け入れ、Yがプラスなら粒子は下に引っ張られ、マイナスなら粒子は上に引っ張られる。

lifeSpan
lifeSpanは、パーティクルが消滅するまでの時間を定義する。 この属性はスピードと組み合わされ、パーティクルが破壊されるまでの飛距離を決定する。

ライフスパン・ランダム


エフェクトの寿命が10で、lifeSpanRandomが5の場合、パーティクルは5~15の間生きている。

maxParticles
maxParticles は、特定のエフェクトについて、一度にボード上に存在できるパーティクルの総数を定義します。 この最大値に達すると、すでに存在するパーティクルのいくつかが「寿命」を迎えるまで、パーティクルは生成されなくなる。

size
sizeは、生成される粒子の相対的な大きさを定義します。

サイズランダム


エフェクトのサイズが10、sizeRandomが5の場合、粒子のサイズは5~15となる。

speed
speed は粒子が原点から遠ざかる速度を定義する。

スピードランダム


エフェクトのスピードが10でsizeRandomが5の場合、粒子のスピードは5~15になる。

startColour / endColour
start/endColourは、それぞれパーティクルが生成されるときと破壊される直前の色を、配列[Red, Green, Blue, Alpha]を使って定義します。 色のRGBは0〜255の値を使用し、アルファ・チャンネルは0〜1の10進数です。 特定の色をお探しなら、お好きな検索エンジンで "16進カラーピッカー "と調べれば、お探しの数字が見つかるはずです。 色は、その寿命の間に開始値から終了値まで薄くなる。 すべてのパーティクルが重なり合って始まるので、色は思ったよりもずっと明るくなりがちで、白のボールになってしまうので、少なくともstartColourブロックでは暗い色を使いたい。 インスピレーションの源を探しているなら、このページの最後にたくさんのカラー例がある。

開始色 / 終了色 ランダム

開始時と終了時のランダムは、寿命の開始時と終了時の粒子の色にどれだけの違いがあるかを決定する。 例

startColour: [220, 35, 0, 1],
startColourRandom:[62, 0, 0, 0.25]

これらの値を持つエフェクトは、RGBAが

[158, 35, 0, 0.75] から
[255, 35, 0, 1] へ。

その結果、エフェクトのパーティクルの色幅がより多彩になります。

onDeath
これは文字列を受け付ける唯一の値なので、値を "引用符 "で囲むようにしてください。 これはバースト・エフェクトのように、元のエフェクトが終わると同時に追加のエフェクトを発生させるために使用する。 Burstエフェクトは基本的にBurnエフェクトに "onDeath "を追加したものです:「そのため、Burn効果はマウスを離すまで続き、離すと同じ場所でExplosion効果が発生する。 このonDeathシーケンスで発生するエフェクトは「狙った」エフェクトであってはならず、持続時間を持たなければならない。 このどちらかに-1がつくと、デフォルトになるか、意図したとおりに動作しない。 複数のFXが同じ名前で参照されている場合、リストの最初のものだけが選択されます。

最新のVTTエンジンで追加されたカスタムエフェクトプロパティ

これらの追加プロパティ(粒子放出パターンの能力値)は、従来VTTを使用するゲームでは利用できません。

sizeGradient
サイズ勾配は、エフェクトのパーティクルが寿命の間に成長したり縮小したりすることを可能にする。 「勾配」は、粒径が寿命のどの位置にあるべきかを示すために使われる。 下の例では、エフェクトの粒子は75%のサイズから始まり、粒子の寿命の最初の20%で通常のサイズに成長し、残りの寿命で基本サイズの1.5倍に成長する。

[
{ "gradient": 0, "factor": 0.75 },
{ "gradient": 0.2, "factor": 1 },
{ "gradient": 1, "factor": 1.5 }
]

emitRateGradients
Emit Rate Gradientsは、sizeGradientが個々のパーティクルの寿命にわたってパーティクルのサイズを変化させるのと同様に、エフェクトのエミットレートがエフェクトの持続時間の間にどのように変化するかを定義します。 以下の例では、エフェクトの最初にパーティクルがバーストし、その後、持続時間の間にパーティクルが減少していきます。

[
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]

velocityGradients
速度勾配は、パーティクルが寿命の間にどのように速度を変化させるかを定義します。
上記の例では、パーティクルは基本速度よりもはるかに速く発射され、寿命の最初の60%で基本速度の20%まで急速に減速し、残りの40%で減速して停止します。

[
{ "gradient": 0, "factor": 3 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]

ルーラータイプ

これは、目標とするインターフェイスが何を示し、何をサポートするかを定義するものである。

  • コーン
  • ライン
  • ビーム

additionalEmissinRatePerPixel
このプロパティは rulerType と一緒に使用され、エフェクトの範囲が長いほどパーティクルを生成する速さを示します。

scaleX
パーティクルの幅を決め、基本サイズに対する乗数です。

scaleY
パーティクルの高さを決定し、基本サイズに対する乗数を指定します。

alignParticles
各パーティクルのアライメントを、発射された角度に強制的に合わせます。

rotationSpeed
パーティクルの回転速度を決定します。

emitterSize
エミッターボックスのサイズを決定します。
5の場合、10x10ピクセルのエミッターボックスになります。

isPointToPoint

パスに沿ってパーティクルを発射しながら、エフェクトが始点から終点まで移動するかどうかを決定します。

サブエミッター

subEmittersにはエミッターのリストがある。

  • type - 0はパーティクルにサブエミッターを付けたい場合、1はパーティクルのライフサイクルの終わりにスポーンすることを示します。
  • inheritDirection - サブエミッターの+Y方向を、パーティクルの進行方向と同じにする trueまたはfalse
  • inheritedVelocityAmount - 既存のパーティクルの速度をエミッタパーティクルに追加する量を決定します。
  • emitterNames - ターゲットにしている他のエミッターの名前。 これはパーティクル上で実行されるとき、これらのエミッターのうちの1つをランダムに選択する。
{
"emitters": [{
"type": 1,
"inheritDirection": false,
"inheritedVelocityAmount": 0,
"emitterNames": ["pooling"]
}]
}

ベースエフェクト

新しいエフェクトのベースとなる既存のエフェクトの名前。 baseEffectのすべてのプロパティを取得し、さらに他のプロパティをオーバーライドしてカスタムエフェクトを追加できます。 例えば、"ロケット "のエフェクトは "ミサイル "のエフェクトをベースに、"死亡 "時に爆発を追加したものだ。

{
"name": "ロケット",
"baseEffect": "missile",
"onDeath": "explode",
}

内蔵エフェクト

効果 試し読み

ビーム

{
"name": "tool_fx_beam",
"maxParticles": 500,
"scaleX": 2,
"scaleY": 3,
"alignParticles": true,
"size": 60,
"sizeGradients": [
{ "gradient": 0, "factor": 0 },
{ "gradient": 0.3, "additionalGradientPerPixel": -0.0002, "factor": 1 },
{ "gradient": 0.8, "factor": 1.2 }
],
"sizeRandom": 0,
"残留時間": 15,
"残留時間ランダム": 0,
"emissionRate": 4,
"additionalEmissionRatePerPixel": 0.02,
"emitterSize": 1,
"speed": 0,
"additionalSpeedPerPixel": 0.07,
"speedRandom": 0,
"angle": -1,
"angleRandom": 1,
"duration": 25,
"rulerType": "beam"
}

爆弾

{
"name": "tool_fx_bomb",
"maxParticles": 500,
"alignParticles": true,
"size": 30,
"sizeRandom": 10,
"sizeGradients": [
{ "gradient": 0, "factor": 0 },
{ "gradient": 0.3, "additionalGradientPerPixel": -0.0002, "factor": 0.5 },
{ "gradient": 0.8, "factor": 2 },
{ "gradient": 1, "factor": 1.5 }
],
"残留時間": 25,
"残留時間ランダム": 5,
"speed": 5,
"speedRandom": 2,
"velocityGradients": [
{ "gradient": 0, "factor": 2 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"角度": 270,
"角度Random": 70,
"emissionRate": 250,
"duration": 10
}

呼吸

{
"name": "tool_fx_breath",
"alignParticles": true,
"maxParticles": 500,
"size": 10,
"sizeRandom": 5,
"sizeGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.2, "factor": 0, "additionalFactorPerPixel": 0.0125 },
{ "gradient": 0.7, "factor": 0, "additionalFactorPerPixel": 0.025 },
{ "gradient": 1, "factor": 1 }
],
"残留時間": 25,
"残留時間ランダム": 2,
"emissionRate": 120,
"additionalEmissionRatePerPixel": 0.143,
"emitRateGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"speed": -1,
"additionalSpeedPerPixel": 0.04,
"velocityGradients": [
{ "gradient": 0, "factor": 3 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"speedRandom": 0,
"angle": -1,
"angleRandom": 15,
"duration": 25,
"rulerType": "cone"
}

泡立つ

{
name: 'tool_fx_bubbling',
maxParticles: 200,
size: 8,
sizeRandom: 3,
sizeGradients: [
{ gradient: 0, factor: 0.5 },
{ gradient: 0.2, factor: 1 }
],
残留時間: 60,
残留時間ランダム: 5,
speed: 0.5,
speedRandom: 2,
gravity: { x: 0, y: 0, z: -0.01 },
角度: 0,
角度ランダム: 180,
発光率: 5
}

やけど

{
"name": "tool_fx_burn",
"maxParticles": 100,
"size": 70,
"sizeGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.5, "factor": 2 },
{ "gradient": 1, "factor": 4 }
],
"sizeRandom": 15,
"残留時間": 10,
"残留時間ランダム": 3,
"speed": 3,
"角度": 0,
"emissionRate": 12
}

バースト

{
"name": "tool_fx_burst",
"maxParticles": 100,
"size": 35,
"sizeRandom": 15,
"残留時間": 10,
"残留時間ランダム": 3,
"speed": 3,
"角度": 0,
"emissionRate": 12,
"onDeath": "explode"
}

 

爆発する

{
"name": "tool_fx_explode",
"maxParticles": 500,
"alignParticles": true,
"size": 60,
"sizeRandom": 10,
"duration": 20,
"sharpnessRandom": 10,
"sharpness": 20,
"残留時間": 20,
"残留時間ランダム": 5,
"speed": 7,
"velocityGradients": [
{ "gradient": 0, "factor": 3 },
{ "gradient": 0.6, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
],
"speedRandom": 0,
"角度": 0,
"角度Random": 360,
"emissionRate": 200,
"emitRateGradients": [
{ "gradient": 0, "factor": 1 },
{ "gradient": 0.25, "factor": 0.2 },
{ "gradient": 1, "factor": 0 }
]
}

グロー

{
"name": "tool_fx_glow",
"maxParticles": 250,
"size": 140,
"sizeRandom": 0,
"残留時間": 10,
"残留時間ランダム": 0,
"emissionRate": 1,
"speed": 0,
"speedRandom": 0,
"角度": 0,
"rotationSpeed": 2,
"emitterSize": 0.5
}

ミサイル

{
"name: "tool_fx_missile",
"maxParticles": 350,
"size": 7,
"sizeRandom": 3,
"残留時間": 7,
"残留時間ランダム": 5,
"emissionRate": 50,
"speed": 7,
"speedRandom": 5,
"角度": -1,
"rulerType": 'line',
"duration": 25,
"isPointToPoint": true
}

ノヴァ

{
"name": "tool_fx_nova",
"maxParticles": 500,
"alignParticles": true,
"scaleX": 2,
"size": 25,
"sizeRandom": 0,
"sizeGradients": [
{ "gradient": 0, "factor": 0.5 },
{ "gradient": 0.2, "factor": 0.75 },
{ "gradient": 0.7, "factor": 1 },
{ "gradient": 1, "factor": 2 }
],
"残留時間": 30,
"残留時間ランダム": 0,
"emissionRate": 1000,
"speed": 7,
"speedRandom": 0,
"角度": 0,
"角度Random": 180,
"duration": 5
}

プーリング

{
"name": "tool_fx_pooling",
"type": "tool_fx_click",
"blendMode": 4,
"角度": 0,
"角度Random": 359,
"duration": 10,
"emissionRate": 1,
"残留時間": 20,
"残留時間ランダム": 0,
"maxParticles": 1,
"size": 15,
"sizeRandom": 5,
"speed": 0,
"speedRandom": 0,
"rotationSpeed": 0,
"sizeGradients": [
{ "gradient": 0, "factor": 0.01 },
{ "gradient": 0.1, "factor": 2 },
{ "gradient": 0.7, "factor": 2.5 },
{ "gradient": 1, "factor": 0.01 }
]
}

ロケット

{
"name": "ロケット",
"baseEffect": "missile",
"onDeath": "explode"
}

{
"name": "tool_fx_shield",
"maxParticles": 250,
"size": 140,
"sizeRandom": 0,
"残留時間": 10,
"残留時間ランダム": 0,
"emissionRate": 5,
"speed": 0,
"speedRandom": 0,
"角度": 0,
"blendMode": ParticleSystem.BLENDMODE_ADD,
"rotationSpeed": 2,
"emitterSize": 0.5
}

スパークル
 

{
"name: "tool_fx_sparkle",
"maxParticles": 150,
"size": 30,
"sizeRandom": 3,
"sizeGradients": [
{ "gradient": 0, "factor": 0.75 },
{ "gradient": 0.2, "factor": 1 },
{ "gradient": 0.7, "factor": 1.5 },
{ "gradient": 1, "factor": 0.5 }
],
"残留時間": 20,
"残留時間ランダム": 5,
"emissionRate": 7,
"speed": 4,
"speedRandom": 2,
"角度": 0,
"角度Random": 0,
"gravity": { x: 0.0, y: 0.0, z: -10.0 },
"blendMode": ParticleSystem.BLENDMODE_ADD,
"rotationSpeed": 1,
"emitterSize": 0.5
}

スプラッター(強化版)

{
"name": "tool_fx_splatter",
"type": "tool_fx_aimed",
"alignParticles": true,
"角度": 15,
"角度Random": 15,
"blendMode": 4,
"duration": 25,
"emissionRate": 20,
"残留時間": 10,
"残留時間ランダム": 0,
"maxParticles": 50,
"rulerType": 'line',
"size": 35,
"sizeRandom": 10,
"speed": 20,
"speedRandom": 1,
"sizeGradients": [
{ "gradient": 0, "factor": 0.5 },
{ "gradient": 1, "factor": 1 }
],
"subEmitters": {
"emitters": [{
"type": 1,
"inheritDirection": false,
"inheritedVelocityAmount": 0,
"emitterNames": ["pooling"]
}]
}
}
この記事は役に立ちましたか?
93人中65人がこの記事が役に立ったと言っています