Özel karakterler

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

Özel ağları içe aktararak NPC'lerden bir yelkenli teknenin animasyonlu kumaşına kadar her şeyi oluşturabilirsiniz. Gizemli kara delik yaratıkları ve dost canlısı, ama farkında olmayan hizmet droidleri gibi daha egzotik özel karakterleri getirmek için İçe Aktarıcı nın özel ayarını kullandık.

Aşağıdaki bölümler, "Yaratık" adını verdiğimiz daha karmaşık karakterlerden birini oluşturmak için rigging ve skinning, PBR (yüzey görünümü) ve VFX'i nasıl kullandığımızı anlatıyor. Onun parlamasını, biraz ışık yaymasını, parçacık dumanı izleri bırakmasını ve tentaklalarının ikna edici dalgalarını oluşturmak için yeterli eklemlere sahip bir rig ile akıcı bir hareket istedik.

Yaratık Afişi

Rig

Yaratığı rigging yaparken, karakteri nötr bir pozda modellemenin en iyisi olduğunu bulduk, çünkü bu poz birden fazla yönde bükülmeye en uygun olanıdır. Yaratığı tentakları zaten kıvrılmış bir şekilde modelleseydik, tentakları ters yönde bükmek için animasyon yaptığımızda gerilmeye neden olacaktı. Aşağıdaki ekran görüntüleri, Yaratığı doğal durumunda gösteriyor:

Nötr bir pozdan, en çok hareket etmesi gereken alanlara odaklanarak eklemleri ekonomik bir şekilde ekledik. Daha az eklem, daha iyidir, çünkü karakterinizi skinning yaparken bunları yönetmek zorunda kalacaksınız ve animasyon yaparken kontrol etmeniz gereken daha az şey olacak. Önceki ekran görüntülerinde, Yaratığın merkezinde çok sayıda eklem var gibi görünüyor, ancak ana gövde yalnızca bir ekleme sahip.

Diğer eklemlerin çoğu tentaklar ve çeneler yönündedir. Tentaklarla, hepsinin kendi başına hareket ediyormuş gibi ikna edici bir etki yaratmak için çok fazla ikincil hareket istedik. Ancak, tentakların merkez kütlesi o kadar yakındı ki, hepsi için eklem yapmak israf gibi hissettirdi, hem performans hem de animasyon çabası açısından. Bu nedenle, merkez kütlesini tek bir büyük tentaklaya ve uçları merkez kütlesinden ayrılan daha küçük "kuyruklara" dönüştürdük.

Yaratık Ön, Maya

Karakter ağının Studio'ya doğru bir şekilde içe aktarılması için aşağıdaki yönergeleri faydalı bulduk:

  • Bireysel eklemler ve kemikler benzersiz isimlere sahip olmalıdır.
  • Ağlar, eklemlerin ve kemiklerin adıyla aynı olmamalıdır.
  • Ağların skinning/binding öncesinde herhangi bir dönüşümü olmamalıdır; diğer bir deyişle, dönüşümler 0 ve ölçekler 1 olmalıdır.
  • Ağ normalleri dışa bakmalıdır (model içe dönük görünmemelidir).
  • İskeletlerin herhangi bir ölçek faktörü olmamalıdır; tüm eklemler [1, 1, 1] olmalıdır.

Skin

Yaratığın iskeletini tamamladıktan sonra, bir sonraki adım ağın skinning'ini yapmaktı. Skinning zor bir görev olabilir, bu nedenle işleri kolaylaştırmak için DCC uygulamanızın farklı başlangıç skinning ayarlarıyla tanışmak en iyisidir. Bu organik bir karakter olduğu için, her eklemde bolca düşüş ve aralarında örtüşme ile skinning yaptık. Bu şekilde, bükülme pürüzsüz hissedilir ve keskin olmaz. Aşağıdaki ekran görüntüleri sırasıyla kötü skinning ve pürüzsüz skinning'i gösteriyor:

Kötü Skinning
Pürüzsüz Skinning

Aşağıdaki yönergelerin skinning için en iyi sonuçları verdiğini bulduk:

  • Skinning etkileri (yani, hareket ettiğinde modelin bir kısmını etkileyenler) her bir vertex için maksimum 4 etki olmalıdır.
  • Eklemlerin ve ağların isimleri benzersiz olmalıdır, hem birbirleri içinde hem de birbirleri arasında.
  • Studio'ya içe aktarmak istediğiniz herhangi bir eklemin modelin skinning'inde bir etkisi olmalıdır, aksi takdirde motor onu içe aktaramaz. Mümkün olduğunda, modelinizi orijinal veya "bağlama" pozunda skinning yapın.

Ağı Studio'ya İçe Aktarın

Özel karakterlerinizi Studio'ya içe aktarmak, sürecin en heyecan verici kısımlarından biridir, çünkü oluşturduğunuz şeyleri inşa ettiğiniz oyunda görebilirsiniz!

Ağı Studio'ya içe aktarmak için:

  1. DCC uygulamasından karakteri dışa aktarın ve aşağıdakilerin doğru olduğundan emin olun:

    • Tüm normaller, ölçekler ve isimler doğrudur.
    • Karakterin tüm eklem ve kemik hiyerarşisi ve tüm ağları vardır.
    • Ağlar, ağın her parçası için 10,000 üçgenden daha az olmalıdır.
    • Ağın toplam boyutu herhangi bir eksende 2000 birimden fazla olmamalıdır.
    • Model spesifikasyonlarının tam listesi için Ağ Gereksinimleri sayfasına bakın.
    Yaratık DCC Aracında
  2. İçe Aktarıcı içinde özel .fbx veya .obj dosyasını içe aktarın.

    Yaratık Studio'ya İçe Aktarıldı

Yaratığı Parlat

Yaratığın modeli stabil hale geldikten ve Studio'ya daha fazla acil içe aktarma gerektirmediğinden, Yüzey Görünümü nesnelerini, ışıkları ve görsel efektleri bir araya getirmeye başladık. Bunu, modelin kalitesinin yeterince iyi olduğundan emin olmak için yaptık ve ardından herhangi bir yönünü yerleştirip düzenlemeye geçtik.

Parlayan Yaratık Örneği

Yaratığın karanlık olmasını ve odak noktalarının gözleri ve "kapma" tentakları olmasını istedik. Yüksek kontrast noktaları dikkat çeker, bu nedenle birkaç güçlü noktanın olması, izleyicinin neye odaklanması gerektiğini bilmesini sağlar. Studio, kendiliğinden aydınlanan neon malzemeleri destekler, bu nedenle erken aşamalarda gözleri diğer karakter parçalarından ayrı bir malzeme olarak ayırdık. Tentaklar için de benzer bir şey yaptık, böylece yalnızca uçlarında parlayacaklardı.

Yaratık Gözleri Studio'da

Neon malzeme gerçek ışık yaymaz, bu nedenle bazı testlerden sonra ışık yayılımının yerleşimini ve yönünü kontrol etmek için ayrı parçalar ekledik. Bu, ışığın gözlerin parlamasını artıracak şekilde yönlendirilmesini ve kendi ışık kaynağını projekte etmesini sağladı.

Studio'da Nokta Işık

SpotLights'ın Yaratığa diğer yüzeylere veya bir oyuncuya yakın görsel bir parıltı eklediğini unutmayın.

Yaratık Işık Örneği

Ayrıca, Yaratığın tentaklarının bazı parçacıklar yaymasını istedik, böylece hareket ettiğinde arkasında bir duman izi bırakacaktı. Tentaklar çok uzun olduğundan, ParticleEmitter'ı tüm tentaklara eklemek, parçacıkların tüm tentaklardan değil, yalnızca uçtan yayılmasına neden olacaktı. Bunu aşmak için, tentakların ucuna yakın bir yere konumlandırılmış küçük bir parça kullandık, böylece parçacıkların yayılma boyutunu, yerleşimini ve yönünü kontrol edebildik.

Parçacık Örneği

VFX'in karakteri takip etmesini sağla

Skinning yapılmış karakterin ağ pozisyonları, Yaratık animasyon yaparken güncellenmez, bu nedenle VFX, SFX ve ışıkların Yaratığı doğru bir şekilde takip etmesini sağlamak için bir yöntem geliştirmemiz gerekiyordu. Bunu başarmak için bir VFX kontrol scripti oluşturduk ve CollectionService'i kullanarak VFX içeren parçaların Yaratığın kemiklerinin nerede olduğunu bilmesini sağladık ve onları takip etmesini sağladık.

  1. Aşağıdaki LocalScript'i StarterPlayerStarterPlayerScripts içine yerleştirdik. Bu, esasen VFX güncelleme fonksiyonunu çalıştırır.

    Local Script
    -- Bu kod parçasını PreSimulation bağlantıları yapan mevcut bir yerel script'e ekleyin
    local RunService = game:GetService("RunService")
    local vfx = require(workspace.VfxUpdateModule)
    RunService.PreSimulation:Connect(vfx.updateVfx)
    Module Script
    -- Bu modül, parçaları animasyonlarla ilişkilendirerek animasyon oynatıldıkça güncellenmelerini sağlar. Bu, Eklemler ve Kemikler ile ilgili mevcut sınırlamaların bir çözümüdür ve her zaman gerekli olmayacaktır.
    --
    -- Ön koşullar:
    -- Dahil edilmek için, modellerin "AnimatedVfxModel" etiketi ve animasyonla senkronize etmek istediğiniz tüm parçaların bir klasörü olmalıdır. Her parçanın, bağlanmak istediğiniz kemiğin adını belirten "AttachedBoneName" adlı bir niteliği olmalıdır. Parçalar, istenen kemiğe göre doğru konumda olmalıdır.
    --
    -- Kullanım:
    -- Bir LocalScript bu modülü gerektirmeli, ardından VfxUpdateModule.updateVfx'i RunService.PreSimulation olayına bağlamalıdır.
    local VfxUpdateModule = {}
    local CollectionService = game:GetService("CollectionService")
    -- KURULUM - bu her istemcide bir kez çalışmalıdır.
    -- Etiketli tüm modelleri toplayın
    local vfxModels = CollectionService:GetTagged("AnimatedVfxModel")
    local vfxTable = {} -- tüm parçaları ve offsetleri saklayacağımız yer
    -- Her model için tüm vfx parçalarını ve offseti tutacak bir tablo atayın
    for _, model in vfxModels do
    vfxTable[model] = {}
    local vfxParts = model:FindFirstChild("VFX"):GetChildren() -- VFX klasörünü bul
    -- Niteliğe göre kemiği bulun ve her parça için offseti hesaplayın.
    for _,part in vfxParts do
    local name = part:GetAttribute("AttachedBoneName")
    local bone = model:FindFirstChild(name, true)
    if bone then
    local offset = (bone.TransformedWorldCFrame:inverse() * part.CFrame)
    vfxTable[model][part] = {bone, offset}
    else
    warn("Vfx parçası bulunamayan bir kemiğe atıfta bulunuyor.")
    end
    end
    end
    print(vfxTable)
    -- GÜNCELLEME - Bu her istemcinin RunService.PreSimulation'ına bağlanmalıdır
    -- Tüm modelleri geçin, ardından modeldeki tüm parçaları kemiğin çerçevesine göre güncelleyin.
    function VfxUpdateModule.updateVfx()
    for model, vfxParts in vfxTable do
    for part, bone in vfxParts do
    part.CFrame = bone[1].TransformedWorldCFrame * bone[2]
    end
    end
    end
    return VfxUpdateModule
  2. Herhangi bir nesneyi AnimatedVfxModel etiketiyle uygun şekilde güncellemek için bir VFXUpdateModule ModuleScript oluşturduk.

  3. Gerekli model gruplarını AnimatedVfxModel ile etiketledik ve Etiketler bölümünü kullanarak özelliklerinin altında etiketledik. Etiketler, VFXUpdateModule'un ilk VFX çocuğunu aramasını ve güncellemeyi uygulamasını sağlar.

    Studio'da VFX Örneği
  4. Son olarak, animasyon yapmak istediğimiz parçaya bir AttachedBoneName özel niteliği ekledik ve takip etmesini istediğimiz eklemin tam adını ekledik.

Yaratığı Doku

Sonraki adım, PBR (Fiziksel Olarak Tabanlı Render) doku haritalarını ayarlamaktı. Bu güçlü bitmap'ler, yaratığa çok sayıda küçük tümsek ve kusur varmış gibi görünmesi için çeşitli parlaklık ve yüzey varyasyonları verir. Bu görsel efekt, Yaratığın oyuncuya daha yakınken görünümünü satmaya yardımcı olur.

Yaratık Doku Karşılaştırması

Yüzey görünümü doku haritalarını nasıl oluşturduğumuz şöyle:

  1. Bu karakter için doku haritaları her harita için bir "sayfa" üzerinde toplandı. Bu, yaratığı daha verimli hale getirdi ve daha az doku haritası veya SurfaceAppearance nesnesi ile başa çıkmamız gerektiği anlamına geldi.

  2. Parlayacak veya kendiliğinden aydınlatılacak alanlar için, "kapma tentakları" gibi, bu parçalara karışmak için SurfaceAppearance üzerinde şeffaflık kullandık.

    Aydınlatma Örneği

    Yüzey görünümü doku haritalarını oluştururken bu yönergeleri takip etmenin faydalı olduğunu bulduk:

    • Haritalarınızın 1024×1024'ten büyük olmamasına dikkat edin.
    • Çalıştığınız uygulamaya bağlı olarak yeşil kanalın ters çevrilmesi gerekebilir.

Yaratığı Animasyon

Animasyon çok öznel bir konudur ve kişisel bir tarzı vardır. Seçenekler arasında hareket yakalama, DCC uygulamanızda elle "anahtar çerçeve" animasyonu veya Studio'nun güçlü Animasyon Editörü'nü kullanmak bulunmaktadır.

Daha önce belirttiğimiz gibi, akıcı hareket için yeterli eklem ve uzuv olduğundan emin olmak istedik, böylece yaratık animasyonu doğal ve "katmanlı" hissediyordu. Katmanlama, ikincil hareket olarak da bilinir, günlük hayatta gördüğünüz bir şeydir — kolunuzu fırlattığınızda, her eklem üst kolunuzdan gelen ilk itkiye tepki verir ve vücudunuzdaki her eklem aynı anda hareket etmez veya dinlenmez.

Bu tekniği, Yaratığın uzuvlarının vücudunun hareketine tepki veriyormuş gibi hissettirmek için kullandık, burada gösterildiği gibi:

Yaratık Animasyon Örneği

Dışarıda bir DCC uygulaması kullanıyorsanız, aşağıdaki yönergelerin en iyi şekilde çalıştığını bulduk:

  • Kare hızlarını en az 30 FPS olarak ayarlayın.
  • Animasyonlarınızı uyguladığınız karakterle aynı karakterle oluşturun.
  • Animasyon verilerinizi ayrı bir .fbx dosyası olarak dışa aktarın.

Karakteri Studio dışında animasyon yaptığımız için, animasyon .fbx dosyasını içe aktarmak için Animasyon Editörü'nü kullanmamız gerekiyordu. Editör, herhangi bir eklem veya motoru olan avatarı seçmenizi ve zaman çizelgesindeki noktalar aracılığıyla sürüklemenizi sağlar.

Bir animasyonu içe aktarmak için:

  1. Araç çubuğundaki Avatar sekmesinde Clip Editor'a tıklayın.

  2. Roblox'ta animasyon yapmak istediğiniz riglenmiş karakteri seçin. Karakter, dışarıda riglediğinizle aynı olmalıdır.

  3. Editör penceresinin sol üst kısmındaki butonuna tıklayın, FBX Animasyonundan İçe Aktar'ı seçin ve dışa aktardığınız .fbx animasyon dosyanızı bulun.

    Animasyon İçe Aktarma Örneği 2
  4. Animasyonunuzdan memnun kaldığınızda, animasyon ID'sini keşfetmek için dışa aktarabilirsiniz, bu ID'yi daha sonra Roblox scriptlerinde çalıştırmak için kullanabilirsiniz. Örneğin, içe aktarılan karakterin model grubuna bir Script ekleyebilir ve animasyonu çalıştırmak için aşağıdaki kodu kullanabilirsiniz:

    Animasyon Script Örneği
    local animationId = "YOUR_ANIMATION_ID"
    local char = script.Parent
    local animController = char:FindFirstChildWhichIsA("Humanoid") or char:FindFirstChildOfClass("AnimationController")
    local animation = Instance.new("Animation")
    animation.AnimationId = "rbxassetid://" .. tostring(animationId)
    local animTrack = animController:LoadAnimation(animation)
    animTrack:Play(0, 1, 1)

Sonuçlar

Renkler, ışık parlaklıkları ve pencerelerin önünde daha güçlü bir halo etkisi vermek için bazı parçacık efektleri üzerinde birkaç son dokunuş yaptıktan sonra, işte uzay istasyonundaki nihai sonuç!

Son Yaratık Render'ı
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.