<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hito3218</id>
	<title>Medien Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hito3218"/>
	<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/Special:Contributions/Hito3218"/>
	<updated>2026-06-19T01:48:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87464</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87464"/>
		<updated>2016-10-07T09:32:57Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: /* Working flow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Idea introduction ==&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;1.Meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
- Balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Working flow ==&lt;br /&gt;
&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Visual theme ==&lt;br /&gt;
&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Coding part ==&lt;br /&gt;
&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_1.png&amp;diff=87463</id>
		<title>File:Visual 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_1.png&amp;diff=87463"/>
		<updated>2016-10-07T09:31:18Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: Hito3218 uploaded a new version of File:Visual 1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87462</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87462"/>
		<updated>2016-10-07T09:29:17Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: /* Working flow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Idea introduction ==&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;1.Meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
- Balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Working flow ==&lt;br /&gt;
&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87461</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87461"/>
		<updated>2016-10-07T09:27:34Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: /* Idea introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Idea introduction ==&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;1.Meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
- Balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Working flow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87460</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87460"/>
		<updated>2016-10-07T09:27:04Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: /* Idea introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Idea introduction ==&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;1.Meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
- Balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Working flow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87459</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87459"/>
		<updated>2016-10-07T09:24:29Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Idea introduction ==&lt;br /&gt;
 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Working flow ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_4.png&amp;diff=87458</id>
		<title>File:Unity 4.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_4.png&amp;diff=87458"/>
		<updated>2016-10-07T09:21:06Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_3.png&amp;diff=87457</id>
		<title>File:Unity 3.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_3.png&amp;diff=87457"/>
		<updated>2016-10-07T09:20:38Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_2.png&amp;diff=87456</id>
		<title>File:Unity 2.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_2.png&amp;diff=87456"/>
		<updated>2016-10-07T09:20:17Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_1.png&amp;diff=87455</id>
		<title>File:Unity 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Unity_1.png&amp;diff=87455"/>
		<updated>2016-10-07T09:19:55Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_4.png&amp;diff=87454</id>
		<title>File:Visual 4.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_4.png&amp;diff=87454"/>
		<updated>2016-10-07T09:07:08Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: Hito3218 uploaded a new version of File:Visual 4.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_4.png&amp;diff=87453</id>
		<title>File:Visual 4.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_4.png&amp;diff=87453"/>
		<updated>2016-10-07T09:04:49Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_3.png&amp;diff=87452</id>
		<title>File:Visual 3.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_3.png&amp;diff=87452"/>
		<updated>2016-10-07T09:04:17Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: Hito3218 uploaded a new version of File:Visual 3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_3.png&amp;diff=87451</id>
		<title>File:Visual 3.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_3.png&amp;diff=87451"/>
		<updated>2016-10-07T09:03:07Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: Hito3218 uploaded a new version of File:Visual 3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_3.png&amp;diff=87450</id>
		<title>File:Visual 3.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_3.png&amp;diff=87450"/>
		<updated>2016-10-07T08:56:55Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_2.png&amp;diff=87449</id>
		<title>File:Visual 2.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_2.png&amp;diff=87449"/>
		<updated>2016-10-07T08:55:58Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_1.png&amp;diff=87448</id>
		<title>File:Visual 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Visual_1.png&amp;diff=87448"/>
		<updated>2016-10-07T08:55:20Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Software.png&amp;diff=87447</id>
		<title>File:Software.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Software.png&amp;diff=87447"/>
		<updated>2016-10-07T08:54:46Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87446</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87446"/>
		<updated>2016-10-07T08:54:05Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;== Idea introduction ==&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;== Working flow ==&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87445</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87445"/>
		<updated>2016-10-07T08:52:11Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;== Idea introduction ==&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
- balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
- balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
- balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Put the concept of balance in our game&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;== Working flow ==&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_3.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_2.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&amp;lt;br&amp;gt;&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87444</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Yuxin Tan</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Yuxin_Tan&amp;diff=87444"/>
		<updated>2016-10-07T08:44:58Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;== Idea introduction ==&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;meanings of balance&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
- balance of life&amp;lt;br&amp;gt;&lt;br /&gt;
God is fair to everyone. For instance, the snail has a strong shell, but it moves slowly. the fish can swim free in the water, but it will die when it is exposed to the air. Only so, the life would reach a level of balance, and the nature would reach the state of balance as well.&amp;lt;br&amp;gt;&lt;br /&gt;
- balance with body&amp;lt;br&amp;gt;&lt;br /&gt;
Live in a city, every lamp can light up a story, but not every story can enrich a period of life. A sort of protagonist in the story keeps working day and night. They know how to type computer quickly，how to work effectively, how to smile to colleague accurately, but maybe they never  try to understand their body. As a individual, the more integrated into society, the more our body posture tend to social cognition. So the relationship between body and soul is a widespread question in the world. Rather than treating body as the obstacle to the soul, people should treat the body as a bridge to their soul. According to having the conversion with bodies, individual can learn more about themselves, then achieve a state of balance in their own life.&amp;lt;br&amp;gt;&lt;br /&gt;
- balance with environment&amp;lt;br&amp;gt;&lt;br /&gt;
The only constant in the world is change. How to find the balance in the changeable world is one of the most important subject in our life. It is a process which  from finding the change of environment to reacting to it. And the process is also can be renamed as study. From a balance status to another balance status, it shows the most notable features: live, dynamic, energetic. It means there are a number of external factors affect the balance ,instead of in a isolate scene. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Put the concept of balance in our game&#039;&#039;&#039;&lt;br /&gt;
- the basic scene&amp;lt;br&amp;gt;&lt;br /&gt;
- the object in the scene&amp;lt;br&amp;gt;&lt;br /&gt;
- as players,how to interactive with the game&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;== Working flow ==&#039;&#039;&#039;&lt;br /&gt;
- Motion capture system get users’ movement data&amp;lt;br&amp;gt;&lt;br /&gt;
- The model of players and scene were built in blender&amp;lt;br&amp;gt;&lt;br /&gt;
- Unity &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:software.png|software]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Visual theme&#039;&#039;&#039;&lt;br /&gt;
Firstly, we want to use dots, line and face as the basic pattern, like the geometrical form. Then we want to do some transform to the basic pattern such as repetition, superimposed, offset and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_1.png|visual]]&lt;br /&gt;
Secondly, for color matching, we want to use fluorescence color as the main color, like pink, blue and purple. We also want to use grey and yellow and other colors as the complementary color.&amp;lt;br&amp;gt;&lt;br /&gt;
Thirdly， for the color pallet, we want to create something that people wouldn’t believe it is real, like a dream, or a psychedelic trip. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_2.png|visual]]&lt;br /&gt;
[[Image:visual_3.png|visual]]&lt;br /&gt;
But after we put these style in game we found we can&#039;t control the movement of texture, it didn&#039;t reach our expectation so we chose a simple way to express it. The background is red and the player are light yellow cube. The texture looks like mottled printed paper&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:visual_4.png|visual]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding part&#039;&#039;&#039;&lt;br /&gt;
This program has two main parts. One is to connect the Unity and theCaptury, and send the position data of each bone to the game object. The other is to control the environment parameters and generate a plain and a ball. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are all game objects in this project. Including all the models and scripts and other setting like camera and UI. This concept is based on object-oriented programming so that users can add components to each object based on their needs.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_1.png|unity]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Connecting Unity and theCaputry.&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry provides API for Unity applications. It uses UDP as its Internet protocol suite. In “Osc_Receive_tutorial” this script we should set remoteIP or local host if tested locally, listening port and sending port. Taking into account the stability of the system the listening and sending port should be 1065.&lt;br /&gt;
[[Image:unity_2.png|unity]]&lt;br /&gt;
In this project we have at least two or three players on stage. To define every bone in every player and put them in an array. These are all bones that can be recognized by theCaputry.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_3.png|unity]]&lt;br /&gt;
Unity has its own humanoid system to recognize the bones in model and match it. Users need to define animation type and avatar definition. Next step is to initialize on start up to listen for messages make sure this game object has both UDPPackIO and OSC script attached. Subscribing for the position data from theCaputry with a certain format.&amp;lt;br&amp;gt;&lt;br /&gt;
[[&#039;&#039;&amp;quot;/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0&amp;quot;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Because Unity is go up on the Y axis and theCaptury is go up on the Z axis, so pay attention to the location of the array when an game object is assigned to the position data.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Generating plain&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
In the second part complete three tasks. Selecting one bone on each player randomly then make up a plain or a line then generating a ball above it, the position of each player will change by the movement of each participants.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:unity_4.png|unity]]&lt;br /&gt;
At first we should define every bone of players and put them in an array. We classify these bones and delete three spine bone because if they were selected player were not easy to adjust their gesture. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
private string[] points1 = new string[17]{&amp;quot;Cube_hip1&amp;quot;,&amp;quot;Cube_LeftShoulder1&amp;quot;,&amp;quot;Cube_LeftForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_LeftArm1&amp;quot;,&amp;quot;Cube_LeftHand1&amp;quot;,&amp;quot;Cube_RightShoulder1&amp;quot;,&amp;quot;Cube_RightForeArm1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightArm1&amp;quot;,&amp;quot;Cube_RightHand1&amp;quot;,&amp;quot;Cube_LeftUpLeg1&amp;quot;,&amp;quot;Cube_LeftLeg1&amp;quot;,&amp;quot;Cube_LeftFoot1&amp;quot;,&lt;br /&gt;
        &amp;quot;Cube_RightUpLeg1&amp;quot;,&amp;quot;Cube_RightLeg1&amp;quot;,&amp;quot;Cube_RightFoot1&amp;quot;,&amp;quot;Cube_Neck1&amp;quot;,&amp;quot;Cube_Head1&amp;quot;};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, get a random number range from 0 to 17 then corresponding to the bone. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
a = Random.Range (0, 17);&lt;br /&gt;
b = Random.Range (0, 17);&lt;br /&gt;
c = Random.Range (0, 17);&lt;br /&gt;
&lt;br /&gt;
cube1 = GameObject.Find(points1[a]);&lt;br /&gt;
cube2 = GameObject.Find(points2[b]);&lt;br /&gt;
cube3 = GameObject.Find(points3[c]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thirdly, by adding MeshRenderer component to three bones to make up a plain and giving them material. Three points are combined with each other can get three vectors and using these vectors to make up a triangle mesh plain.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
MeshRenderer mr1,mr2,mr3;&lt;br /&gt;
mr1 = cube1.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr1.material = select;&lt;br /&gt;
mr2 = cube2.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr2.material = select;&lt;br /&gt;
mr3 = cube3.GetComponent&amp;lt;MeshRenderer&amp;gt; ();&lt;br /&gt;
mr3.material = select;&lt;br /&gt;
&lt;br /&gt;
if (sphere.activeSelf != true)&lt;br /&gt;
     sphere.SetActive (true);&lt;br /&gt;
&lt;br /&gt;
 face.AddComponent&amp;lt;MeshCollider&amp;gt; ();&lt;br /&gt;
&lt;br /&gt;
// Obtain the mesh renderer component through the name of gameobject (face)&lt;br /&gt;
MeshFilter meshFilter =face.GetComponent&amp;lt;MeshFilter&amp;gt;();&lt;br /&gt;
MeshRenderer mr_face = face.GetComponent&amp;lt;MeshRenderer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
mr_face.material = select;&lt;br /&gt;
&lt;br /&gt;
//Obtain the mesh object by mesh filter object&lt;br /&gt;
Mesh mesh = meshFilter.mesh;&lt;br /&gt;
&lt;br /&gt;
//Create three vector objects to make up a triangle mesh&lt;br /&gt;
Vector3 e,f,g;&lt;br /&gt;
e = cube1.transform.position;&lt;br /&gt;
f = cube2.transform.position;&lt;br /&gt;
g = cube3.transform.position;&lt;br /&gt;
mesh.vertices = new Vector3[] {g,f,e};&lt;br /&gt;
&lt;br /&gt;
Vector2 v1, v2, v3;&lt;br /&gt;
v1 = new Vector2 (cube1.transform.position.x, cube1.transform.position.z);&lt;br /&gt;
v2 = new Vector2 (cube2.transform.position.x, cube2.transform.position.z);&lt;br /&gt;
v3 = new Vector2 (cube3.transform.position.x, cube3.transform.position.z);&lt;br /&gt;
&lt;br /&gt;
mesh.uv = new Vector2[] {v1,v2,v3};&lt;br /&gt;
mesh.triangles= new int []{0,1,2};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Setting environment parameters&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
We chose to control the environment parameter manually that is to press key to change it. There are force coming from four directions up,down,left and right. There is a function in Unity which can change gravity. Using a a vector to represent force. In this case we add a upward force. When we press the key the ball will flow up.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
if (Input.GetKeyDown (KeyCode.A)) &lt;br /&gt;
        {&lt;br /&gt;
            Physics.gravity = new Vector3(2, -9.8f,0);&lt;br /&gt;
            wind.SetActive (true);&lt;br /&gt;
            up.SetActive (false);&lt;br /&gt;
            left.SetActive (true);&lt;br /&gt;
            right.SetActive (false);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86166</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86166"/>
		<updated>2016-07-31T15:42:34Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4×4 Rotation matrix&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quaternion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert quaternion to 4×4 Rotation matrix.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert  4×4 Rotation matrix to quaternion.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that used above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other conversion:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be &#039;&#039;&#039;Video&#039;&#039;&#039;] In this video i use cube to replace every bone.&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Performance_Platform/Using_the_tracking_system&amp;diff=86165</id>
		<title>GMU:Tutorials/Performance Platform/Using the tracking system</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Performance_Platform/Using_the_tracking_system&amp;diff=86165"/>
		<updated>2016-07-31T15:42:16Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4×4 Rotation matrix&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quaternion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert quaternion to 4×4 Rotation matrix.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert  4×4 Rotation matrix to quaternion.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that used above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other conversion:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be &#039;&#039;&#039;Video&#039;&#039;&#039;] In this video i use cube to replace every bone.&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Performance_Platform/Using_the_tracking_system&amp;diff=86164</id>
		<title>GMU:Tutorials/Performance Platform/Using the tracking system</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Performance_Platform/Using_the_tracking_system&amp;diff=86164"/>
		<updated>2016-07-31T15:41:37Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4×4 Rotation matrix&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quaternion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert quaternion to 4×4 Rotation matrix.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert  4×4 Rotation matrix to quaternion.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other conversion:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be &#039;&#039;&#039;Video&#039;&#039;&#039;] In this video i use cube to replace every bone.&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86162</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86162"/>
		<updated>2016-07-31T15:40:05Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4×4 Rotation matrix&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quaternion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert quaternion to 4×4 Rotation matrix.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert  4×4 Rotation matrix to quaternion.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other conversion:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be &#039;&#039;&#039;Video&#039;&#039;&#039;] In this video i use cube to replace every bone.&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86158</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86158"/>
		<updated>2016-07-31T15:34:12Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4×4 Rotation matrix&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quaternion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert quaternion to 4×4 Rotation matrix.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert  4×4 Rotation matrix to quaternion.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other conversion:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be &#039;&#039;&#039;Video&#039;&#039;&#039;]&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86157</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86157"/>
		<updated>2016-07-31T15:33:30Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4×4 Rotation matrix&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quaternion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert quaternion to 4×4 Rotation matrix.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convert  4×4 Rotation matrix to quaternion.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Other converion:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be &#039;&#039;&#039;Video&#039;&#039;&#039;]&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86156</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86156"/>
		<updated>2016-07-31T15:32:03Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other conversion&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be Video]&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86155</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86155"/>
		<updated>2016-07-31T15:30:20Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other conversion&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  [https://www.youtube.com/watch?v=VVhXqrPgMJ0&amp;amp;feature=youtu.be Video]&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86154</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86154"/>
		<updated>2016-07-31T15:27:18Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
*Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Other conversion&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm Euler to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm Quaternion To Euler]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm AngleAxis to Quaternion]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm Quaternion to AngleAxis]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86150</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86150"/>
		<updated>2016-07-31T15:03:15Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86149</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86149"/>
		<updated>2016-07-31T15:02:37Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86148</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86148"/>
		<updated>2016-07-31T15:01:59Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86147</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86147"/>
		<updated>2016-07-31T15:00:59Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|hierarchy]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86146</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86146"/>
		<updated>2016-07-31T15:00:06Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|matrix]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative matrix]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|left|hierarchy]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|left|avatar]]&lt;br /&gt;
[[Image:avatar_2.png|left|avatar]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Avatar_2.png&amp;diff=86142</id>
		<title>File:Avatar 2.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Avatar_2.png&amp;diff=86142"/>
		<updated>2016-07-31T14:57:51Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Avatar_1.png&amp;diff=86141</id>
		<title>File:Avatar 1.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Avatar_1.png&amp;diff=86141"/>
		<updated>2016-07-31T14:57:34Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Hierarchy.png&amp;diff=86140</id>
		<title>File:Hierarchy.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Hierarchy.png&amp;diff=86140"/>
		<updated>2016-07-31T14:57:21Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Create_cube.png&amp;diff=86139</id>
		<title>File:Create cube.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Create_cube.png&amp;diff=86139"/>
		<updated>2016-07-31T14:56:53Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Matrix_upper.png&amp;diff=86138</id>
		<title>File:Matrix upper.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Matrix_upper.png&amp;diff=86138"/>
		<updated>2016-07-31T14:56:21Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Matrix.png&amp;diff=86137</id>
		<title>File:Matrix.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Matrix.png&amp;diff=86137"/>
		<updated>2016-07-31T14:56:07Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Vector_upper.png&amp;diff=86136</id>
		<title>File:Vector upper.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Vector_upper.png&amp;diff=86136"/>
		<updated>2016-07-31T14:55:41Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Vector.png&amp;diff=86134</id>
		<title>File:Vector.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Vector.png&amp;diff=86134"/>
		<updated>2016-07-31T14:55:08Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86133</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86133"/>
		<updated>2016-07-31T14:53:53Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|left|Relative vector]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|left|Relative vector]]&lt;br /&gt;
[[Image:avatar_2.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86130</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86130"/>
		<updated>2016-07-31T14:53:17Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|left|Relative vector]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|left|Relative vector]]&lt;br /&gt;
[[Image:avatar_2.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javac=script&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86129</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86129"/>
		<updated>2016-07-31T14:50:52Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;C#&amp;quot;&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;C#&amp;quot;&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|left|Relative vector]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|left|Relative vector]]&lt;br /&gt;
[[Image:avatar_2.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javac=script&amp;quot;&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86128</id>
		<title>GMU:Tutorials/Networking/Controlling Objects in Unity with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Objects_in_Unity_with_The_Captury&amp;diff=86128"/>
		<updated>2016-07-31T14:48:59Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: Created page with &amp;quot;== Introduction == Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;  - Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt; - How to create ob...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Controlling Objects in Unity with The Captury&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative&amp;lt;br&amp;gt;&lt;br /&gt;
- How to create objects in Unity and arrange them so they represent the nodes&amp;lt;br&amp;gt;&lt;br /&gt;
- How to animate these Objects &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rotation matrix, Quaternion ==&lt;br /&gt;
At first we should understand some concepts.There are three ways to represent rotation that is rotation matrix, quaternion and Euler, theCaputry uses rotation matrix, Unity uses  Quaternion and  Euler. This tutorial focus on  Rotation matrix, Quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*4×4 Rotation matrix&amp;lt;br&amp;gt;&lt;br /&gt;
TheCaputry uses it to represent rotation. Unity had only provided a 4 × 4 matrix class Matrix4x4, it contains transform T, rotation R and scaling information. You can refer to [https://en.wikipedia.org/wiki/Rotation_matrix].&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
Any vector can be the rotation axis;&amp;lt;br&amp;gt;&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   In fact, to rotate a object only need 4 values ,a vector(x,y,z) and a angle, but the matrix has 16 elements;&lt;br /&gt;
2.  It will increase the amount of calculation when doing multiplication operation and resultin some waste of space and time;&lt;br /&gt;
&lt;br /&gt;
*Quaternion&amp;lt;br&amp;gt;&lt;br /&gt;
Quaternions are used to represent rotations. Mostly you can use Quaternion AngleAxis(float angle, Vector3 axis) to create a quaternion.Unity internally uses Quaternions to represent all rotations. you can refer to:[https://docs.unity3d.com/ScriptReference/Quaternion.html]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.   They are compact, don&#039;t suffer from gimbal lock and can easily be interpolated;&amp;lt;br&amp;gt;&lt;br /&gt;
2.   It only need a 4-dimensional quaternion through the origin then can execute arbitrary rotation. In some cases it has higher efficiency than rotation matrix;&amp;lt;br&amp;gt;&lt;br /&gt;
3.   It can provide a smooth interpolation;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disadvantage:&amp;lt;br&amp;gt;&lt;br /&gt;
1.Compare to Euler it has one more dimension, so it will be difficult to understand.&lt;br /&gt;
&lt;br /&gt;
== Conversion between Rotation matrix and Quaternion ==&lt;br /&gt;
We might need to convert rotation matrix to quaternion depend on your project needs after we get data from theCaptury in matrix format.There i present two ways to convert there two.&lt;br /&gt;
&lt;br /&gt;
Convert quaternion to 4×4 Rotation matrix.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Quaternion q = Quaternion.LookRotation(new Vector3(0,0.5,1));  &lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert  4×4 Rotation matrix to quaternion.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Matrix4x4 rot = new Matrix4x4();  &lt;br /&gt;
rot.SetTRS(new Vector3(0,0,0),q,new Vector3(1,1,1));  //It’s the same “q” that mentioned above&lt;br /&gt;
Vector4 vy = rot.GetColumn(1);  &lt;br /&gt;
Vector4 vz = rot.GetColumn(2);  &lt;br /&gt;
          &lt;br /&gt;
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cover the OSC syntax and how to get nodes as matrix / vector, absolute and relative ==&lt;br /&gt;
*  Cover the OSC syntax and get nodes as matrix / vector&amp;lt;br&amp;gt;&lt;br /&gt;
With OSC you can subscribe to the following:&lt;br /&gt;
1. subscribe to a bone position,rotation as vector in world coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector.png|left|Vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. subscribe to a bone position,rotation as vector in relative coordinates for positions:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/vector&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:vector_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. subscribe to a bone position,rotation as matrix in world coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. subscribe to a bone position,rotation as matrix in relative coordinates:&amp;lt;br&amp;gt;&lt;br /&gt;
/subscribe/&amp;lt;name of person1&amp;gt;/blender/@/upper/matrix&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:matrix_upper.png|left|Relative vector]]&lt;br /&gt;
&amp;lt;br style=“clear:both”&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use transform.localPosition to get position of the transform relative to the parent transform.&lt;br /&gt;
&lt;br /&gt;
== How to create objects in Unity and arrange them so they represent the nodes ==&lt;br /&gt;
1.  Create a gameobject or you can import your own model into Unity&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:create_cube.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
2.  Arrange the cube in a certain hierarchy&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:hierarchy.png|left|Relative vector]]&lt;br /&gt;
or you can import your model then automap it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:avatar_1.png|left|Relative vector]]&lt;br /&gt;
[[Image:avatar_2.png|left|Relative vector]]&lt;br /&gt;
&lt;br /&gt;
== How to animate these Objects ==&lt;br /&gt;
Asking for data;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
	msg = handler.StringToOscMessage(&amp;quot;/subscribe/fiona/blender/Root/vector 50.0 0.0 20.0&amp;quot;); &lt;br /&gt;
	handler.Send(msg);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.   Getting data;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
switch (msgAddress){&lt;br /&gt;
            case &amp;quot;/Fiona_fit/blender/Root/vector&amp;quot;:&lt;br /&gt;
            hip[0] = values[0];&lt;br /&gt;
            hip[1] = values[1];&lt;br /&gt;
            hip[2] = values[2];&lt;br /&gt;
            break;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.  Giving the data to the object.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
	var transHip = GameObject.Find(&amp;quot;Cube_hip1&amp;quot;);&lt;br /&gt;
	transHip.transform.position = Vector3(hip[0], -hip[2], hip[1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.  Video&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Performance_Platform&amp;diff=84467</id>
		<title>GMU:Performance Platform</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Performance_Platform&amp;diff=84467"/>
		<updated>2016-06-28T20:41:53Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: /* Project Groups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;&#039;&#039;Interactive Performance Platform&#039;&#039;&#039;&#039;&#039; is a lab for artistic research operated by the [[GMU:Start|GMU]].&lt;br /&gt;
== Location ==&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;Interactive Performance Platform&#039;&#039;&#039;&lt;br /&gt;
  Digital Bauhaus Lab, Room 001 (Ground Floor)&lt;br /&gt;
  Bauhausstr. 9a&lt;br /&gt;
  99423 Weimar&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Image:performance-platform-videowall.png|thumb|left|200px|The videowall in action]]&lt;br /&gt;
[[Image:the-captury-screenshot.png|thumb|left|300px|Screenshot from the tracking software]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* markerless multi-person tracking&lt;br /&gt;
* highspeed camera for longterm-recording&lt;br /&gt;
* 12.2 channel audio system&lt;br /&gt;
* 4 x 4 tiled video wall&lt;br /&gt;
* 4 mac workstations&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
[[Image:performance-platform-setup.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
The Performance Platform is used for artistic research.&amp;lt;br&amp;gt;&lt;br /&gt;
However there are occasional workshops and modules inside the lab to introduce the participants to the technology and foster the emergence of cross-disciplinary projects.&lt;br /&gt;
&lt;br /&gt;
  The place may be crowded during modules and workshops.&lt;br /&gt;
  Please try not to disturb during those times.&lt;br /&gt;
  Thank you :)&lt;br /&gt;
&lt;br /&gt;
=== Regular Schedule ===&lt;br /&gt;
&lt;br /&gt;
  Note:&lt;br /&gt;
  Starting June 13th the Lab will be used for Project-Work and Workshops.&lt;br /&gt;
  If you want access to the lab please get in contact with [[Martin Schneider]]&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;left&amp;quot; {{Prettytable}}&lt;br /&gt;
|&lt;br /&gt;
!Monday&lt;br /&gt;
!Tuesday&lt;br /&gt;
!Wednesday&lt;br /&gt;
!Thursday&lt;br /&gt;
!Friday&lt;br /&gt;
!Saturday&lt;br /&gt;
!Sunday&lt;br /&gt;
|-&lt;br /&gt;
!09:15 - 10:45&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|-&lt;br /&gt;
!11:00 - 12:30&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|-			&lt;br /&gt;
!13:30 - 15:00&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|-&lt;br /&gt;
!15:15 - 16:45 &lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|-&lt;br /&gt;
!17:00 - 18:30 &lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|[[GMU:Digital_Puppetry_Lab|Tutorium]] / Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|-&lt;br /&gt;
!19:00 - 20:30 &lt;br /&gt;
|Lab-Time&lt;br /&gt;
|[[GMU:Digital_Puppetry_Lab|Tutorium]]&lt;br /&gt;
|[[GMU:Digital_Puppetry_Lab|Tutorium]] / Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|Lab-Time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Workshops ===&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;left&amp;quot; {{Prettytable}}&lt;br /&gt;
! workshop title&lt;br /&gt;
! first day&lt;br /&gt;
! last day&lt;br /&gt;
|-&lt;br /&gt;
| [[GMU:Digital_Puppetry_Lab|Digital Puppetry Lab]] - Martin Schneider (GMU/EXPTV)&lt;br /&gt;
| Friday, 15. April&lt;br /&gt;
| Sunday 17. April &lt;br /&gt;
|-&lt;br /&gt;
| [[EXPTV:Start|UNITY-Workshop]] - Stephan Iserman (EXPTV)&lt;br /&gt;
| Thursday, 12. May &lt;br /&gt;
| Friday 13. May &lt;br /&gt;
|-&lt;br /&gt;
| [[GMU:Minecraft Ecologies|Minecraft Ecologies I]] Martin Schneider (GMU)&lt;br /&gt;
| Friday, 13. May&lt;br /&gt;
| Sunday 15. May&lt;br /&gt;
|-&lt;br /&gt;
| [[GMU:Human_and_Nonhuman_Performances_II_SS16|Bio-Semiotics]] - Dario Martinelli (GMU)&lt;br /&gt;
| Friday, 17. May&lt;br /&gt;
| Sunday 19. May&lt;br /&gt;
|-&lt;br /&gt;
| [[GMU:Minecraft Ecologies|Minecraft Ecologies II]] - Martin Schneider (GMU)&lt;br /&gt;
| Friday, 20. May&lt;br /&gt;
| Sunday 22. May&lt;br /&gt;
|-&lt;br /&gt;
| [[GMU:Minecraft Ecologies|Minecraft Ecologies III]] - Daniel Braun, Thomas Hawranke (GMU)&lt;br /&gt;
| Friday, 24. May&lt;br /&gt;
| Sunday 26. May&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Group Work ===&lt;br /&gt;
&lt;br /&gt;
The following 12 dates are available for group work. Please mention at least 3 days, that would would work for you in your group profile! We will activate you for the day and send you a short email when once you are active.&lt;br /&gt;
&lt;br /&gt;
By working in the lab you agree that you have read and understood, and that you will honour the [[GMU:Nutzungsordnung_IPP|Nutzungsordnung]]. You are fully responsible for any damage that occurs during your group work period. (Even if caused by somebody else).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SLOT 1&#039;&#039;&#039; – 16. June (Thu) – PASSED&lt;br /&gt;
* &#039;&#039;&#039;SLOT 2&#039;&#039;&#039; – 17. June (Fri) – Group 7&lt;br /&gt;
* &#039;&#039;&#039;SLOT 3&#039;&#039;&#039; – 18. June (Sat) – Individuals: Jessica Hüttig, Tim Vischer&lt;br /&gt;
* &#039;&#039;&#039;SLOT 4&#039;&#039;&#039; – 20. June (Mon) – Individuals: Jessica Hüttig, Tim Vischer&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SLOT 5&#039;&#039;&#039; – 23. June (Thu) – Group 2&lt;br /&gt;
* &#039;&#039;&#039;SLOT 6&#039;&#039;&#039; – 27. June (Mon) – Group 8&lt;br /&gt;
* &#039;&#039;&#039;SLOT 7&#039;&#039;&#039; – 28. June (Tue) – Group 4&lt;br /&gt;
* &#039;&#039;&#039;SLOT 8&#039;&#039;&#039; – 29. June (Wed) – Group 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SLOT 9&#039;&#039;&#039; – 30. June (Thu) – Individuals: Di Yang + Group 9&lt;br /&gt;
* &#039;&#039;&#039;SLOT 10&#039;&#039;&#039; – 01. July (Fri) – Group 2&lt;br /&gt;
* &#039;&#039;&#039;SLOT 11&#039;&#039;&#039; – 02. July (Sat) – Group 6 + Group 10&lt;br /&gt;
* &#039;&#039;&#039;SLOT 12&#039;&#039;&#039; – 03. July (Sun) – Group 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SLOT 13&#039;&#039;&#039; – 04. July (Mon)&lt;br /&gt;
* &#039;&#039;&#039;SLOT 14&#039;&#039;&#039; – 05. July (Tue) – Group 4&lt;br /&gt;
* &#039;&#039;&#039;SLOT 15&#039;&#039;&#039; – 06. July (Wed) &lt;br /&gt;
* &#039;&#039;&#039;SLOT 16&#039;&#039;&#039; – 07. July (Thu) &lt;br /&gt;
* &#039;&#039;&#039;SLOT 17&#039;&#039;&#039; – 08. July (Fri)&lt;br /&gt;
* &#039;&#039;&#039;SLOT 18&#039;&#039;&#039; – 09. July (Sat)&lt;br /&gt;
* &#039;&#039;&#039;SLOT 19&#039;&#039;&#039; – 19. July (Sun)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Groups ==&lt;br /&gt;
&lt;br /&gt;
  NOTE:&lt;br /&gt;
  The person printed in bold face is responsible for the lab, in case anything goes wrong.&lt;br /&gt;
&lt;br /&gt;
* Group 1 – &#039;&#039;&#039;[[GMU:Minecraft_Ecologies|Minecraft Ecologies]] – GMU&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: ???&lt;br /&gt;
** &#039;&#039;&#039;Meike Halle&#039;&#039;&#039;&lt;br /&gt;
** Marcel Gohsen&lt;br /&gt;
** Asha Murali&lt;br /&gt;
** Andre Faupel&lt;br /&gt;
* Group 2 – &#039;&#039;&#039;[[Physical Sound Environment]] – GMU&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: 10, 11, 12&lt;br /&gt;
** &#039;&#039;&#039;Kan Feng&#039;&#039;&#039; –  Tutorial: [[GMU:Tutorials/Performance_Platform/Capture_with_Processing|Custom Setup to count People using a Light Barrier]]&lt;br /&gt;
** Shuyan Chen –  Tutorial:[[Custom Setup to track People using a Camera on the Ceiling]]&lt;br /&gt;
** Shih-Li Chao – Tutorial: [[GMU:Tutorials/Performance_Platform/Sound_System_Stereo|Play Stereo on the Sound System]]&lt;br /&gt;
* Group 3 – &#039;&#039;&#039;[[/Multiple Gravity|Multiple Gravity]] – ExpTV&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: &#039;&#039;none&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Benjamin Vossler&#039;&#039;&#039; –  [[GMU:Tutorials/Networking/Controlling_MAX-MSP_with_TheCaptury|Controlling Max MSP with the Captury]]&lt;br /&gt;
** Gianluca Pandolfo –  [[GMU:Tutorials/Networking/Controlling_Unity_with_TheCaptury|Controling Unity with The Captury]]&lt;br /&gt;
* Group 4 – &#039;&#039;&#039;[[/Madre Monte|Madre Monte]] – ExpTV&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: 6, 7, 8, 14, 16, 17&lt;br /&gt;
** &#039;&#039;&#039;Emilio Aguas&#039;&#039;&#039; –  Tutorial: [[GMU:Tutorials/Performance Platform/Tracking Platform Export|Using the Multi-Speaker-System]] &lt;br /&gt;
** Fiona Mortimer –  Tutorial Title 2&lt;br /&gt;
** Eduardo Oliviera –  Tutorial Title 3&lt;br /&gt;
* Group 5 – &#039;&#039;&#039;[[/Bounce &amp;amp; Rebound|Bounce &amp;amp; Rebound]] – ExpTV&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: 6, 7, 8&lt;br /&gt;
** &#039;&#039;&#039;Jonas Jülch&#039;&#039;&#039; –  Tutorial: [[GMU:Tutorials/Performance_Platform/Tracking_Platform_Rigging|Using Tracking Data in Blender]]&lt;br /&gt;
** Leif Weitzel –  Tutorial: [[/Networking/Controlling MAX MSP with IanniX|Controlling MAX MSP with IanniX]]&lt;br /&gt;
* Group 6 – &#039;&#039;&#039;[[/Escape or Kill|Escape or Kill]] – ExpTV&#039;&#039;&#039;&lt;br /&gt;
** Slot: 11&lt;br /&gt;
** &#039;&#039;&#039;Florian Froger&#039;&#039;&#039; –  Tutorial: [[GMU:Tutorials/Performance Platform/Tracking Platform Export|Exporting Tracking Data]] &lt;br /&gt;
* Group 7 – &#039;&#039;&#039;[[/Dependance|Dependance]] – ExpTV&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots:  2, 3, 10, 11, 12&lt;br /&gt;
** &#039;&#039;&#039;Alicia Kremser&#039;&#039;&#039; –  Tutorial Title 1&lt;br /&gt;
** Tim Vischer&lt;br /&gt;
** Adam Streicher - [[GMU:Tutorials/Networking/Controlling_Unity_with_TheCaptury|Controling Unity with The Captury]]&lt;br /&gt;
* Group 8 – &#039;&#039;&#039;[[/Group dynamics|Group Dyamics]] – ExpTV&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots:  6&lt;br /&gt;
** &#039;&#039;&#039;Kei Kitamura&#039;&#039;&#039; –  Tutorial Title 1&lt;br /&gt;
* Group 9 – &#039;&#039;&#039;[[/Woll&#039;s World|Woll&#039;s World]] – GMU&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: 6, 7, 8, 9, 10&lt;br /&gt;
** &#039;&#039;&#039;Yun Liu&#039;&#039;&#039; - Tutorial: [[GMU:Tutorials/Visual Interaction/Using Unity for simulation|Control 3D knot by the data of position and velocity in real-time]]&lt;br /&gt;
** &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039;- Tutorial: [[GMU:Tutorials/Visual Interaction/Using Unity for simulation|Simulating 3D knot in real-time]]&lt;br /&gt;
** &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;- Tutorial: [[GMU:Tutorials/Performance_Platform/Using the tracking system|Using the Tracking System to Track the position of joints]]&lt;br /&gt;
* Group 10 – &#039;&#039;&#039;[[/Balance|Balance]] – GMU&#039;&#039;&#039;&lt;br /&gt;
** Preferred Slots: 7,8,10,11,12&lt;br /&gt;
** &#039;&#039;&#039;Yuxin Tan&#039;&#039;&#039; - Tutorial: [[GMU:Tutorials/Performance_Platform/Using the tracking system|Using the Tracking System to Track the position of bones in Unity]]&lt;br /&gt;
** &#039;&#039;&#039;Junyuan Wu&#039;&#039;&#039; - Tutorial: [[GMU:Tutorials/Performance_Platform/Using the tracking system|Using the Tracking System to control the movement of the scene in Unity]]&lt;br /&gt;
&lt;br /&gt;
== Individuals ==&lt;br /&gt;
* Jessica Hüttig – Tutorial: [[GMU:Tutorials/Performance Platform/Tracking Platform Calibration|Calibrating the Tracking System]]&lt;br /&gt;
**Preferred slots: 3&lt;br /&gt;
* Di Yang –  Tutorial: [[GMU:Tutorials/Performance Platform/Videowall Calibration|Calibrating the Videowall]]&lt;br /&gt;
** preferred slots: 8, 9, 10&lt;br /&gt;
* Rachel Smith - [[GMU:Tutorials/Performance_Platform/Recognizing_Gestures_with_Wekinator|Recognising Gestures with Wekinator]]&lt;br /&gt;
** Preferred slots: 10, 11, 12&lt;br /&gt;
* Christopher Dake-Outhet – Tutorial: [[GMU:Tutorials/Performance Platform/Tracking Platform Calibration|Recording Tacking Data]]&lt;br /&gt;
** preferred slots: 6, 8, 12&lt;br /&gt;
* Elena Liv Felderer - Tutorial: [[GMU: Tutorials/Networking Tutorials|Controlling Unity with Processing]]&lt;br /&gt;
** no slots for me&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
* Student projects from the [[GMU:Spacial_Information_Lab#Participants|Spacial Information Lab]]&lt;br /&gt;
* Tracking 3 dancers for the [https://vimeo.com/156704320 3D-Pitoti project]&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
As part of the [[GMU:Digital_Puppetry_Lab|Introduction to the Lab]] the students will create [[GMU:Tutorials#Performance_Plattform_Tutorials|Online Tutorials]].&amp;lt;br&amp;gt;&lt;br /&gt;
The tutorials will explain how to use the technology available at the Performance Platform.&lt;br /&gt;
&lt;br /&gt;
== Mailing-List ==&lt;br /&gt;
There is an internal mailing list for everyone that has their working space on the DBL groundfloor.&amp;lt;br&amp;gt;&lt;br /&gt;
Please contact [[Martin Schneider]] if you think you should be on that list.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://www.uni-weimar.de/en/media/institutes/digital-bauhaus-lab Digital Bauhaus Lab Website]&lt;br /&gt;
* [[GMU:Nutzungsordnung_IPP|Nutzungsordnung]]&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Performance_Platform/Balance&amp;diff=84410</id>
		<title>GMU:Performance Platform/Balance</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Performance_Platform/Balance&amp;diff=84410"/>
		<updated>2016-06-28T09:03:59Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: Created page with &amp;quot;== Name == Yuxin Tan Junyuan Wu  == Slot == 7,8,10,11,12   == Title ==  Balance  Notes:  -  Connect Unity and Caputry -  Control the models and scene in Unity by Captury&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Name ==&lt;br /&gt;
Yuxin Tan&lt;br /&gt;
Junyuan Wu&lt;br /&gt;
&lt;br /&gt;
== Slot ==&lt;br /&gt;
7,8,10,11,12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Title ==&lt;br /&gt;
&lt;br /&gt;
Balance&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
-  Connect Unity and Caputry&lt;br /&gt;
-  Control the models and scene in Unity by Captury&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Digital_Puppetry_Lab&amp;diff=84330</id>
		<title>GMU:Digital Puppetry Lab</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Digital_Puppetry_Lab&amp;diff=84330"/>
		<updated>2016-06-22T22:06:47Z</updated>

		<summary type="html">&lt;p&gt;Hito3218: /* Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Digital-puppetry.png|thumb|left|200px|&#039;&#039;Chinese Shadows&#039;&#039; by Ferdinand du Puigaudeau]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Digital Puppetry Lab&#039;&#039;&#039; — Introduction to the &#039;&#039;Interactive Performance Platform&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[:Category:Werkmodul|Werkmodul]]/[[:Category:Fachmodul|Fachmodul]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Lecturer:&#039;&#039; [[Martin Schneider]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Credits:&#039;&#039; 6 [[ECTS]], 4 [[SWS]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Date:&#039;&#039; Tuesday 19:00 - 20:30 (weekly) + Wednesday 17:00 - 20:30 (biweekly) &amp;lt;br&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&#039;&#039;&#039;Blockmodul (15. - 17. April)&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Venue:&#039;&#039; [[Performance Platform]], Digital Bauhaus Lab&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;First meeting:&#039;&#039;&#039; TUESDAY, 12. April, 19:00h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is a hands on course that is required for project modules by GMU and EXPTV.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutoriums ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Note: this plan may be subject to changes.&lt;br /&gt;
  Please follow the mailing list for updates.&lt;br /&gt;
&lt;br /&gt;
The tutoriums are split into two groups.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;They take place on Tuesday at 19:00 and every other Wednesday at 17:00.&#039;&#039;&#039;&lt;br /&gt;
=== April ===&lt;br /&gt;
* 19. April, Tue, 19:00 (Su, Max): Learning Blender&lt;br /&gt;
* 20. April, Wed, 17:00(Su, Max): Learning Blender&lt;br /&gt;
* 26. April, Tue, 19:00(Luca, Ben): Learning Blender&lt;br /&gt;
&lt;br /&gt;
=== May ===&lt;br /&gt;
* 03. May, Tue, 19:00 (Luca, Su): Learn how to get a simple Blender model into Unity &lt;br /&gt;
* 04. May, Wed, 17:00 (Martin, Luca, Su): Learn how to use OSC to connect Iannix and Unity&lt;br /&gt;
* 10. May, Tue, 19:00 (Martin, Luca, Ben): Introduction to MAX MSP + Connecting Iannix to MAX MSP&lt;br /&gt;
* 17. May, Tue, 19:00 &lt;br /&gt;
* 18. May, Wed, 17:00 &lt;br /&gt;
* 24. May, Tue, 19:00 &lt;br /&gt;
* 31. May, Tue, 19:00 &lt;br /&gt;
&lt;br /&gt;
=== June ===&lt;br /&gt;
* 01. June, Wed, 17:00 Q+A (Luca / Ben)&lt;br /&gt;
* 07. June, Tue, 19:00 Q+A (Luca / Ben)&lt;br /&gt;
* 14. June, Tue, 19:00 Q+A (Luca / Ben)&lt;br /&gt;
* 15. June, Wed, 17:00 Q+A (Luca / Ben)&lt;br /&gt;
* 21. June, Tue, 19:00 Q+A (Luca / Ben)&lt;br /&gt;
* 28. June, Tue, 19:00 Q+A (Luca / Ben) &lt;br /&gt;
* 29. June, Wed, 17:00 Q+A (Luca / Ben)&lt;br /&gt;
&lt;br /&gt;
=== July ===&lt;br /&gt;
* 05. July, Tue, 19:00 Q+A (Luca / Ben)&lt;br /&gt;
* 12. July, Tue, 19:00 Q+A (Luca / Ben)&lt;br /&gt;
* 13. July, Wed, 17:00 Q+A (Luca / Ben)&lt;br /&gt;
&lt;br /&gt;
== Weekend Workshop ==&lt;br /&gt;
&lt;br /&gt;
=== Be Prepared ===&lt;br /&gt;
&lt;br /&gt;
Please make sure to install the software on your laptops at home. &amp;lt;br&amp;gt;&lt;br /&gt;
We will start using it right away and have no time for installation during the course.&lt;br /&gt;
&lt;br /&gt;
* [https://www.blender.org/download/ Blender]&lt;br /&gt;
* [https://unity3d.com/get-unity/download?ref=personal Unity]&lt;br /&gt;
* [http://www.iannix.org/en/download-iannix/ Iannix]&lt;br /&gt;
* [https://processing.org/download/?processing Processing] (Version 3.0.2)&lt;br /&gt;
* [https://puredata.info/downloads/pd-extended/releases/0.43.4 Pure Data Extended] (0.43.4)&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | FRIDAY&lt;br /&gt;
|-&lt;br /&gt;
!11:00 - 11:45&lt;br /&gt;
|Intro to the Wiki&lt;br /&gt;
|Martin&lt;br /&gt;
|-&lt;br /&gt;
!11:45 - 12:30&lt;br /&gt;
| Intro to OSC, Iannix and Processing&lt;br /&gt;
| Martin&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot;| &#039;&#039;Lunch Break&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!13:30 - 14:15&lt;br /&gt;
| Intro to MAX-MSP + Puredata&lt;br /&gt;
| Martin, Benjamin&lt;br /&gt;
|-&lt;br /&gt;
!14:15 - 15:00&lt;br /&gt;
| Intro to Blender + Unity&lt;br /&gt;
| Luca, Miga&lt;br /&gt;
|-&lt;br /&gt;
!15:15 - 16:00&lt;br /&gt;
| Intro to Unity I&lt;br /&gt;
| Luca&lt;br /&gt;
|-&lt;br /&gt;
!16:00 - 16:45&lt;br /&gt;
| Intro to Unity II&lt;br /&gt;
| Luca&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | SATURDAY&lt;br /&gt;
|-&lt;br /&gt;
! 10:00 - 12:30 &lt;br /&gt;
| Hands-On Blender&lt;br /&gt;
| Su Li, Benjamin &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot;| &#039;&#039;Lunch Break&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! 13:30 - 16:00&lt;br /&gt;
| Hands-On Blender&lt;br /&gt;
| Su Li, Benjamin&lt;br /&gt;
|-&lt;br /&gt;
! 16:00 - 18:30&lt;br /&gt;
| Hands-On Blender&lt;br /&gt;
| Su Li, Benjamin&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | SUNDAY&lt;br /&gt;
|-&lt;br /&gt;
!10:00 - 12:30 &lt;br /&gt;
| Hands-On Blender&lt;br /&gt;
| Su Li, Max&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot;| &#039;&#039;Lunch Break&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!13:30 - 16:00&lt;br /&gt;
| Hands-On Blender&lt;br /&gt;
| Su Li, Max&lt;br /&gt;
|- &lt;br /&gt;
!16:00 - 16:45&lt;br /&gt;
| Demo in the DBL&lt;br /&gt;
| Martin, Luca&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
Das Modul vermittelt die nötigen Grundkenntinisse um interaktive Performances mit Hilfe der Performance-Plattform des Digital Bauhaus Labs zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Nach einem einführende Blockmodul (15. - 17. April)  geht es im Rahmen der wöchentlichen Veranstaltung um den praktischen Umgang mit den entsprechenden Software-Werkzeugen und Programmier-Umgebungen.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Moduls sollen die Studierenden in der Lage sein, eigene Setups zu erstellen, die aus menschliche Bewegung, Interaktion, und Tanz immersive visuelle und akkustische Umgebungen erzeugen.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This course will teach you basic skills required to create interactive performances, using the Peformance Platform of the Digital Bauhaus Lab.&lt;br /&gt;
&lt;br /&gt;
By the end of the course you will be able to create your own immersive setup for generating live audio and visuals from human motion, interaction and dance.&lt;br /&gt;
&lt;br /&gt;
== Language ==&lt;br /&gt;
&lt;br /&gt;
The course is in English, because not all participants are speaking German.&lt;br /&gt;
&lt;br /&gt;
== Eligible Participants ==&lt;br /&gt;
&lt;br /&gt;
Undergraduates and graduates enrolled in the faculties of:&lt;br /&gt;
&lt;br /&gt;
* Media Art + Design &lt;br /&gt;
* Media Architecture&lt;br /&gt;
* Visual Communication&lt;br /&gt;
* Product Design&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
* [[/Jasmine|Jing Zhao]]&lt;br /&gt;
* [[/Jack|Jixiang JIANG]]&lt;br /&gt;
* [[/Martin Schneider|Martin Schneider]]&lt;br /&gt;
* [[/Fiona Mortimer|Fiona M]]&lt;br /&gt;
* [[//Emilio Aguas|&#039;&#039;Emilio Aguas&#039;&#039;]]&lt;br /&gt;
* [[/Jessica Hüttig|Jessica Hüttig]]&lt;br /&gt;
* [[/Kan Feng|Kan Feng]]&lt;br /&gt;
* [[/Priyanka Srinivasagopalan|Priyanka Srinivasagopalan]]&lt;br /&gt;
* [[/Tim Vischer|Tim Vischer]]&lt;br /&gt;
* [[/Rachel Smith|Rachel Smith]]&lt;br /&gt;
* [[/Taissa Fromme|Taissa Fromme]]&lt;br /&gt;
*[[/FANXZ|Xiangzhen Fan]]&lt;br /&gt;
* [[/Minsoo Hwang|Minsoo Hwang]]&lt;br /&gt;
* [[/Di Yang|Di Yang]]&lt;br /&gt;
* [[/elenaliv|Elena Liv Felderer]]&lt;br /&gt;
* [[/Kei Kitamura|Kei Kitamura]]&lt;br /&gt;
*[[/Qianqian Li|Qianqian Li]]&lt;br /&gt;
* [[/Yun Liu|Yun Liu]]&lt;br /&gt;
* [[/Logic|Ji Luo]]&lt;br /&gt;
* [[/Florian Froger|Florian Froger]]&lt;br /&gt;
* [[/Anna Hack|Anna Hack]]&lt;br /&gt;
* [[/Shubhra Bhatt | Shubhra Bhatt]]&lt;br /&gt;
* [[/Jane doe|Jane doe]]&lt;br /&gt;
* [[/Jonas Jülch|Jonas Jülch]]&lt;br /&gt;
* [[/Seb|Sebastian Richter]]&lt;br /&gt;
* [[/Rama Bielewski|Rama Bielewski]]&lt;br /&gt;
* [[/Edu_Oliveira| Eduardo Oliviera]]&lt;br /&gt;
* [[/Shih Li Chao|Shih Li C]]&lt;br /&gt;
* [[/Shuyan|Shuyan Chen]]&lt;br /&gt;
* [[/Junyuan WU|Junyuan WU]]&lt;br /&gt;
* [[/Christopher Dake-Outhet|Christopher Dake-Outhet]]&lt;br /&gt;
* [[/Leif Weitzel|Leif Weitzel]]&lt;br /&gt;
* [[/Alicia Kremser|Alicia Kremser]]&lt;br /&gt;
* [[/Amy Jean Barnett|Amy Jean Barnett]]&lt;br /&gt;
* [[/Yuxin Tan|Yuxin Tan]]&lt;br /&gt;
&lt;br /&gt;
== OSC Projects ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraftlab/digital-puppetry-lab OSC-Example Code]&lt;br /&gt;
&lt;br /&gt;
[[File:OSC_THE_CAPTURY.zip]]&lt;br /&gt;
&lt;br /&gt;
Add your projects here:&lt;br /&gt;
&lt;br /&gt;
* [[/Group Ben &amp;amp; Luca|Ben &amp;amp; Luca]]&lt;br /&gt;
* [[/Group A Midsummer Night&#039;s Dream|Yun &amp;amp; Qianqian &amp;amp; Xiangzhen &amp;amp; Junyuan &amp;amp; Yuxin]]&lt;br /&gt;
* [[/Group Play with rhythms |Di Yang &amp;amp; Jixiang Jiang &amp;amp; Kan Feng &amp;amp; Shuyan Chen]]&lt;br /&gt;
* [[/Group Shih Li &amp;amp; Sebastian &amp;amp; Adam &amp;amp; Jessica|Shih Li &amp;amp; Sebastian &amp;amp; Adam &amp;amp; Jessica]]&lt;br /&gt;
* [[/Group B0XJUMP |Alicia/Tim/Elena/Chris]]&lt;br /&gt;
* [[/Group KittenRemote |Amy/Jonas/Florian]]&lt;br /&gt;
*[[/Group Swarm|Emilio Aguas/ Fiona Mortimer/ Eduardo Oliveira ]] – Hornet swarm&lt;br /&gt;
* [[/Group Leif/Rachel/Kei |Leif/Rachel/Kei]]&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
* [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Networking/Controlling_Unity_with_IanniX Controlling Unity with Iannix] (Martin Schneider)&lt;br /&gt;
  Please add your tutorials below.&lt;br /&gt;
&#039;&#039;All tutorials developed at the GMU can be found [[GMU:Tutorials|here]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.dropbox.com/sh/czkyhsz57fokqdm/AADDMv23wN4Zs0GVXSn69Z-ja?dl=0|OSC Example in Max/Msp]&lt;br /&gt;
* [https://www.dropbox.com/sh/9j3qc700t2bdq91/AAAtS1FXUKTBXiALVxm5KlfTa?dl=0 Smooth Out  Jittery Data] in Max/Msp (e.g. for TouchOSC Input)&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PL12DC9A161D8DC5DC Pure Data Video Tutorial] on Youtube&lt;br /&gt;
&lt;br /&gt;
*[https://www.dropbox.com/sh/lew8lel0q81tm0g/AACmkCgCxScvCELVEL1yOx0Ha?dl=0 | 3D Motion Simulator and Receiver]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[https://www.zhdk.ch/index.php?id=icst_ambisonicsexternals | Ambisonics External for Max &amp;amp; Pd]&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
Applications from students that have signed up for the project modules at GMU or EXPTV, will be favoured, because this course is a requirement for those modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To:&#039;&#039;&#039; [[User:ms|Martin Schneider]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Subject:&#039;&#039;&#039; Digital Puppetry Lab /// Application&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Content:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* Name, Surname&lt;br /&gt;
* program and semester (Studienprogramm und Fachsemester)&lt;br /&gt;
* matriculation number (Matrikelnummer)&lt;br /&gt;
* Valid email address @uni-weimar.de &lt;br /&gt;
* Your project module&lt;br /&gt;
&lt;br /&gt;
== Syllabus ==&lt;br /&gt;
* First Meeting 12. April (Tuesday)&lt;br /&gt;
* Block-Weekend 15. - 17. April&lt;br /&gt;
&lt;br /&gt;
The syallbus includes:&lt;br /&gt;
* Introduction to the Tracking System&lt;br /&gt;
* Basics of Networking with OSC&lt;br /&gt;
* Basics of 3D-Modelling and Rigging&lt;br /&gt;
* Programming Interactive 3D Graphics&lt;br /&gt;
* Programming interactive Sound in Space&lt;br /&gt;
&lt;br /&gt;
== Evaluation ==&lt;br /&gt;
* 20% Presence and active participation&lt;br /&gt;
* 50% Creation of an interactive setup (documented in the form of a tutorial)&lt;br /&gt;
* 30% Documentation on the wiki&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
&#039;&#039;to be done&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[www.thecaptury.com|The Captury]]&lt;br /&gt;
* [[www.blender.org|Blender]] (3D Modelling)&lt;br /&gt;
* [[www.unity3d.com|Unity]] (3D Game Engine)&lt;br /&gt;
* [[www.iannix.org|Iannix]] (Visual Synthesizer for OSC)&lt;br /&gt;
* [[www.sojamo.de/libraries/oscP5/|OSC for Processing]]&lt;br /&gt;
* [[trippylighting.com/teensy-arduino-ect/touchosc-and-arduino-oscuino|TouchOSC + OSCuino]]&lt;br /&gt;
* [[Pure Data]]&lt;br /&gt;
* [[Max MSP]]&lt;br /&gt;
&lt;br /&gt;
[[Category:SS16]]&lt;br /&gt;
[[Category:Werkmodul]]&lt;br /&gt;
[[Category:Fachmodul]]&lt;br /&gt;
[[Category:Martin Schneider]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tracking]]&lt;br /&gt;
[[Category:OSC]]&lt;br /&gt;
[[Category:Blender]]&lt;br /&gt;
[[Category:Dataflow]]&lt;/div&gt;</summary>
		<author><name>Hito3218</name></author>
	</entry>
</feed>