Week – Bodies in Motion – Data Cleaning and Retargeting

 

Data Cleaning

For this week’s lab, we motion captured our one of our colleague’s movement and tried to clean the data.

  1. Calibration
  2. Put on the suit (with 41 makers)
  3. Get the skeleton in Motive and record a short clip of movements.
  4. Clean the data in Motive
  • If there are unlabelled markers, try to deal with those first. In our case we had a pretty clean data set — we were lucky to have all markers labelled and our major problem was to fill all the missing parts in the data set.
  • When dealing with the gaps, highlight the gap and goto the (xyz axis view), depending on the graph, choose particular (linear, cube or pattern. etc) to fill the gaps.
  • exporting the file as .fbx (*****settings : we did it wrong so we were not able to use our animation at the end)

Retargeting

I used Fuse to build my model:

I saved the whole file in a folder with the .obj file and all the textures.

I then import the .obj file into Maya

(Note: In order to see the 3d model, maker sure that the workspace is checked as “animation”)

Then, to get the skeleton of my model, I switched to “rigging” mode and used Auto Rig to get the skeleton

And because the model made in fuse has different meshes for different body parts, go to “modeling” tool and combine all the meshes into one mesh (modeling –> mesh –> combine)

After I got the skeleton, I saved it and exported it into motion builder.

After selecting all branches, right click –>zero –> rotation. Drag character onto the hips and characterize the mesh. Rename this character into “Avatar” (or whatever you like)

Drag the recorded animation (.fbx) in and merge scenes together. Select all branches –> right click –> zero –> rotation. Characterize this one as well. Rename is as “Data”.

Then retarget the avatar character to the data character (remember to also select active)

Then create a skeleton plot, after that  we can delete the data character and same this file.

Then we can import this file into Unreal. First time all meshes, second time just the animation.

(Question: if using Fuse, how to put back all the body textures?)

Week 2 – Bodies in Motion – Body Tracking

 

Body Tracking (From Motive to Unreal)

For this week, our team did full body tracking of two of our teammates and we stream the data into Unreal.

We first calibrated the room as we did last week.

Then, two members (Eva and Yiyao) put on the suits and we put 41 markers on each of them. Remember to scan one person at one time.

On the computer

Motive

Unreal

Unreal Scene

For my unreal part, I want to build a pinky, dreamy, fantasy-like wonderland where there are sky, clouds, random soft fluffy balls, jelly-i sh objects. The main characters in my scene would be bears.

I just played a bit around Unreal. I played around with different objects and textures. Tried to get some high resolution screenshots.

Bodies in Motion – Week 1 – Calibration

For the first week, we learned how to calibration the cameras and send recorded rigid body movements to unreal to allow things to move in the unreal engine.

Softwares:

Motive (http://optitrack.com/software/) and Unreal

To finish the calibration process:

  1. Open the Motive software. There are 16 cameras that need to be calibrated. If there are red dots in the monitors, make sure to mask them out. (Do not wear clothes that are reflective)
  2. Start “Wanding” –>each camera needs to get >10k samples–>apply results–> also apply (vertical offset wanding)
  3. After finishing the calibration, use rigid bodies to record movements. (Group three dots on one rigid body together)

Send the moves to Unreal:

  1. Create a new scene in unreal
  2. Find the IP addresses of both computers(one runs motive, one runs unreal) server IP: camera side/client IP: unreal —find IP addresses using terminal.
  3. Create Opti Origin –>set the origin of whole scene
  4. Optitrack connection settings:motive

two ways to send data to unreal:

first:

  1. Create an object
  2. Create an opti-track rigid body

second:

create opti-track rigid body –>add component–>object

put the object under the rigid body as a child (tracking number)

***when the unreal play stimulates the scene from motive needs to play as well