Grafik Editörü ifadeleri

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir ifade, grafik parametrelerini okuyan ve bir değer döndüren kısa bir Luau benzeri formüldür; örneğin math.clamp((MovementSpeed + 0.5) / MaxSpeed, 0, 1). İfadeleri, bir düğüm özelliğini veya bir durum makinesi geçişini yönlendirmek için kullanın. İfadeler, parametre dönüşümlerini ve animasyon kararlarını grafiğinizde, yönlendirdikleri düğümlere yakın tutar.

Ön koşullar

Bir ifade oluşturmadan önce, Animasyon Grafik Editörü ile tanışın; bunu nasıl açacağınızı ve bir animasyon grafiği oluşturacağınızı öğrenin.

Bir ifade oluşturma

Bu örnek, bir Blend1DNode'un Pozisyon özelliğini yönlendirmek için bir ifade kullanır. Düğümü, 0 konumunda bir duraklama animasyonu ve 1 konumunda bir koşu animasyonu ile yapılandırın. İfade, karakterin hareket hızını, düğümün bu animasyonlar arasında karıştırmak için kullandığı 0 ile 1 aralığına dönüştürür.

  1. MovementSpeed ve MaxSpeed Sayı grafik parametrelerini ekleyin.

    Parametreler paneli, MovementSpeed ve MaxSpeed Sayı parametrelerini gösteriyor.
  2. Blend1DNode'un Pozisyon özellik pininden bir bağlantı sürükleyin ve Yeni İfade seçeneğini seçin.

    Blend1D Pozisyon özellik pininden bir İfade düğümü oluşturma animasyonu.
  3. Aşağıdaki ifadeyi girin:

    math.clamp(MovementSpeed / MaxSpeed, 0, 1)
    Bir İfade düğümünde bir ifade girme animasyonu.
  4. İfade kutusunun dışına tıklayarak yenileyin. MovementSpeed MaxSpeed'e doğru yükseldikçe, Blend1DNode 0 ile 1 arasında bir değer alır ve duraklama animasyonundan koşu animasyonuna geçiş yapar.

Grafiği bir AnimationTrack üzerine yükledikten sonra, AnimationTrack:SetParameter() ile oyun oynama scriptinizden MovementSpeed ve MaxSpeed'i güncelleyin. Aşağıdaki örnek, bir Humanoid'un MoveDirection ve WalkSpeed özelliklerini kullanır:

Script - İfade parametrelerini yönlendirme
game:GetService("RunService").Stepped:Connect(function()
animationTrack:SetParameter("MovementSpeed", humanoid.MoveDirection.Magnitude * humanoid.WalkSpeed)
animationTrack:SetParameter("MaxSpeed", humanoid.WalkSpeed)
end)

İfade, parametre değerleri değiştikçe değerlendirilir. Parametre iş akışı için API entegrasyonu kısmına bakın.

Neler destekleniyor

İfade desteği, aritmetik ve karşılaştırma işlemleri, mantıksal ve koşullu ifadeler, math kütüphanesindeki fonksiyon çağrıları, CFrame, Vector2, Vector3 ve Color3 değerleri için yapılandırma ve üye erişimi ile dize birleştirmeyi içerir. Aşağıdaki bölümler, desteklenen sözdizimini ve fonksiyonları listeler.

Aritmetik ve karşılaştırmalar

Standart aritmetik ve karşılaştırma işlemlerini, alışıldık işlem sırasıyla kullanın. Örneğin, // bölme işlemi yapar ve aşağı yuvarlar.

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

Karşılaştırma operatörleri sayılarla çalışır. Sayıları, boolean'ları veya dizeleri karşılaştırmak için == ve ~= kullanın.

Mantık ve kısa devre

and, or ve not, Luau'nun doğruluk ve kısa devre değerlendirmesini takip eder. Sadece false ve nil yanlış olarak kabul edilir.

IsGrounded and GroundSpeed or AirSpeed
not IsDisabled

If-then-else ifadeleri

Tek bir ifade içinde dallanmak için Luau'nun koşullu ifade biçimini kullanın:

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

Matematik kütüphanesi

math kütüphanesini kullanın. Grafik ifadeleri henüz math.frexp(), math.noise() veya math.randomseed()'i desteklemiyor. math.modf() şu anda yalnızca tam sayı kısmını döndürmektedir.

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

Vektör oluşturma ve üye erişimi

Vector2 ve Vector3 değerlerini oluşturun, vektör aritmetiği yapın ve Magnitude ve Unit gibi vektör üyelerine erişin.

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

Color3 oluşturma ve üye erişimi

Color3 değerlerini oluşturun ve renk kanallarına erişin.

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

CFrame oluşturma, üye erişimi ve işlemler

CFrame değerlerini oluşturun, CFrame üyelerine erişin ve bunları CFrame'ler veya Vector3 değerleri ile birleştirin.

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

Dize birleştirme

İki dizeyi birleştirmek için .. kullanın:

"state_" .. CurrentState

Yerel değişkenler ve çok satırlı ifadeler

Bir formülü adlandırılmış adımlara ayırmak için çok satırlı bir ifade kullanın. Çok satırlı bir ifade, local bildirimlerini, return, if/elseif/else ve bağımsız ifadeleri destekler. Bir if veya else bloğu içinde yalnızca return veya bağımsız bir ifade kullanın; iç içe if ifadeleri ve yerel bildirimler desteklenmez.

local normalizedSpeed = Speed / MaxSpeed
local eased = math.clamp(normalizedSpeed, 0, 1)
return eased
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.