Wechseln Sie die Kleidung von Charakteren von MakeHuman in Unity3d

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 , ). .





. , , , , . , . .









Wechseln Sie in den Pose-Modus

, ( a)





pose ->clear transform -> all





Klare Transformation

, , . .





90 ,





.





In den Objektmodus wechseln

. 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

( ). (, ) .





Nähte greifen ineinander
seams mesh

shift + d, RMB





.





seams mesh ( ).





, .





( seams mesh).

.





alt ( , ).





UPD: ( c) , ValeryIvanov :





( h), L ( ), , Alt + L. P Selection. , .





Verstecke den Streifen am Hals (H)
( H)
Drücken Sie L, um den Kopf auszuwählen (der Cursor sollte sich auf dem Kopf befinden).
L ( )
Zeigen Sie den Streifen (Alt + L) und wählen Sie die Auswahl (P -> Auswahl).
(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.








All Articles