グラフエディタの式

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

式は、グラフパラメータを読み取り、値を返す短いLuauのような数式です。例えば、math.clamp((MovementSpeed + 0.5) / MaxSpeed, 0, 1)のようなものです。式を使用してノードプロパティやstate machine transitionを駆動します。式は、パラメータの変換やアニメーションの決定をグラフ内に保持し、それらを駆動するノードの近くに配置します。

前提条件

式を作成する前に、アニメーショングラフエディタに慣れておき、それを開いてアニメーショングラフを作成する方法を理解しておいてください。

式を作成する

この例では、式を使用してBlend1DNodeのPositionプロパティを駆動します。ノードを位置0のアイドルアニメーションと位置1のランアニメーションで構成します。式は、キャラクターの移動速度をノードがこれらのアニメーション間でブレンドするために使用する0から1の範囲に変換します。

  1. MovementSpeedとMaxSpeedのNumberグラフパラメータを追加します。

    MovementSpeedとMaxSpeedのNumberパラメータを示すパラメータペイン。
  2. Blend1DNodeのPositionプロパティピンから接続をドラッグし、新しい式を選択します。

    Blend1DのPositionプロパティピンからExpressionノードを作成するアニメーションデモ。
  3. 次の式を入力します:

    math.clamp(MovementSpeed / MaxSpeed, 0, 1)
    Expressionノードに式を入力するアニメーションデモ。
  4. 式ボックスの外をクリックして更新します。MovementSpeedがMaxSpeedに向かって上昇すると、Blend1DNodeは0から1の値を受け取り、アイドルアニメーションからランアニメーションにブレンドします。

グラフをAnimationTrackにロードした後、ゲームプレイスクリプトからAnimationTrack:SetParameter()を使用してMovementSpeedとMaxSpeedを更新します。次の例では、MoveDirectionとWalkSpeedプロパティを使用します:

スクリプト - 式パラメータを駆動する
game:GetService("RunService").Stepped:Connect(function()
animationTrack:SetParameter("MovementSpeed", humanoid.MoveDirection.Magnitude * humanoid.WalkSpeed)
animationTrack:SetParameter("MaxSpeed", humanoid.WalkSpeed)
end)

式はパラメータの値が変化するにつれて評価されます。パラメータのワークフローについては、API統合を参照してください。

サポートされている内容

式のサポートには、算術および比較演算、論理および条件式、mathライブラリ内の関数の呼び出し、CFrame、Vector2、Vector3、およびColor3値の構築とメンバーアクセス、文字列の連結が含まれます。以下のセクションでは、サポートされている構文と関数をリストします。

算術と比較

標準の算術および比較演算を使用し、通常の演算の順序に従います。例えば、//は割り算を行い、切り捨てます。

Speed * 2.0 + Offset
(Health / MaxHealth) * 100
DamageMultiplier ^ 2
Count % 3
10 // 3
Speed < 1
Health >= MaxHealth

比較演算子は数値で機能します。数値、ブール値、または文字列を比較するには==と~=を使用します。

論理とショートサーキット

and、or、およびnotはLuauの真偽値とショートサーキット評価に従います。falseとnilのみが偽と見なされます。

IsGrounded and GroundSpeed or AirSpeed
not IsDisabled

If-then-else式

Luauの条件式形式を使用して、単一の式内で分岐します:

if Speed > 10 then "sprint" elseif Speed > 2 then "run" else "idle"

Mathライブラリ

mathライブラリを使用します。グラフ式はまだmath.frexp()、math.noise()、またはmath.randomseed()をサポートしていません。math.modf()は現在、整数部分のみを返します。

math.clamp(Speed / MaxSpeed, 0, 1)
math.sin(Time * 2 * math.pi)
math.atan2(Direction.Y, Direction.X)
math.max(A, B, C)

ベクトルの構築とメンバーアクセス

Vector2およびVector3値を構築し、ベクトル演算を行い、MagnitudeやUnitなどのベクトルメンバーにアクセスします。

Vector3.new(math.cos(Time), math.sin(Time), 0)
Vector2.new(InputX, InputY)
MoveDirection.Magnitude * 2.0
Position.X + Offset
Vector3.zero

Color3の構築とメンバーアクセス

Color3値を構築し、その色チャネルにアクセスします。

Color3.fromRGB(255, 128, 0)
Color.R

CFrameの構築、メンバーアクセス、および操作

CFrame値を構築し、CFrameメンバーにアクセスし、CFrameまたはVector3値と組み合わせます。

CFrame.new(Position, LookAtPosition)
CFrame.Angles(RotationX, RotationY, RotationZ)
CFrame.identity
Transform.LookVector
Transform.Position + Vector3.new(0, 1, 0)

文字列の連結

..を使用して2つの文字列を連結します:

"state_" .. CurrentState

ローカル変数とマルチライン式

マルチライン式を使用して、数式を名前付きのステップに分けます。マルチライン式はlocal宣言、return、if/elseif/else、およびスタンドアロン式をサポートします。ifまたはelseの本体内では、returnまたはスタンドアロン式のみを使用します。ネストされたif文やローカル宣言はサポートされていません。

local normalizedSpeed = Speed / MaxSpeed
local eased = math.clamp(normalizedSpeed, 0, 1)
return eased
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。