Ö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.

NPC'lerden bir yelkenli teknenin animasyonlu kumaşına kadar her şeyi oluşturmak için özel dokuları ithal edebilirsiniz.Gizemli kara delik yaratıkları ve dost canlı, farkında olmasa da, hizmet droidleri gibi daha egzotik özel karakterler getirmek için 3D İçe Aktarıcı 'nın özel ayarını kullandık.

Aşağıdaki bölümler, nasıl kullandığımızı gösterir sabitleme ve deri çekme , PBR (yüzey görünümü) ve VFX ile daha karmaşık karakterlerden birini oluşturmak için VFX'i, "Yaratık" adlandırdığımızı ışık yaymak, parçacık dumanından izler bırakmak ve bir sıvı hareketiyle deriyi kesmek için yeterli eklem sayısına sahip bir kasını kesmek. Turkish:Aşağıdaki bölümler, nasıl kullandığımızı gösterir sabitleme ve deri çekme , PBR (yüzey görünümü) ve VFX ile daha karmaşık karakterlerden birini oluşturmak için VFX'i, "Yaratık" adlandırdığımızı ışık yaymak, parçacık dumanından izler bırakmak ve bir sıvı hareketiyle deriyi kesmek için yeterli eklem sayısına sahip bir deriyi kesmek.

Creature Banner

Rig Sırası

Yaratığı ayarlarken, karakteri nötr bir pozda modellemenin en iyi olduğunu bulduk, çünkü bu poz, çok yönlü bükülmeye en uygun olanıdır.Yaratığın zaten kıvrılmış kollarıyla modellemişsek, kolları aynı yönde bükerek animasyon yaparsak, uzatılacaktı.Aşağıdaki ekran görüntüleri Yaratığı doğal durumunda gösterir:

Doğal bir pozisyondan, ekonomik olarak eklemler ekledik, en fazla hareket gerektiren alanlara odaklanarak.Katıların daha az olması daha iyidir, çünkü karakterinizi derilerken onları yönetmeniz ve onları animasyonla kontrol etmeniz gerekecektir ve onları animasyonla kontrol etmeniz daha az olacaktır.Önceki ekran görüntülerinde, Yaratık merkezde çok fazla eklem varmış gibi görünüyor, ancak ana vücut sadece bir eklem var.

Diğer eklemlerin çoğu tentaklara ve çene kısımlarına doğrudur.Tentaküllerle, çok fazla ikincil hareket veya katmanlı hareket istedik, böylece hepsinin kendi sahip olhareket ettiğine dair inandırıcı bir etki oluşturmak.Bununla birlikte, dokunların merkez kütlesi o kadar yakındı ki, hepsine bağlantı yapmak performans ve animasyon için çaba için israf olduğunu hissettiler.Bunun yerine, merkez kütlesini, uçların merkez kütlesinden ayrıldığı tek büyük bir tentacle olarak ele aldık, küçük "kuyruklarla".

Creature Front, Maya

Karakter meshesinin doğru bir şekilde Studio'ya aktarılması için aşağıdaki yönergeler yararlı bulundu:

  • Bireysel eklemler ve kemiklerin benzersiz isimleri olmalıdır.
  • Dokuların bağlantılarla ve kemiklerle aynı adı olmamalıdır.
  • Kaplama/bağlanma öncesinde meshların dönüşümleri olmamalı; başka bir deyişle, dönüşümler 0 olmalı ve ölçekler 1 olmalıdır.
  • Kafes normali dışa bakmalıdır (model içeri bakmamalıdır).
  • İskeletlerin herhangi bir ölçek faktörü olmamalı; tüm eklemler [1, 1, 1] olmalıdır.

Kaplama

Yaratığın iskeletini bitirdiğimizde, bir sonraki adım, örüntüyü derlemek oldu.Ciltleme zor bir görev olabilir, bu yüzden işleri kolaylaştırmak için, sevdiğiniz ciltleme ayarını bulmak için DCC uygulamanızın farklı başlangıç ​​ciltleme ayarlarına aşina olmak en iyisidir.Bu organik bir karakter olduğundan, her bir eklemde çok fazla düşüş ve aralarında yer değiştirme ile kapladık.Bu şekilde, eğilme pürüzsüz ve keskin olmuyor.Aşağıdaki ekran görüntüleri kötü kesme ve pürüzsüz kesme olarak gösterir:

Kötü Keskinlik
Düzleştirme

Deri için en iyi sonuçları üreten aşağıdaki yönergeleri bulduk:

  • Cilt etkileri (yani hareket edildiğinde modelin bir kısmını etkilemeleri gerekir) maksimum 4 etki olmalıdır.
  • Ortak ve örüntü isimlerinin birbirleri içinde ve birbirleri arasında eşsiz olması gerekir.
  • Studio'ya aktarmak istediğiniz herhangi bir ortak, modelin derinleşmesine biraz etki yapmalı, aksi takdirde motor bunu içe aktarmıyor.Mümkün olduğunda, modelinizi orijinal veya "bağlama" pozunda cilde verin.

Kafeyi Studio'ya ithal et

Özel karakterlerinizi Studio'ya aktarmak, sürecin en heyecan verici parçalarından biridir, çünkü yaratımlarınızı inşa etmeettiğiniz deneyimde görürsünüz!

Dokuyu Stüdyoya ithal etmek için:

  1. Karakteri DCC uygulamasından ihraç edin ve takip edilensağlayın:

    • Tüm normaller, ölçekler ve isimler doğrudur.
    • Karakterin tüm eklem ve kemik yapısı ve tüm dokuları vardır.
    • Kafeslerin her bir parçası için 10,000 üçgenin altındadır.
    • Kumaş toplam boyutu herhangi bir eksende 2000 birimden fazla değildir.
    • Model özelliklerinin tam bir listesi için Çerçeve Gereksinimleri bakın.
    Creature in DCC Tool
  2. 3B İçe aktarıcı içinde, özel .fbx veya .obj dosyasını ithal edin.

    Creature Imported Into Studio

Yaratığı parlat

Yaratığın modeli istikrarlı hale geldi ve Studio'ya daha fazla acil ithalat gerekmediğinde, YüzeyGörünüm nesneleri, ışıklar ve görsel efektleri bir araya getirmeye başladık.Herhangi bir yönün yerleştirilmesi ve düzenlenmesinden önce modelin kalitesinin yeterince iyi olduğundan emin olmak için bunu yaptık.

Glowing Creature Example

Yaratığın karanlık olmasını ve odak noktalarının gözler ve "yapışkan" tentakülleri olması gerektiğini biliyorduk.Karşıtlığın yüksek noktaları dikkat çekme eğilimindedir, bu nedenle birkaç güçlü olan var olmak izleyicinin neye odaklanması gerektiğini bilmesini sağlar.Stüdyo, kendi kendini aydınlatan neon malzemeleri destekliyor, bu yüzden erken gözleri ayırdık, böylece karakterin geri kalanından kendi malzemeleri olabilirler.Tentaküller için benzer bir şey yaptık, böylece sadece uçlarında parlayacaklardı.

Creature Eyes in Studio

Neon malzeme gerçek ışık yaymıyor, bu yüzden bazı testlerden sonra ışık emisyonunun yerleşimini ve yönünü kontrol etmek için ayrı parçalar ekledik.Bu, ışığın gözlerin parlamasını artırmak ve ayrıca kendi ışık kaynağını projelemek için bir şekilde yönlendirilmesini sağladı.

Point Light in Studio

Fark edin ki SpotLights diğer yüzeylere veya bir oyuncuya yakın Yaratığa görsel ışık ekliyor.

Creature Light Example

Ayrıca, Yaratığın tentaklarının bazı parçacıklar yaymasını istedik, böylece hareket ettiğinde bir duman izi bırakacaktı.Çünkü tentaküller çok uzun, tüm tentakula ParticleEmitter eklemek, parçacıkların ucunun yerine tüm tentakuldan yayılmasını sağlayacaktır.Bununla mücadele etmek için, tentaklin sonundaki küçük bir parçayı kullandık, böylece parçacıkların emisyon boyutunu, yerini ve yönünü kontrol edebildik.

Particle Example

VFX'i karakteri takip etmesini sağla

Derili karakterin meshes konumları, Yaratık animasyonu sırasında güncellenmez, bu yüzden VFX, SFX ve ışıkların tümünün Yaratık'ı doğru bir şekilde takip ettiğinden emin olmak için bir yönteme ihtiyacımız vardı.Bunu başarmak için, bir VFX kontrolörü senaryosu oluşturduk ve CollectionService'i kullanarak, yaratığın kemiklerinin bulunduğu yerdeki VFX'i bilgilendirdik ve takip ettik.

  1. Aşağıdaki LocalScript 'yi Başlangıç OyuncusuBaşlangıç OyuncusuScriptleri içine yerleştirdik. Bu temelde VFX güncelleme işlevini çalıştırır.

    Yerel Kod

    -- Bu kısmı, PreSimulation yapacak mevcut yerel bir senaryoya ekleyin
    -- bağlantılar
    local RunService = game:GetService("RunService")
    local vfx = require(workspace.VfxUpdateModule)
    RunService.PreSimulation:Connect(vfx.updateVfx)
    Modül Kodu

    -- Bu modül, parçaları animasyonlara bağladı, böylece güncellendiler
    -- animasyon oynar. Mevcut sınırlamalar için bir çözüm yoludur
    -- Katılımlarla ve kemiklerle ve daima gerekli olmayacaktır.
    --
    -- Ön koşullar:
    -- Dahil edilmek için, modellerin "AnimatedVfxModel" etiketine ve bir klasöre ihtiyacı vardır
    -- animasyonsenkronize etmek istediğiniz tüm parçalar. Her parça ihtiyaç duyar
    -- Bağlı Kemik Adı adlı bir özellik, ki bu da bağlı kemik adına işaret eder
    -- bağlamak istediğiniz kemik. Parçalar da zaten kendilerinde olmalıdır
    -- arzu edilen kemik ile ilgili doğru pozisyonlar.
    --
    -- Kullanmak için:
    -- Bir YerelScript bu modülü gerektirmeli ve bağlanmalıdır, sonra
    -- VfxUpdateModule.updateVfx'i RunService.PreSimulation etkinliğine güncelleyin.
    local VfxUpdateModule = {}
    local CollectionService = game:GetService("CollectionService")
    -- YAPILANDIRMA - bu, her bir istemci üzerinde bir kez çalışmalıdır.
    -- Etiketle tüm modelleri topla
    local vfxModels = CollectionService:GetTagged("AnimatedVfxModel")
    local vfxTable = {} -- tüm parçaları ve sapmaları depolayacağımız yer
    -- Tüm vfx parçalarını ve ofsetini tutacak her bir modele bir tablo atayın
    for _, model in vfxModels do
    vfxTable[model] = {}
    local vfxParts = model:FindFirstChild("VFX"):GetChildren() -- theVFX klasörünü bul
    -- Öznitelik aracılığıyla kemiği bulun ve her parça için ofset 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 part refers to bone that could not be found.")
    end
    end
    end
    print(vfxTable)
    -- Güncelleme - Bu, her müşterinin RunService.PreSimulation'una bağlı olmalıdır
    -- Tüm modellerden geçin, ardından modeldeki tüm parçaları kemik çerçevesiyle eşleştirmek için güncelleştirin.
    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. Bir oyun olayında güncellenmesi gereken herhangi bir nesneyi etiketleyen VFXUpdateModule ModuleScript oluşturduk, böylece AnimasyonluVfxModel ile güncellenebilir.

  3. Gerekli model gruplarını Animasyonlu VFX Modeli kullanarak Etiket Düzenleyici 'den Erişilebilir Görüntüleme sekmesinden etiketledik.Etiketleri kullanmak, VFXUpdateModule 'in ilk VFX çocuğu olarak hangi nesneyi arayacağını ve güncellemeyi uygulayacağını bilmesine izin verir

    VFX In Studio Example
  4. Son olarak, animasyon yapmak istediğimiz parçaya Bağlı Kemik Adı özel özellik ekledik ve takip etmesini istediğimiz eklemlerin doğru adını ekledik.

Yaratığı dokulandır

Sonra, PBR (Fiziksel Tabanlı Renderlanmış) dokunma haritalarını ayarladık.Bu güçlü bitmap'ler, yaratığa çeşitli parıltı ve yüzey değişiklikleri verir, böylece çok sayıda küçük çuk ve kusurlar gibi görünmesini sağlar.Bu görsel efekt, Yaratığın oyuncuya daha yakın olduğunda görünümünü satmaya yardımcı olur.

Creature Texturing Comparison

İşte yüzey görünüm tekstür haritalarını nasıl oluşturduk:

  1. Bu karakter için dokulu haritaların hepsi harita başına bir "yaprak" üzerindeydi.Bu, yaratığı daha verimli hale getirdi ve daha az dokulu harita veya SurfaceAppearance nesne ile uğraşmak zorunda olduğumuzu ifade etti.

  2. Parlak veya kendi kendini aydınlatması gereken alanlar için, örneğin "kavrama tentakülleri" gibi, ayrıca bu parçalarla karışmak için transparans kullandık. SurfaceAppearance

    Illumination Example

    Yüzey görünümü dokunma haritaları oluştururken bu yönergelere uymak yararlı bulundu:

    • Haritalarınızın 1024×1024'ten daha büyük olmadığından emin olun.
    • Yeşil kanalınız, çalıştığınız uygulamaya bağlı olarak çevrilmesi gerekebilir.

Yaratığı animasyonla etkile

Animasyon çok subjektiftir ve kişisel bir tarza sahiptir.Seçenekler hareket yakalama, DCC uygulamanızdaki el "anahtar çerçevesi" animasyonu veya Studio'nun güçlü Animasyon Editörünü kullanmayı içerir.

Daha önce de belirttiğimiz gibi, sıvı hareket için yeterli eklemlerimiz olduğundan ve yeterli uzuvlarımız olduğundan emin olmak istedik, bu yüzden yaratık animasyonu doğal ve "katmanlı" hissetti, yani kolunuzu fırlattığınızda, her eklem ilk etkiden üst kolunuzdan tepki veriyor ve vücudunuzdaki her eklem aynı anda hareket etmiyor veya dinlenmiyor.

Bu tekniği, Yaratığın kollarının vücudunun yönlendirdiği harekete tepki verdiğini hissetmek için kullandık, burada gösterildiği gibi:

Creature Animation Example

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

  • Çerçeve oranlarını en az 30 FPS'ye ayarlayın.
  • Animasyonlarınızı, uyguladığınız aynı karakterle oluşturun.
  • Animasyon verilerinizi ayrı bir .fbx dosya olarak dışa aktarın.

Karakteri Stüdyo dışında animasyonladığımız için, animasyon dosyasını ithal etmek için Animasyon Editörünü kullanmak zorundaydık .fbx .Editör, eklemler veya motorlar ile birlikte herhangi bir avatar seçmenizi ve zaman çizelgesindeki noktalar aracılığıyla sürüş yapmanızı sağlar.

Bir animasyonu ithal etmek için:

  1. Araç çubuğunun Avatar sekmesinde, Animasyon Editörü 'yu açın.

  2. Roblox'ta animasyon yapmak istediğiniz sabit karakteri seçin. Karakter, dış DCC uygulamanızda sabitlediğiniz aynı karakter olmalıdır.

  3. Düzenleme penceresinin üst sol bölümündeki düğmesine tıklayın, FBX Animasyonundan İçe Aktarma seçin ve ihraç edilen .fbx animasyon dosyanızı bulun.

    Animation Import Example 2
  4. Animasyonunuzdan memnun kaldığınızda, animasyon kimliğini keşfetmek için onu ihraç edebilir ve bunları Roblox kodlarında çalıştırmak için kullanabilirsiniz.Örneğin, ithal edilen karakterin model grubuna Script ekleyebilir ve animasyonu çalıştırmak için aşağıdaki kodu kullanabilirsiniz:

    Animation Script Example

    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 hale efekti vermek için birkaç bitirme ayarından sonra, burada uzay istasyonundaki sonuç!

Final Creature Rendering