Trois animations qui ne sont pas courantes mais qui peuvent grandement améliorer l'expérience de jeu de l'utilisateur :
①Mélange de formes basé sur l'animation de déformation : comme les lèvres et l'animation faciale
②Dynamique inverse : c'est-à-dire la méthode de positionnement des mains et des pieds du personnage pendant la période de course
③ Texture du film : lisez le fichier vidéo rendu à l'étape de pré-rendu sous forme de texture sur la surface 3D
1. Mélange de formes
L'animation faciale, y compris les changements de visage et l'animation des lèvres, nécessite généralement l'utilisation de l'animation Blend Shape ou déformation.Ce type d'animation est généralement réalisé par des concepteurs ou un logiciel 3D, puis importé dans Unity, et Import BlendShapes est activé dans le panneau.
Pour le processus de construction, les animations de morphing nécessitent deux étapes de traitement :
Le concepteur définit la position limite du maillage du panneau, c'est-à-dire que tous les sommets du maillage des faces sont positionnés et disposés à une certaine position limite, et une clé de forme ou une forme de fusion est créée pour enregistrer l'état du maillage de la pose correspondante.
En enregistrant une série de poses différentes, un mélange moyen pondéré des différentes poses peut être généré pour générer l'animation faciale finale, Animations.
2. Dynamique inverse
IK est pris en charge dans la plupart des applications 3D, mais ces données ne peuvent généralement pas être converties en Unity
Toutes les animations IK seront importées dans Unity en tant que Forward Kinematics (FK), ce qui nécessite une configuration manuelle de l'IK d'Unity pour l'accès aux données
Système Mecanim Avatar requis pour démarrer IK \
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArmIK : MonoBehaviour {
public float leftHandPositionWeight;
public float leftHandRotationWeight;
public float rightHandPositionWeight;
public float rightHandRotationWeight;
public Transform leftHandObj;
public Transform rightHandObj;
private Animator animator;
// Use this for initialization
void Start () {
animator = GetComponent<Animator>();
}
// Update is called once per frame
void Update () {
}
private void OnAnimatorIK(int layerIndex)
{
animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, leftHandPositionWeight);
animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, leftHandRotationWeight);
animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandObj.position);
animator.SetIKRotation(AvatarIKGoal.LeftHand, leftHandObj.rotation);
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, rightHandPositionWeight);
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, rightHandRotationWeight);
animator.SetIKPosition(AvatarIKGoal.RightHand, rightHandObj.position);
animator.SetIKRotation(AvatarIKGoal.RightHand, rightHandObj.rotation);
}
}
3. Texture du film
Composant Audio Source, responsable de la lecture du contenu audio dans les films
Créez un matériau, pour le type de shader, sélectionnez Unlit | Texture
Jouez le scénario :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public class PlayVideo1 : MonoBehaviour {
public bool loop1 = true;
public bool playFromStart1 = true;
public MovieTexture video1;
public AudioClip audioClip1;
private AudioSource audio1;
// Use this for initialization
void Start () {
audio1 = GetComponent<AudioSource>();
if (!video1)
video1 = GetComponent<Renderer>().material.mainTexture as MovieTexture;
if (!audioClip1)
audioClip1 = audio1.clip;
video1.Stop();
audio1.Stop();
video1.loop = loop1;
audio1.loop = loop1;
if (playFromStart1)
ControlMovie1();
}
private void OnMouseUp()
{
ControlMovie1();
}
public void ControlMovie1()
{
if (video1.isPlaying)
{
video1.Pause();
audio1.Pause();
}
else {
video1.Play();
audio1.Play();
}
}
// Update is called once per frame
void Update () {
}
}
Principes de base de l'animation de modèle : Démarrage rapide de Unity, partie 4 - Lié à l'animation de modèle Unity - Programmeur recherché
https://blog.csdn.net/Dylan_Day/article/details/80589765