Das Ziel des Artikels ist es, den Charakter von Makehuman auf Unity3d zu übertragen, damit seine Kleidung während des Spiels ausgezogen und angezogen werden kann.
Dafür benötigen wir Makehuman , Blender3d , Unity3d und das UMA- Plugin ( alle sind kostenlos). Der Artikel wurde basierend auf diesem YouTube-Kanal geschrieben und wiederholt, nachdem der Autor viele Unebenheiten gefüllt hatte, und jetzt bin ich bereit, meine Vision darzulegen.
Stufe 1: Charaktererstellung in Makehuman
Dies ist die einfachste und unterhaltsamste Phase. Hier müssen Sie den Charakter modellieren. Makehuman ist ein ziemlich einfaches Programm, daher werde ich nicht beschreiben, wie man damit arbeitet.
Es gibt jedoch drei wichtige Punkte. Erstens: Sie müssen dem Modell ein Skelett hinzufügen (hinzugefügt auf der Registerkarte Pose / Animate). In diesem Tutorial verwende ich das Game Engine-Rig. Zweitens, wenn der Charakter Kleidung hat, dann müssen Sie die Option zum Entfernen von Polygonen unter der Kleidung deaktivieren (dies kann in der Geometris erfolgen -> Bekleidung Registerkarte und deaktivieren Sie die ausblenden Gesichter unter der Kleidung Checkbox ). Drittens müssen Sie nach fbx exportieren und die Einheiten von Metern angeben. Für alle Fälle können Sie das Modell auch speichern.
Ein paar zusätzliche Punkte
Die Pose des Charakters muss nicht geändert werden.
Die Kleidung kann in Teilen exportiert werden. Das heißt, Sie müssen nicht alle Kleidungsstücke auf einmal anziehen. Sie können beispielsweise zuerst einen Charakter speichern, der nur Hosen und ein Hemd hat. Exportieren Sie sie in einem Mixer, kehren Sie dann zu makehuman zurück, entfernen Sie alte Kleidung und wiederholen Sie die Exportvorgänge, z. B. für Hut und Stiefel.
Maßeinheiten sind Zähler, was bedeutet, dass zehn Zellen in makehuman einen herkömmlichen Zähler bedeuten
Stufe 2: Verarbeitung in Blender3d
Hier müssen wir drei Dinge tun:
Modell normalisieren
Fügen Sie einen globalen Knochen hinzu
Körperteile schneiden
Starten Sie Blender3d. Zuerst müssen wir das Licht, die Kamera und den Würfel entfernen und unser Modell importieren. Dann importieren wir unser Modell: Datei -> Importieren -> fbx (und wählen unsere fbx-Datei aus)
Der Rechen, auf den ich trat
, makehuman, ( fbx , ). .
. , , , , . , . .
, ( a)
pose ->clear transform -> all
, , . .
90 ,
.
. R , X . -90 Enter
, .
, , , , . scale 0.500, 1.000. , scale, , . .
0° 1.000 ( ).
, ( ) ctrl + a, rotation & scale.
, UMA. .
Global (Head= 0,0,0 Tail=0,0,0.1) //
Position (Head= 0,0,0 Tail=0,0,0.1) // Root
( pelvis)
Root Position. Transform .
( Game_engine) . add -> single bone
bone, Global , Position.
Global Position. Position.
Global, shift, Position. 3d ctrl + p, keep offset.
UMA - / - . , , .
-
-
( )
-
-
-
(seams mesh). , ( , ). .
seams mesh
( ). (, ) .
shift + d, RMB
.
seams mesh ( ).
, .
( seams mesh).
.
alt ( , ).
UPD: ( c) , ValeryIvanov :
( h), L ( ), , Alt + L. P Selection. , .
.
. . .
.
, seams mesh . .
fbx ( makehuman )
3: UMA
unity, , unity. UMA - Unity Multipurpose Avatar, . UMA/Getting Started/UMA_GLIB .
, characters. (fbx ). , . fix now.
UMA ( characters), . . , .
fbx , Convert Units, Apply. rig animation type, Humanoid Apply.
UMA -> Extract T-Pose ( fbx ). TPoses -.
UMA -> Slot Builder, . fbx seams mesh seams mesh Slot Builder. UMAMaterial UMA_defuse ( ). slot destination folder .
automatic Drag and Drop porcessig. , , ( ). , seams mesh None , .
. , UMA, , , , , ( ). , , Create -> UMA -> Core -> Overlay Asset. Overlay name ( head), material ( UMA_defuse) 1, _MainTex . .
TextRecipe RaceData
Create -> UMA -> Core -> Race Data, Create -> UMA -> Core -> Text Recipe. - . - / . . , Race Name , TPose - . Base Race Recipe .
Wardrobe Slots, - , . Wardrobe Recipe. Wardrobe Recipe . Wardrobe Recipe ? , () . , , ( , ). Wardrobe Recipe , , ( ), , . Wardrobe Slots :
None
Hair
Shirt
Pants
Shoes
BaseRecipe, Slots. Race Data (, ). ( ). . . , shared overlays.
UMA -> Global Library, .
. UMA/Getting Started/UMADynamicCharacterAvatar ( ). Dynamic Character Avatar Active Race .
( , ). , . Race Animation Controllers Race Animators , Race , Animator IdleTest-w-head.
Play. .
Create -> UMA -> DCS -> Waredrop Recipe, , Wardrobe Slot . , . , . . , Customization -> Default Recipes .
, . Create -> UMA -> Misc -> Mesh Hide Asset, , , Begin Editing , . Waredrop Recipe Add Mesh Hide Asset, .
. Dynamic Character Avatar, Customisation -> Default Waredrop Recipes .
DynamicCharacterAvatar. SetSlot ClearSlot , BuildCharacter. SetSlot . . Waredrop Recipe. ClearSlot .
SetSlot ()
, . , SetSlot Waredrop Slot Waredrop Recipe.
, - AddWardrobe RemoveWardrobe.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UMA;
using UMA.CharacterSystem;
public class Program : MonoBehaviour
{
// Dynamic Character Avatar
public GameObject DCA;
private DynamicCharacterAvatar avatar;
void Start(){
avatar = DCA.GetComponent<DynamicCharacterAvatar>();
}
public void AddWardrobe(string wardrobeSlot, string wardrobeRecipe){
avatar.SetSlot(wardrobeSlot,wardrobeRecipe);
avatar.BuildCharacter();
}
public void RemoveWardrobe(string wardrobeSlot){
avatar.ClearSlot(wardrobeSlot);
avatar.BuildCharacter();
}
}
Vielen Dank für das Lesen bis zum Ende. Ich hoffe, dieser Artikel ist ein weiterer Schritt für Sie, um Ihr Traumspiel zu erstellen.