Personalizzare i caratteri

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Puoi importare mesh personalizzati per creare tutto dai NPC a un tessuto animato di una barca a vela. Abbiamo utilizzato la impostazione personalizzata dell'Avatar Importer (ora il 3D Importer ) per portare in più personaggi misteriosi personalizzati, come le creature misteriose del buco nero e i servizi amichevoli, se sconosciuti.

Le seguenti sezioni spiegano come abbiamo utilizzato rigging e skinning , PBR (superficie dell'aspetto) e VFX per costruire uno dei nostri personaggi più complicati che abbiamo chiamato "Creature". Volevamo che fosse luminosa, emetteva un po 'di luce, aveva tracce di fumo di particelle e una animazione fluida che coinvolse la rigatura con abbastanza articolazioni per creare le onde convincenti

Creature Banner

Rigging

Quando avevamo messo su la Creatura, abbiamo trovato meglio modellare il personaggio in una posa neutra, perché quella posa è meglio adatta per piegarsi in più direzioni. Se abbiamo modellato la Creatura con i suoi tentacoli già piegati, avrebbe portato all'allungamento se animassimo i tentacoli per piegarsi nella direzione opposta. Le seguenti schermate mostrano la Creatura nella sua condizione naturale:

Da una posa neutra, abbiamo aggiunto articolazioni economicamente, concentrandoci sulle aree che hanno bisogno della maggior parte delle mosse. Meno articolazioni vuol dire meno controlli quando skinning il tuo personaggio e meno controlli quando animiamo le loro. Nel precedente screenshot, la Creatura sembra che abbia molte articolazioni nel centro, ma il corpo principale ha solo una Articolazione.

La maggior parte delle altre articolazioni sono verso i tentacoli e i mandibili. Con i tentacoli, volevamo un sacco di movimento secondario, o movimento che è sovrapposizione, per creare un effetto convincente che tutti stanno muovendo da Proprio. Tuttavia, la massa centrale dei tentacoli era così vicina l'un l'altro che sembrava sprecare l'uso delle articolazioni per tutti, sia in

Creature Front, Maya

Abbiamo trovato le seguenti linee guida utili, in modo che il mesh del personaggio importi correttamente in Studio:

  • Le articolazioni e le ossa individuali devono avere nomi unici.
  • Le maglie non devono avere lo stesso nome delle articolazioni e dei muscoli.
  • Le maglie non dovrebbero avere trasformazioni prima di skinning / binding; in altre parole, le trasformazioni dovrebbero essere 0 e gli scali dovrebbero essere 1.
  • Le normali meshes dovrebbero guardare all'esterno (il modello non dovrebbe guardare dentro-fuori).
  • I skeleti non dovrebbero avere alcun fattore di scala; tutte le articolazioni dovrebbero essere [1, 1, 1].

Skinning

Quando abbiamo finito il teschio della Creatura, il prossimo passo era to skin il Mesh, maglia. Il skinning può essere un compito impegnativo, quindi per rendere le cose più facili, è meglio essere familiari con le diverse impostazioni iniziali di skinning della tua applicazione DCC per trovare quello che ti piace. Poiché questa è una personaggio organico, lo skinning abbiamo fatto con molta caduta

Pessimo bilanciamento
Lisciare la skinning

Abbiamo trovato le seguenti linee guida che hanno prodotto i migliori risultati per lo appiattimento:

  • Gli effetti di skinning (cioè quelli che colpiscono una parte del modello quando sono spostati) dovrebbero essere un massimo di 4 effetti per verso.
  • I nomi dei joint e mesh devono essere unici, sia all'interno di loro stessi che tra loro.
  • Qualsiasi coda che vuoi importare in Studio deve avere qualche influenza sulla appiattimentodel modello, altrimenti il motore non la importa. Quando possibile, skin your model nella sua posa originale o "Vincolato a".

Importazione della Mesh in Studio

Importare i tuoi personaggi personalizzati in Studio è una delle parti più entusiasmanti del processo, perché puoi vedere le tue creazioni nell'esperienza che stai Costruire!

Per importare la mesh in Studio:

  1. Esegui l'esportazione del personaggio dall'applicazione DCC e assicurati che il Seguendosia corretto:

    • Tutti i normali, le scale e i nomi sono corretti.
    • Il personaggio ha tutta la gerarchia articolare e ossea e tutti i meshi.
    • Le maglie sono tutte sotto 10.000 triangoli per ciascuna parte della maglia.
    • La dimensione totale della mesh non è inferiore a 2000 unità in qualsiasi asse.
    • Vedi Requisiti mesh per una lista completa di specifiche del modello.
    Creature in DCC Tool
  2. Nell' Importer 3D, importa il file personalizzato .fbx o .obj .

    Creature Imported Into Studio

Rendere la Creatura Glow

Una volta che il modello della Creatura era stabile e non richiedeva ulteriori importazioni immediatamente in Studio, abbiamo iniziato a mettere insieme gli oggetti della forma di superficie, le luci e gli effetti visivi. Ciò per garantire che la qualità del modello fosse sufficiente prima di procedere a posizionare e modificare qualsiasi aspetto di esso.

Glowing Creature Example

Sapevamo che volevamo che la Creatura fosse oscura, e i punti focali fossero gli occhi e i suoi "grabby" tentacoli. I punti di contrasto tendono ad attirare l'attenzione, quindi avere pochi forti li garantisce che il viewer sappia cosa concentrarsi. Studio supporta i materiali neon che si illuminano da soli, quindi inizialmente abbiamo separato gli occhi per assicurare che fos

Creature Eyes in Studio

Il materiale neon non emette la luce reale, quindi dopo alcuni test abbiamo aggiunto parti separate per controllare la posizione e la direzione della diffusione della luce. Ciò ha assicurato che l'illuminazione fosse diretta in modo da migliorare la luce degli occhi e anche proiettare sua fonte di luce.

Point Light in Studio

Nota che il SpotLights aggiungere luci visive alla Creatura vicino ad altre superfici o a un Giocatore.

Creature Light Example

Inoltre, volevamo che i tentacoli della Creatura emettessero alcune particelle, in modo che lasciassero un'impronta di fumo quando si muoveva. Poiché i tentacoli sono molto lunghi, l'aggiunta del ParticleEmitter all'intera lunghezza dei tentacoli avrebbe reso le parti emettere dalla parte superiore del tentacolo invece che dalla punta. Per combattere questo

Particle Example

Fare in modo che VFX segui il personaggio

Le posizioni della mesh del personaggio skin non sono aggiornate quando si animano le creature, quindi abbiamo bisogno di un metodo per assicurarci che i VFX, SFX e le luci seguano correttamente la Creatura. Per raggiungerlo, abbiamo creato uno script di controllore VFX e usato CollectionService per informare le parti che contenevano i VFX in cui i bones della creatura sono stati e per seguirli.

  1. Abbiamo posizionato il seguente LocalScript in StarterPlayer → StarterPlayerScripts. Ciò esegue fondamentalmente la funzione di aggiornamento VFX.

    Script locale

    -- Aggiungi questo snippet a uno script locale esistente che rende PreSimulation
    -- connessioni
    local RunService = game:GetService("RunService")
    local vfx = require(workspace.VfxUpdateModule)
    RunService.PreSimulation:Connect(vfx.updateVfx)
    Script del modulo

    -- Questo modulo ha aggiunto parti alle animazioni in modo che siano aggiornate come
    -- l'animazione si esegue. È un bypass per le limitazioni attuali
    -- con arti e ossa e non sarà sempre necessario.
    --
    -- Prerequisiti:
    -- Per essere inclusi, i modelli hanno bisogno del tag "AnimatedVfxModel" e di una cartella
    -- di tutte le parti che vuoi sincronizzare con l'animazioni. Ogni parte ha bisogno
    -- un attributo chiamato "AttachedBoneName" che si riferisce al nome del
    -- osso che vuoi agganciare. Le parti dovrebbero essere già in loro
    -- posizioni corrette rispetto al osso desiderato.
    --
    -- Per utilizzare:
    -- Un LocalScript dovrebbe richiedere questo modulo, quindi connetti
    -- VfxUpdateModule.updateVfx all'evento RunService.PreSimulation .
    local VfxUpdateModule = {}
    local CollectionService = game:GetService("CollectionService")
    -- SETUP - questo dovrebbe essere eseguito una volta su ogni client.
    -- Raccogli tutti i modelli con il tag
    local vfxModels = CollectionService:GetTagged("AnimatedVfxModel")
    local vfxTable = {} -- dove memorizzeremo tutte le parti e gli offset
    -- Assegna una tabella a ciascun modello che contiene tutte le parti vfx e l'Dislocamento
    for _, model in vfxModels do
    vfxTable[model] = {}
    local vfxParts = model:FindFirstChild("VFX"):GetChildren() -- Trova la cartella VFX
    -- Trova il骨 via attributo e calcola l'Offset per ciascuna parte.
    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)
    -- AGGIORNAMENTO - Questo dovrebbe essere linkato a tutti i client's RunService.PreSimulation
    -- Passa attraverso tutti i modelli, quindi aggiorna tutte le parti sul modello per corrispondere alla forma di spalla.
    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. Abbiamo creato un VFXUpdateModule ModuleScript per aggiornare qualsiasi oggetto contrassegnato in modo appropriato con AnimatedVfxModel per l'aggiornamento su un evento di gioco.

  3. Abbiamo contrassegnato i gruppi di modelli necessari con il AnimatedVfxModel utilizzando il Tag Editor, accessibile dalla Visualizza scheda. L'uso dei tag consente al 2> VFXUpdateModule2> di sapere quale oggetto cercare come primo figlio VFX e applicare l'Aggiornarmento.

    VFX In Studio Example
  4. Infine, abbiamo aggiunto un AttachedBoneName attributo personalizzato alla parte che volevamo animare e abbiamo aggiunto il nome preciso della joint che volevamo che Seguire.

Texture la creatura

Successivamente, abbiamo impostato le mappe della texture PBR (Physically Based Rendered). Questi potenti bitmap danno alla creatura la variegata sheen e le varie varianti di superficie per farlo sembrare come se avesse molti piccoli bumps e imperfezioni. Questo effetto visivo aiuta a vendere l'aspetto della Creature quando è più vicino al Giocatore.

Creature Texturing Comparison

Ecco come abbiamo creato le mappe della texture della superficie:

  1. Le mappe della texture per questo personaggio sono state tutte su una "scheda" per mappa. Ciò ha reso la creatura più efficiente e ha fatto si che dovessimo affrontare meno mappe della texture o SurfaceAppearance oggetti.

  2. Per le aree che hanno necessitato di lucentezza o di essere autosufficienti, come i "tentacoli grabby", abbiamo anche usato la trasparenza sul SurfaceAppearance per mescolarsi con queste parti.

    Illumination Example

    Abbiamo trovato utile seguire queste linee guida quando si creano mappe della texture della superficie:

    • Assicurati che le tue mappe non siano più grandi di 1024×1024.
    • Il tuo canale verde potrebbe essere invertito a seconda dell'applicazione in cui hai lavorato.

Animazione della creatura

L'animazione è molto soggettiva e ha uno stile personale. Le opzioni includono la cattura testodel movimento, l'animazione a mano "key frame" nella tua applicazione DCC o l'utilizzo del potente Editor di animazione di Studio.

Come abbiamo menzionato in precedenza, volevamo assicurarci di avere abbastanza arti per la motione fluida, nonché abbastanza limiti, quindi l'animazione della creatura si sentiva naturale e "layered". La sovrapposizione, anche conosciuta come motione secondaria, è qualcosa che vedi nella vita quotidiana - quando fai uscire il tuo braccio, ogni articolazione reagisce all'impulso iniziale dal tuo braccio superiore e ogni articolazione nel

Abbiamo usato questa tecnica per animare la Creatura per sentire come se i muscoli reagissero al movimento guidato dal suo corpo come mostrato qui:

Creature Animation Example

Se si utilizza un'applicazione DCC esterna per l'animazioni, abbiamo trovato che le seguenti linee guida funzionassero meglio:

  • Imposta tassi di frame a almeno 30 FPS.
  • Crea le tue animazioni con lo stesso personaggio a cui le applici.
  • Esporta i tuoi dati di animazione come un singolo .fbx file.

Poiché abbiamo animato il personaggio al di fuori di Studio, abbiamo dovuto utilizzare l'Editor Animation per importare il file .fbx di animazione. L'editor ti consente di selezionare qualsiasi avatar con arti o motori e guidarli tramite punti nel timeline.

Per importare un'animazioni:

  1. Nella scheda Plugin, seleziona l'Editor di animazioni.

    Animation Editor In Studio
  2. Seleziona il personaggio rigato che vuoi animare in Roblox. Il personaggio deve essere lo stesso che stai rigando nella tua applicazione DCC esterna.

  3. Fai clic sul pulsante nell'angolo in alto a sinistra della finestra dell'editor, seleziona Importa dall'animazione FBX e individua il tuo file di esportazione .fbx .

    Animation Import Example 1 Animation Import Example 2
  4. Quando sei felice con la tua animazioni, puoi esportarla per scoprire l'ID animazione, che puoi quindi utilizzare nei script Roblox per eseguirli. Ad esempio, puoi aggiungere un Script al gruppo di modelli del personaggio importato e utilizzare il seguente codice per eseguire l'animazioni:

    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)

Risultati finali

Dopo alcuni piccoli miglioramenti ai colori, alla luce e ad alcuni effetti di particelle per dare un effetto halo più forte davanti alle finestre, ecco il risultato finale nella stazione spaziale!

Final Creature Rendering