t1 / TFDContents / Assets / KinectScripts / AvatarControllerClassic.cs @ 9
이력 | 보기 | 이력해설 | 다운로드 (3.25 KB)
| 1 | 3 | KTH | using UnityEngine; |
|---|---|---|---|
| 2 | //using Windows.Kinect; |
||
| 3 | |||
| 4 | using System; |
||
| 5 | using System.Collections; |
||
| 6 | using System.Collections.Generic; |
||
| 7 | using System.Runtime.InteropServices; |
||
| 8 | using System.IO; |
||
| 9 | using System.Text; |
||
| 10 | |||
| 11 | |||
| 12 | /// <summary> |
||
| 13 | /// Avatar controller is the component that transfers the captured user motion to a humanoid model (avatar). Avatar controller classic allows manual assignment of model's rigged bones to the Kinect's tracked joints. |
||
| 14 | /// </summary> |
||
| 15 | public class AvatarControllerClassic : AvatarController |
||
| 16 | {
|
||
| 17 | // Public variables that will get matched to bones. If empty, the Kinect will simply not track it. |
||
| 18 | public Transform HipCenter; |
||
| 19 | public Transform Spine; |
||
| 20 | public Transform ShoulderCenter; |
||
| 21 | public Transform Neck; |
||
| 22 | // public Transform Head; |
||
| 23 | |||
| 24 | public Transform ClavicleLeft; |
||
| 25 | public Transform ShoulderLeft; |
||
| 26 | public Transform ElbowLeft; |
||
| 27 | public Transform HandLeft; |
||
| 28 | public Transform FingersLeft; |
||
| 29 | // private Transform FingerTipsLeft = null; |
||
| 30 | public Transform ThumbLeft; |
||
| 31 | |||
| 32 | public Transform ClavicleRight; |
||
| 33 | public Transform ShoulderRight; |
||
| 34 | public Transform ElbowRight; |
||
| 35 | public Transform HandRight; |
||
| 36 | public Transform FingersRight; |
||
| 37 | // private Transform FingerTipsRight = null; |
||
| 38 | public Transform ThumbRight; |
||
| 39 | |||
| 40 | public Transform HipLeft; |
||
| 41 | public Transform KneeLeft; |
||
| 42 | public Transform FootLeft; |
||
| 43 | // private Transform ToesLeft = null; |
||
| 44 | |||
| 45 | public Transform HipRight; |
||
| 46 | public Transform KneeRight; |
||
| 47 | public Transform FootRight; |
||
| 48 | // private Transform ToesRight = null; |
||
| 49 | |||
| 50 | [Tooltip("The body root node (optional).")]
|
||
| 51 | public Transform BodyRoot; |
||
| 52 | |||
| 53 | // Offset node this transform is relative to, if any (optional) |
||
| 54 | //public GameObject OffsetNode; |
||
| 55 | |||
| 56 | |||
| 57 | // If the bones to be mapped have been declared, map that bone to the model. |
||
| 58 | protected override void MapBones() |
||
| 59 | {
|
||
| 60 | bones[0] = HipCenter; |
||
| 61 | bones[1] = Spine; |
||
| 62 | bones[2] = ShoulderCenter; |
||
| 63 | bones[3] = Neck; |
||
| 64 | // bones[4] = Head; |
||
| 65 | |||
| 66 | bones[5] = ShoulderLeft; |
||
| 67 | bones[6] = ElbowLeft; |
||
| 68 | bones[7] = HandLeft; |
||
| 69 | // bones[8] = FingersLeft; |
||
| 70 | // bones[9] = FingerTipsLeft; |
||
| 71 | // bones[10] = ThumbLeft; |
||
| 72 | |||
| 73 | bones[11] = ShoulderRight; |
||
| 74 | bones[12] = ElbowRight; |
||
| 75 | bones[13] = HandRight; |
||
| 76 | // bones[14] = FingersRight; |
||
| 77 | // bones[15] = FingerTipsRight; |
||
| 78 | // bones[16] = ThumbRight; |
||
| 79 | |||
| 80 | bones[17] = HipLeft; |
||
| 81 | bones[18] = KneeLeft; |
||
| 82 | bones[19] = FootLeft; |
||
| 83 | // bones[20] = ToesLeft; |
||
| 84 | |||
| 85 | bones[21] = HipRight; |
||
| 86 | bones[22] = KneeRight; |
||
| 87 | bones[23] = FootRight; |
||
| 88 | // bones[24] = ToesRight; |
||
| 89 | |||
| 90 | // special bones |
||
| 91 | bones[25] = ClavicleLeft; |
||
| 92 | bones[26] = ClavicleRight; |
||
| 93 | |||
| 94 | bones[27] = FingersLeft; |
||
| 95 | bones[28] = FingersRight; |
||
| 96 | bones[29] = ThumbLeft; |
||
| 97 | bones[30] = ThumbRight; |
||
| 98 | |||
| 99 | // body root and offset |
||
| 100 | bodyRoot = BodyRoot; |
||
| 101 | //offsetNode = OffsetNode; |
||
| 102 | |||
| 103 | // if(offsetNode == null) |
||
| 104 | // {
|
||
| 105 | // offsetNode = new GameObject(name + "Ctrl") { layer = transform.gameObject.layer, tag = transform.gameObject.tag };
|
||
| 106 | // offsetNode.transform.position = transform.position; |
||
| 107 | // offsetNode.transform.rotation = transform.rotation; |
||
| 108 | // offsetNode.transform.parent = transform.parent; |
||
| 109 | // |
||
| 110 | // transform.parent = offsetNode.transform; |
||
| 111 | // transform.localPosition = Vector3.zero; |
||
| 112 | // transform.localRotation = Quaternion.identity; |
||
| 113 | // } |
||
| 114 | |||
| 115 | // if(bodyRoot == null) |
||
| 116 | // {
|
||
| 117 | // bodyRoot = transform; |
||
| 118 | // } |
||
| 119 | } |
||
| 120 | |||
| 121 | } |