Parented point changing orientation in viewers

edited February 2015 in Express Support

I ran across an issue where I duplicate a plane and a point, and when I change the parent of the plane, it changes orientation. The orientation stays wrong in the viewer, even as you move/rotate parent layers. 

Here are some written instructions to reproduce the problem, along with a video showing it.

Start with a new composite.
Add a point, change to 3D, change name to 'center'.
Add a point, change to 3D, change name to 'Point A, parent to 'Center'
Add a plane, change to 3D, change name to 'Plane A, parent to 'Point A'
Change view to 3, so you can see the top view.
Select 'Point A' and drag it down, towards the camera a little bit.
In 'Center' transformation, change it's Y orientation to 90, 'Point A' and 'Plane A' should spin around 'Center.
Select both 'Point A' and 'Plane A', right click and select Duplicate.
Rename the duplicate 'Point A' to 'Point B' and
rename the duplicate 'Plane A' to 'Plane B'.
Change 'Plane B' to be parented to 'Point B'.
Once you've done that,  you should notice in the viewers that 'Plane B'
changes it Y orientation by 90 degrees.
If you move 'Center' or change it's orientation, both 'Plane A' and 'Plane B'
both move with 'Center', but are 90 degrees off from each other, which they should not be.

If you look at the orientation of 'Plane B', it's all zeros, just like 'Plane A'
So in the viewers it's changed orientation, but not in it's transform values.
If you go to 'Plane B' transform and start to move it's Y orientation, it will
first snap back to 0 in the viewer, matching 'Plane A', which is where it should have been.
The amount that orientation of 'Plane B' is off, will match the orientation
of 'Center'

https://vimeo.com/119725436

Comments

  • Two possible issues. First, you're probably running into a Gimble Lock. This can happen in ANY software using Euler tranformations (not just Hitfilm). Basically, if you have an axis rotated EXACTLY 90 degrees, it can screw up orientation on other axes. (try changing the rotations to 89.9 and see if that fixes it.)

    Second, and this is silly-stupid, but it's caught me a couple of times (for the record, I'm not watching the vid you posted) double check your "Layer Orientation" in the viewer window--this is the tab on the up/right between the number-of-views selection and the channel-display selection. There are three options, "Local, Object, World" which change the relative orientation of how a widget works. "Local" transforms from current orientation of the current view, "Object" from the current orientation of the active object, and "World," of course transforms from absolute X/Y/Z of the 3D workspace. If you get in the wrong orientation mode it can be disorienting.

    I know for a fact HF2 had Gimble lock issues. I'm 99% certain Hf3 does as well.

  • edited February 2015

    @Triem23, the 90 degrees was just easy to see, it happens no matter what the setting is. When it first happened, it was at about 8 and I didn't notice it at first.

    The plane that wrongly changes orientation, changes in all three views, and even stays wrong if you move any of it's parents. You can see both planes in all viewers, and see that they have different orientations, so HF is differently drawing it wrong in the viewers.

    My initial test was done as "LOCAL". Just tried it with viewers set to "WORLD" and it does the same thing.

    Keyframing a parent point's orientation, that plane still has the wrong orientation. Use the preview. It still is wrong. Render to a file - still wrong.

    I saved the project, exited HF, came back into the project, and the plane still has a wrong orientation.

    It's not until you go into the plane with the wrong orientation and start to adjust it's orientation that it will snap back to where it's supposed to be.

     

    Definitely a bug in HF.

  • Hmmmm. Ok. I'm about to go to work, but I'll try to take a look at this myself in detail later. If you're right and it's a bug, it will, of course, require staff. Was hoping it was an easy fix.

  • @Triem23 - so was I :)

    If you know the situations that cause it, you can go through child planes (may happen to other objects - didn't test for that) and tweak the orientation back, but it's a pain, even if you know it happened. For a newbie to HF, this could be very confusing.

  • edited February 2015

    I have been able to reproduce this in a number of different ways, including without using duplicate at all.  Since the problem spans opening/closing the project file, I thought I'd compare some before and after.

    This bug is due to HF changing the orientation to no longer support negative values, however, some of the code still does support it, while some does not.

    After parenting a layer,  adjustments are made to the orientation by HF itself and if these adjustments end up negative, the code does not correct it to make it positive.

    Apparently the code that renders for the viewers and export can handle the negative values, however, the code that lets you control/change values can not, and immediately changes the negative value to a zero, throwing off your orientation.

    Note that in most cases, the orientation didn't really need to be adjusted.

    Here's an orientation in the project file before parenting:

                                <orientation Spatial="1" Type="0">
                                            <Default V="2">
                                                <or X="0" Y="0" Z="0"/>
                                            </Default>
                                            <Static V="2">
                                                <or X="0" Y="330.273" Z="0"/>
                                            </Static>
                                        </orientation>

    Here's the orientation after parenting:


                                        <orientation Spatial="1" Type="0">
                                            <Default V="2">
                                                <or X="0" Y="0" Z="0"/>
                                            </Default>
                                            <Static V="2">
                                                <or X="0" Y="-29.7268" Z="0"/>
                                            </Static>
                                        </orientation>

    Doing the math, they are about the same orientation, except one is negative, which HF3Pro input/controls no longer accepts.

    Viewers, Preview and Export all seem to be able to handle the negative value. It's not until you try to adjust the orientation that the input/control see's the negative value and changes it to zero.

  • edited February 2015

    Here's another, simpler way to reproduce the problem.

    Start a composite.

    Create a text layer that's 400x400. Add some text to it. Change it to 3D.

    In the text layers transform controls, change it's Y orientation to 200 (orientation should now be 0.0, 200.0, 0.0) the text should be backwards and at a slight angle in the viewer.

    Add a point layer. Make it 3D.

    Parent the text layer to the point layer.

    The text layers orientation values should change to 0.0, 0.0, 180.0, but the viewer should not have changed.

    Now barely adjust the X value in the orientation. You're text in the view will flip upside down and no longer be reversed. The viewer, which continued to show an orientation of 0.0,200.0,0.0 has now changed to show 0.0,0.0,180.0.

     

  • Hi Richard,

    Thanks for bringing this to our attention, this is sadly a bug & has now been logged and assigned to a developer. It will hopefully be fixed in a future update.

    I would like to thank you for the time & effort you've put into narrowing down the problem, it's incredibly helpful.

    Thanks,
    Ady

Sign in to comment

Leave a Comment