Profile Picture

Plugin: Move with Unity (iClone and Unity motion sync)

Posted By The-any-Key 7 Years Ago
Rated 5 stars based on 2 votes.
1
2

Author
Message
The-any-Key
The-any-Key
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 356, Visits: 1.9K
Thanks. But I already tested that. And it seem the values returned from the WorldTransform are wrong (filed a bug ticket)
Ex if I have a prop or bone with Euler rotation [90,0,0] (x,y,z) with no parent I should get the quaternion [0.707,0,0,0.707] (x,y,z,w). But I get [0.85,0,0,0.53] aka [116,0,0] (x,y,z)




iClone 7, 3DXchange 7 Pipeline, CC3 Pipeline, CT8 Pipeline, Iray, Live Face, iPhone Xr, Win 10, i9 9900K ~5GHz, Nvidia RTX 2080 8GB, 16GB Ram, M.2 SSD
AllenLee (RL)
AllenLee (RL)
Posted 7 Years Ago
View Quick Profile
Senior Member

Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)Senior Member (343 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 54, Visits: 541
Hi The-any-Key,

You can use the "RINode.WorldTransform()" API to get bone's world quaternions.
This API is already in the latest development version(2/1/2019).

-------------------------------------------------------------------------------------------------------------

You can try this code:

import RLPy
avatar_list = RLPy.RScene.GetAvatars()
avatar = avatar_list[0]
bone_compoment = avatar.GetSkeletonComponent()
skin_bones = bone_compoment.GetSkinBones()
for bone in skin_bones:
    world_transform = bone.WorldTransform()
    world_q = world_transform.R()
    print( world_q.X() )
    print( world_q.Y() )
    print( world_q.Z() )
    print( world_q.W() )


Allen
RobertoColombo
RobertoColombo
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)

Group: Forum Members
Last Active: 5 Years Ago
Posts: 1.6K, Visits: 3.0K
Yeah... i confused you with another member :P
I will call you TAK (The Any Key) ...

Cheers

  Roberto


My PC:
OS: Windows 10 Pro English 64-bit / CPU: Intel i7-9700 3.6GHz / MB: ASUS ROG Strix Z390  RAM: 32GB DDR4 2.6GHz / HD: 2TB+3TB  /  
SSD: 2x512GB Samsung 860 EVO + 1x2TB Samsung
VB: Palit GTX2080 TI GamingPro 11GB / AB: embedded in the MB and VB (audio from the MOTU M4 I/F) / DirectX: 12

RobertoColombo
RobertoColombo
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)

Group: Forum Members
Last Active: 5 Years Ago
Posts: 1.6K, Visits: 3.0K
Yeah... i confused you with another member :P
I will call you TAK (The Any Key) ...

Cheers

  Roberto


My PC:
OS: Windows 10 Pro English 64-bit / CPU: Intel i7-9700 3.6GHz / MB: ASUS ROG Strix Z390  RAM: 32GB DDR4 2.6GHz / HD: 2TB+3TB  /  
SSD: 2x512GB Samsung 860 EVO + 1x2TB Samsung
VB: Palit GTX2080 TI GamingPro 11GB / AB: embedded in the MB and VB (audio from the MOTU M4 I/F) / DirectX: 12

The-any-Key
The-any-Key
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 356, Visits: 1.9K
Jeff? (maybe this is a meme or language thing like Jack?)

I am learning quaternions via internet. A good way to experiment with them is to use Unity as they are heavily integrated.
Never mind the latest question about world space. It seem you can get the world space quaternion by multiply all local quaternions from root to the local object. Ex: root quaternion*hips rotation*spine quaternion...
So no update is needed it seems :-)



iClone 7, 3DXchange 7 Pipeline, CC3 Pipeline, CT8 Pipeline, Iray, Live Face, iPhone Xr, Win 10, i9 9900K ~5GHz, Nvidia RTX 2080 8GB, 16GB Ram, M.2 SSD
RobertoColombo
RobertoColombo
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)Distinguished Member (10.8K reputation)

Group: Forum Members
Last Active: 5 Years Ago
Posts: 1.6K, Visits: 3.0K
Hi Jeff,

I can't help on this because I have no experience on quaternion and Euler angles (even though I suppose soon or later i will have to dig a bit into them...).
Sorry.

  Roberto

My PC:
OS: Windows 10 Pro English 64-bit / CPU: Intel i7-9700 3.6GHz / MB: ASUS ROG Strix Z390  RAM: 32GB DDR4 2.6GHz / HD: 2TB+3TB  /  
SSD: 2x512GB Samsung 860 EVO + 1x2TB Samsung
VB: Palit GTX2080 TI GamingPro 11GB / AB: embedded in the MB and VB (audio from the MOTU M4 I/F) / DirectX: 12

The-any-Key
The-any-Key
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 356, Visits: 1.9K
Was able to figure out the maths. But seem the API only allow to get the local quaternion rotation. The world transform get return wrong values. So I need to wait until they update the API.




iClone 7, 3DXchange 7 Pipeline, CC3 Pipeline, CT8 Pipeline, Iray, Live Face, iPhone Xr, Win 10, i9 9900K ~5GHz, Nvidia RTX 2080 8GB, 16GB Ram, M.2 SSD
The-any-Key
The-any-Key
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 356, Visits: 1.9K
Hmm. Trying to link bones from Unity to iClone. It seem the orientation of the axis is different when export to Unity. So I need a way to translate it. But my math skills is not that good when it comes to matrix and quaternions math. We will see if the people at Unity forum can help.
https://forum.unity.com/threads/calc-local-rotation-with-local-axes-based-on-first-parent-local-rotation.619480/

Do anyone have an idea what I can send instead of the euler or 
quaternions to make the same rotation in Unity as iClone. I can use the world angles. But the problem with tthat is that the world angles is affected by other bones and I would need to "local" world angles.



iClone 7, 3DXchange 7 Pipeline, CC3 Pipeline, CT8 Pipeline, Iray, Live Face, iPhone Xr, Win 10, i9 9900K ~5GHz, Nvidia RTX 2080 8GB, 16GB Ram, M.2 SSD
SeanMac
SeanMac
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)Distinguished Member (5.3K reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 416, Visits: 3.4K
Hi Tak

Thanks for that.

"But the goal is to make it generic so I canadapt it to connect to mostly anything that support sockets. "

Very much approve - proper middleware programming.

More power to your elbow!
SeanMac
The-any-Key
The-any-Key
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)Distinguished Member (2.9K reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 356, Visits: 1.9K
Why I use Unity is because the sample used Unity. I have never used Unity before, so I can't comment on how their manners as humans are (it's a cooperation, what do you expect :-). But it seem Unity have a bunch of plugins that can create interesting animations.
Ex I want to try Puppetmaster and sync it to iClone: https://assetstore.unity.com/packages/tools/physics/puppetmaster-48977

But the goal is to make it generic so I can adapt it to connect to mostly anything that support sockets. 

About joysticks: I actually have a plan to use WiiMote controllers for prop movements. Ex you can duct tape a wiimote to a box or something and move it around. And sync the movement back to iClone. But I have no idea about the quality of the data from the wiimote. So we will see what happens.




iClone 7, 3DXchange 7 Pipeline, CC3 Pipeline, CT8 Pipeline, Iray, Live Face, iPhone Xr, Win 10, i9 9900K ~5GHz, Nvidia RTX 2080 8GB, 16GB Ram, M.2 SSD

1
2



Reading This Topic