View Single Post
  #1  
Old 05-30-2014, 01:01 PM
shivanangel shivanangel is offline
Member
 
Join Date: Feb 2006
Location: New Jersey
Posts: 182
Question Complex Hierarchical Structures

Hi,

I'm creating a series of canned animations in Vizard using your vizacts class to control mechanical equipment.

I'm getting a bit confused when it comes to what is shown me in the vizard inspector vs. what I am actually altering in my vizard code.

For instance, take the image attached ( yes I am using Vizard 5 but I assume nothign changes with how scene graphs hierarchies function I felt it more pertinent to throw this in Vizard 4's forum).

I have watched your video tutorial, however it does not cover hierarchies with more than 1 parented object, which is what I am dealing with.

I have a blue box with a door, latch and handle, each parented (linked) in Max with their pivots placed where I want their rotations to be performed. And I have reset the xForm many times.

When I view this in the inspector, I can see the transform node labeled 'BlueMLabOven_LabHandle' and when I select the transform I am able to pivot about the expected location and the child comes along for the ride as I'd expect.

Same thing with the door labeled 'BlueMLabOven_Door', when I rotate about the transform in the inspector all the child components come along and the pivot is about the correct location.

When I move into Vizard... things don't act as friendly as in the inspector.
I load my model and extract the child objects I want to modify:

Code:
self.oven = vizfx.addChild('BlueMLabOven.OSGB')
self.door = self.oven.getChild('BlueMLabOven_Door')
self.latch = self.oven.getChild('BlueMLabOven_DoorHandle')
I define a series of sequences ... but here is the issue.
I don't want to rotate the geode, since the hierarchy doesn't work if I do that.
I want to rotate using the transform so that all the child objects come along for the ride.

How do I do this in Vizard? So far all of my transforms seem to only rotate around the parent system when I set up the following:

Code:
open_door = vizact.spinTo( euler = [ door_angle, 0, 0], time = rotate_door_time, interpolate = vizact.easeInOutCubic ,mode = viz.ABS_LOCAL )
close_door = vizact.spinTo( euler = [ -door_angle, 0, 0], time = rotate_door_time, interpolate = vizact.easeInOutCubic ,mode = viz.ABS_LOCAL )
		
open_latch = vizact.spinTo( euler = [latch_angle, 0,  0], time = unlatch_time, interpolate = vizact.easeInOut, mode = viz.ABS_LOCAL )
close_latch = vizact.spinTo( euler = [-latch_angle, 0, 0], time = unlatch_time, interpolate = vizact.easeInOut, mode = viz.ABS_LOCAL )
Thank you,
George
Attached Thumbnails
Click image for larger version

Name:	InspectorHelp.png
Views:	1317
Size:	153.8 KB
ID:	642  
Reply With Quote