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 | } |