Jump to content
Unity Insider Forum

Animationen abspielen


Mkay22

Recommended Posts

Hallo,

 

Ist zwar schon alter aber meine frage passt hier rein

Und zwar hab ich ein script gemacht das die laufanimation ausführ (ungefähr wie malzbies entwurf)

jetzt habe ich aber 5 .fbx datein mit je einer unterschiedlichen animation

will aber nur 1 datei auf dem spielfeld haben

wenn ich jetzt das script mit allen bewegungsanimationen dranhänge and den char auf dem spielfeld

wird nur die animation ausgeführt die mit der .fbx des chars auf dem spielfeld verbunden ist bgespielt (logisch)

Nur meine Frage ist wie ich jetzt die animationen aus den anderen .fbx daein auf dem hauptChar abspielen kann

Link zu diesem Kommentar
Auf anderen Seiten teilen

Altes Animationssystem(Legacy) oder Mecanim?

Legacy:

1. In der Animations-Komponente weitere Slots hinzufügen, indem man die Zahl der Animationen raufsetzt

2. Per DragDrop oder per Klick auf Kreis-Icon auf freiem Slot weitere Animations-Clips hinzufügen

3. Fertig ist die Chose

 

Mecanim:

<Please insert mecanim expert :) >

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Kreis ist ganz rechts in der Zeile, nachdem du "Size" erhöht hast, auch in Unity 4.

Du kannst aber auch einfach die Animation auf die Zeile "Animations" ziehen.

Dann wird das Array automatisch um 1 erweitert und die gezogene Animation eingefügt.

 

P.S. an mehreren Stellen brauchst du das nicht zu fragen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich weis nicht genau ob wir vom selben reden bei mir gibts keinen Kreis oder ich bin einfach blind

wenn man eine datei mit animationen auswählt gibts im inspector Model/Rig/Animations

dort kann ich auch die zu der datei gehörige animation abspielen aber keine hinzufügen

 

Sry wollte eg neues thema aufmachen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem ist, dass du Mecanim benutzt, dein Post aber recht eindeutig darauf hinwies, dass du das Legacy-System benutzt.

 

Um Animationen zu benutzen, einfach die Animation von unten bei Mecanim reinziehen. Damit das ganze kompatibel zu irgendeiner humanoiden Animation ist, muss deine Figur einen humanoiden Avatar haben. Da einfach mal die Rig-Einstellungen der Import Settings deiner Figur für ansehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm, ich les hier immer wieder was von Legacy. Die alte Methode ist doch gar nicht Legacy. Die ist nur eben extern, und nicht intern mit Mecanim. Und das wird Unity aller Voraussicht nach auch so beibehalten. Denn sehr viele Leute nutzen nach wie vor ihre 3D Pakete fürs Animieren. Und nicht das Mecanim System.

 

Musst ich jetzt einfach mal loswerden :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

var wrapMode = WrapMode;

 

 

 

function Update () {

 

if(Input.GetKey("w")) {

animation["Rennen"].wrapMode = WrapMode.Loop;

animation.Play("Rennen");

 

} else {

animation["Stehen"].wrapMode = WrapMode.Loop;

animation.Play("Stehen");

 

}

 

}

 

 

 

 

 

So Hab jetzt auf legacy umgestellt (habs herausgefunden und die animationen zugewiesen)

Nun Kommt aber bei dem Oberen Script (zeile 12) ein NullReferenceException error

Ich hab keine ahnung wiso weil in dem If Block genau das selbe steht

bitte um hilfe

Link zu diesem Kommentar
Auf anderen Seiten teilen

var wrapMode = WrapMode;

Das sollte nicht so wirklich Funktionieren.

Außerdem kannst du den WrapMode über den Editor direkt im AnimationClip festlegen, das muss das Script nicht tun.

 

Bleib doch bei Mecanim, das ist schon eine gute Idee... hat dir meine Aussage nichts gebracht?

Um Animationen zu benutzen, einfach die Animation von unten bei Mecanim reinziehen. Damit das ganze kompatibel zu irgendeiner humanoiden Animation ist, muss deine Figur einen humanoiden Avatar haben. Da einfach mal die Rig-Einstellungen der Import Settings deiner Figur für ansehen.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo nochmal,

 

Nochmal zurück zu Mecanim hab wieder alles auf Mecanim gestellt und alle animationen eingesetzt.

Nun hab ich in mein script

 

 

if(Input.GetButtonDown("w"))

{

anim.SetBool("Bewegung", true);

}

eingesetzt um beim W drücken die Bewegungsanimation abzuspielen.

Im Animator habe ich den Bool Bewegung auf false gesetzt und als bedingung zum abspielen der Rennanimation

Bool auf true gesetzt werden muss was ich mit meine Script block (oben) gemacht habe

trozdem wird nur die Default Animation vom Animator abgespielt warum?

Link zu diesem Kommentar
Auf anderen Seiten teilen

GetButtonDown gibt nur einen Frame lang true zurück. Für Mecanim würde ich das lieber mindestens die ganze Transition Time lang den Boolean gesetzt haben wollen.

Das nervt mich selbst auch ziemlich an Mecanim, sowas wie Animation.Play über Script gibt's noch nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich habe jetzt nen unty tutorial script für meine zwecke umgestellt

 

 

using UnityEngine;

using System;

using System.Collections;

 

public class HCMecanimScript : MonoBehaviour {

 

[RequireComponent(typeof(Animator))]

 

protected Animator animator;

 

public float DirectionDampTime = .25f;

 

void Start ()

{

animator = GetComponent<Animator>();

}

 

 

void Update ()

{

animator.SetBool("Jump", Input.GetKey("Jump"));

 

float h = Input.GetAxis("Horizontal");

float v = Input.GetAxis("Vertical");

 

animator.SetFloat("Speed", h*h*v*v);

animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime);

}

 

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...