Setelah Anda memiliki bentuk campuran Anda diatur dalam aplikasi pemodelan 3D Anda (seperti Autodesk® Maya®):
0
berarti bentuk campuran tidak berpengaruh.100
berarti bentuk campuran memiliki pengaruh penuh.Untuk membuat animasi campuran:
Buat animasi yang Anda inginkan dengan menyesuaikan berat keyframesBingkai yang menandai titik awal atau akhir transisi dalam animasi. Bingkai di antara bingkai kunci disebut inbetweens.
Lihat di Glossary dan campuran.
Untuk melihat pratinjau animasi Anda, klik Play di jendela Editor atau jendela Animasi.
Anda juga dapat mengatur berat campuran melalui scripting menggunakan fungsi seperti GetBlendShapeWeight dan SetBlendShapeWeight.
Untuk memeriksa berapa banyak bentuk campuran sebesar MeshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
Lihat di Glossary, gunakan variabel blendShapeCount.
Contoh kode ini menunjukkan cara mencampur bentuk default menjadi dua bentuk campuran lain dari waktu ke waktu ketika melekat pada GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary dengan tiga atau lebih bentuk campuran:
using UnityEngine;
using System.Collections;
public class BlendShapeExample : MonoBehaviour
{
int blendShapeCount;
SkinnedMeshRenderer skinnedMeshRenderer;
Mesh skinnedMesh;
float blendOne = 0f;
float blendTwo = 0f;
float blendSpeed = 1f;
bool blendOneFinished = false;
void Awake ()
{
skinnedMeshRenderer = GetComponent<SkinnedMeshRenderer> ();
skinnedMesh = GetComponent<SkinnedMeshRenderer> ().sharedMesh;
}
void Start ()
{
blendShapeCount = skinnedMesh.blendShapeCount;
}
void Update ()
{
if (blendShapeCount > 2) {
if (blendOne < 100f) {
skinnedMeshRenderer.SetBlendShapeWeight (0, blendOne);
blendOne += blendSpeed;
} else {
blendOneFinished = true;
}
if (blendOneFinished == true && blendTwo < 100f) {
skinnedMeshRenderer.SetBlendShapeWeight (1, blendTwo);
blendTwo += blendSpeed;
}
}
}
}