GMU:Human and Nonhuman Performances II SS16/Yuxin Tan: Difference between revisions

From Medien Wiki
No edit summary
No edit summary
Line 1: Line 1:
'''== Idea introduction =='''
'''== Idea introduction =='''<br>
'''meanings of balance''' <br>
'''meanings of balance''' <br>
- balance of life<br>
- balance of life<br>
Line 8: Line 8:
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. <br>
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. <br>


'''Put the concept of balance in our game'''
'''Put the concept of balance in our game'''<br>
- the basic scene<br>
- the basic scene<br>
- the object in the scene<br>
- the object in the scene<br>
Line 14: Line 14:




'''== Working flow =='''
'''== Working flow =='''<br>
- Motion capture system get users’ movement data<br>
- Motion capture system get users’ movement data<br>
- The model of players and scene were built in blender<br>
- The model of players and scene were built in blender<br>
- Unity <br>
- Unity <br>
[[Image:software.png|software]]
[[Image:software.png|software]]<br>


'''Visual theme'''
'''Visual theme'''
Line 25: Line 25:
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.<br>
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.<br>
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. <br>
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. <br>
[[Image:visual_2.png|visual]]
[[Image:visual_2.png|visual]]<br>
[[Image:visual_3.png|visual]]
[[Image:visual_3.png|visual]]<br>
But after we put these style in game we found we can't control the movement of texture, it didn'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<br>
But after we put these style in game we found we can't control the movement of texture, it didn'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<br>
[[Image:visual_4.png|visual]]
[[Image:visual_4.png|visual]]<br>


'''Coding part'''
'''Coding part'''<br>
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. <br>
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. <br>


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.<br>
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.<br>
[[Image:unity_1.png|unity]]
[[Image:unity_1.png|unity]]<br>


'''1.Connecting Unity and theCaputry.''' <br>
'''1.Connecting Unity and theCaputry.''' <br>
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.
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.<br>
[[Image:unity_2.png|unity]]
[[Image:unity_2.png|unity]]<br>
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.<br>
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.<br>
[[Image:unity_3.png|unity]]
[[Image:unity_3.png|unity]]<br>
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.<br>
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.<br>
[[''"/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0"'']]<br>
[[''"/subscribe/name of the model/blender/Root/vector 50.0 0.0 20.0"'']]<br>
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.<br>
Then the position of xyz axis is obtained and stored in a variable and transfer to a game object.<br>
<source lang="c#">
<source lang="c#">