2017-05-29 3 views
0

Ich arbeite derzeit an RPG grafisch sehr ähnlich wie Runescape (alte Schule), aber mit meinem eigenen Spielsystem. Ich bin nicht sicher, was der beste Weg ist, ein austauschbares Panzerungssystem zu haben. Ich werde Low-Poly-Modelle erstellen, wie ich schon sagte, ähnlich wie Runescape-Modelle wie here, und wollen die Möglichkeit haben, zufällige Varianten der Rüstung wie here zu haben.Wie austauschbare Rüstung auf Charakter (Low-Poly-Modelle)

Es gibt zwei Möglichkeiten, wie ich verstehe, erstens ist nur Mesh meines Charaktermodells ändern, das zweite ist, Modell meines Charakters zu erstellen und die Knochengewichte zu Rüstungsmodellen zu verwenden. Ich weiß, es gibt ein ganzes Thema über die erste Option hier (konnte nicht 3rd Link machen) forum.unity3d.com/threads/stitch-multiple-body-parts-into-one-character.16485/, aber wirklich? Jede Frage nach etwas Ähnlichem führt zu diesem Thema. Aber es ist wie 8 Jahre alt und für Unity 2.0 ... Gibt es einen einfacheren Weg, die gleichen Ergebnisse zu erzielen, aber studieren Sie nicht die erschöpfende Erklärung von Masterprompt, die ich sowieso nicht umsetzen kann. Und für den zweiten Weg kann ich keine Hinweise finden, außer Handbuch und Skript auf Einheitsweb für Knochengewicht, das viel zu allgemein für meinen Gebrauch und meine Fähigkeiten ist. Ich habe nach Stunden für einige Lösungen (Tutorials) gesucht, aber google knallt die gleichen Themen, die 4-8 Jahre alt sind ...

Jeder Rat, wie man die beste Weise auswählt, um Rüstungen zu ändern und wie man gewinnt Wissen über diese Themen? Danke.

Antwort

2

Also was ich in meinen Projekten mache, ist, dass ich meine Basis-Charakter .blend-Datei (Rig, Modell) dupliziere und ich entferne das meiste Mesh außer dem Körperteil, für den ich die Kleidung machen möchte (Brust/Beine). Ich ziehe es ein wenig heraus, damit die Scheitelpunkte sich nicht mit dem Grundnetz überschneiden und speichern Sie es einfach.

Dann in Unity ich ein neues Fertigteil aus dem Modell, das ich gerade gespeichert habe. Die Hierarchie eines Prefab sieht wie folgt aus: Eltern Spielobjekt mit BoneReplacer.cs Skript -> Kind Spielobjekt mit Skinned Mesh Renderer meiner Kleidung.

Dann muss ich nur dieses Prefab auf mein Character-Prefab ziehen, damit die Zielvariable in diesem Skript auf den Skinned Mesh Renderer meines Charakters zeigt.

Dies ist wahrscheinlich nicht der beste Weg, um dies zu tun, aber es funktioniert für mich, vielleicht wird es Ihnen helfen, Ihren Kopf herum und erstellen Sie eine bessere Lösung.

Heres das BoneReplacer.cs Skript:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class BoneReplacer : MonoBehaviour 
{ 
    public GameObject target; 
    SkinnedMeshRenderer myRenderer; 
    Transform[] newBones; 
    SkinnedMeshRenderer targetRenderer; 
    Dictionary<string, Transform> boneMap = new Dictionary<string, Transform>(); 

    void Start() 
    { 
     target = transform.parent.parent.gameObject; 
     targetRenderer = target.GetComponentInChildren<SkinnedMeshRenderer>(); 

     foreach (Transform _bone in targetRenderer.bones) 
     { 
      boneMap[_bone.gameObject.name] = _bone; 
     } 

     myRenderer = gameObject.GetComponent<SkinnedMeshRenderer>(); 
     newBones = new Transform[myRenderer.bones.Length]; 

     for (int i = 0; i < myRenderer.bones.Length; i++) 
     { 
      GameObject _bone = myRenderer.bones[i].gameObject; 
      if (!boneMap.TryGetValue(_bone.name, out newBones[i])) 
      { 
       Debug.Log("Unable to map bone ~" + _bone.name + "~ to target skeleton!"); 
       break; 
      } 
     } 

     myRenderer.bones = newBones; 
     myRenderer.rootBone = targetRenderer.rootBone; 
    } 
} 
+0

Ich wollte gleichen Ansatz vorzuschlagen. Sie könnten erwägen, die Option "break;" durch "newBones [i] = _bone.transform;" zu ersetzen, damit das angehängte Objekt mehr Bones als das Zielskelett haben kann. Angehängte Objekte können statische oder prozedurale Animationen für jene Knochen enthalten, von denen das Zielskelett nichts weiß (muss). –

+0

Danke, das ist wirklich nützlich! – Fiffe

Verwandte Themen