How to orient a 3D model (like a aircraft) on a path?

Hello,
Sorry if an answer has already been made to this problem but I have been looking for two days in many forums and tutorials without finding a solution.

How to automatically orient a 3D model (like a aircraft) on a path along the X axis (or Y or Z)?
(without wasting time manipulating the rotation parameters)

I know how to do it for a plane layer (Alignment -> Among motion path -> X or Y or Z) but it does not work for 3D models (nor for texts)
I tried parenting with a "point layer" and it does not work either, the 3D model is always oriented uncontrollably

Thanks,
Gérard.

Comments

  • Triem23Triem23 Moderator

    What are your system specs? CPU, GPU, OS RAM and storage? Are your GPU drivers current? 

    3D models (and text)  should align along a motion path just like a plane layer. I do it all the time. 

  • Here is my system specs :
    Operating System
                Windows 10 Famille 64-bit
            CPU
                Intel Core i7 3770K @ 3.50GHz    35 °C
                Ivy Bridge 22nm Technology
            RAM
                16,0 Go Dual-Channel DDR3 @ 938MHz (11-11-11-30)
            Motherboard
                ASUSTeK COMPUTER INC. P8Z77-V PRO (LGA1155)    29 °C
            Graphics
                SyncMaster (1680x1050@60Hz)
                1023MB NVIDIA GeForce GT 440 (ASUStek Computer Inc)    40 °C
            Storage
                298GB Hitachi HDT725032VLA360 (SATA)    33 °C
                298GB Hitachi HDT725032VLA360 (SATA)    34 °C
                465GB Seagate ST3500830AS (SATA)    32 °C
                465GB Seagate ST500DM002-1BD142 (SATA)    30 °C

  •  When I open the "layer properties" panel of a 3D model I do not have the "Alignment" option at all.
    And in the "point layer" the "alignment" option does not offer the possibility "Among motion path -> X or Y or Z"

  • Triem23Triem23 Moderator

    Are your GOU drivers current? Your system is generations old. You may be running obsolete drivers and that can cause a lot of issues. 

  • edited May 29

    Ok, my system is not new but it is powerful enough to work (except the graphics card for advanced functions such as transparency, blur etc ...)
    Anyway the fields "Alignment" does not appear at all in "layer properties" for the 3D models, whereas it appears well for the "plane layers"
    The problem is the same on my editing station and on my laptop.

    3D model layer properties

  •  I just updated the drivers of my graphics card for the latest version, but that does not change anything.

  • @CyberZorg ; @Triem23

    Reading this post made me realize that I didn't even know about the aligning on a path. Super useful!

    However, I am having the same issue. Only the plane layers have the option to align along the motion path. Points and 3D models do not as described above...

  • Triem23Triem23 Moderator

    @CyberZorg @ZachAlan_Productions

    I finally got a chance to check this myself.

    On my i76700 and Nvidia 980m with current drivers, I'm also encountering an issue where 3D models aren't having an alignment property. 2D points don't have an align property but 3D points do. Text Layers don't.

    I'm going to do a rare tag of @Ady on this one. Ady, sorry man, I've uninstalled all my pre-v8 Hitfilms at the moment as I prepare to wipe my system and go back to a clean, ground-up installation. I can't check earlier versions, but think 3D Text layers and Models could directly align? I'm getting alignment options on points, so I could parent, but Zorg and Zach say they're not getting Alignment Option on points.

    Last sanity check for Zorg and Zach - you guys checked 3D points, right? I don't think 2D points have alignment options. If Ady (or another STAFF member  - Moderators are user volunteers, not staff) doesn't have an easy answer, or can confirm this is a bug, then your next step is to contact support.

    I'll want to see how this resolves, myself.

    Zach, once you get alignment working with  models you'll find it amazingly useful. Let's say you're animating a plane. You could move the plane through some curves and dives without worrying about direction and facing. Then duplicate the motion path, and move it forward in time about three frames and set the model's point to align to the time shift duplicate. Suddenly your plane is facing where it's going to be in three frames... The way it's going to go. After that all you have to hand animate is z-rotation for banking! So easy!

  • Just chiming in ...I did a little checking....3D points in Pro 4 have Towards Target Position and Towards Layer. - 2D does not have alignment. 3D layers have Along Motion Path, Towards Target Position and Towards Layer. 3D models on 2D planes, 3D or unrolled have no alignment options.

    Now if you turn the model into its own comp and leave it 2D there is Along Motion Path...but flat image

    I'll have to delve into this further.......


  • Animate a 3D point moving the way you want (Position keyframes only).  I'll call this the Movement Point.  

    On the first frame of the comp, duplicate the Movement Point, then delete all Position keyframes.  It should be sitting exactly where Movement Point starts.  Rename this point Follow Point.

    Add the Follow behavior to this point, setting Movement Point as the target, and attraction between 90% and 95% (experiment with this number).

    Set this point's Alignment to "Towards Layer," with Movement Point as the target.

    What you now have is a point that follows and aims at another point, but just a little bit behind it.  In essence, it's targeting its future position, so it always orients in the direction it's moving.

    Set your model to transform via the Follow Point, and now your model will always aim where it moves.  Update the Movement Point as needed, and everything else literally follows along.

     

  • Triem23Triem23 Moderator

    @jsbarrett smart. Behaviors aren't something I'm instinctively reaching for yet. Your suggestion is a more refined version of my suggestion using new tools. It's also a bit simpler and more flexible. 

  • @Triem23 You know what's weird? I hadn't read your suggestion (was only skimming the thread because up until now I've never done anything with 3D models in HitFilm), and almost posted the exact same solution after giving it some thought last night.  However, right before I posted the comment, I remembered the dogfight setup that @FilmSensei did a while back, and wondered if behaviors would work, so I tested it with a simple model I exported from Maya.

  • @Triem23 @jsbarrett

    Funny you should be talking about this. I watched the BTS video "The Making of TANK" by Red Giant. At one point, Stu Maschwitz talks about creating a "pull toy rig" for a Mini-Cooper model and I immediately started thinking about making my own using the Behavior Effects in Pro. Here is the spot in the video (1:38-2:28)...

    https://youtu.be/WRkYP7wnD40?t=1m38s

    Thoughts on how it could be done easier?

  • Triem23Triem23 Moderator

    @FilmSensei not yet. Haven't had time to test, but was thinking about it. 

    Behaviors are awesome and for what they do I think they're easier than Expressions, but I can't (yet?) figure out how to have the wing flaps move as the ship banks. I think that needs a way to measure delta-position on an axis and remap that to a rotation axis on the flaps. Along with a delta-position remap on overall roll and tilt.

    Plane text: moving a point to drag the entire ship is easy, but how do we use behaviors to turn a "move right" on the control point to translate into "rotate Z" based off amount of movement... 

  • @Triem23 Rough idea for basic ship banking: create an up vector rig.  It'll take a few layers of points to make it work, but essentially you put a point somewhere above the ship, and rig it so that the ship's top always aims toward that point.  As the ship moves right, it rotates to keep its top aiming to the left toward that point, creating the banking behavior.  This could all be done with basic layer targeting, no behaviors needed.

  • Triem23Triem23 Moderator
    edited June 2

    @jsbarrett wins the forum for the day. 

    Although behaviors can reduce number of points. I can see a "move with" on the Z-axis used to keep the point aligned with forward motion and a follow on X so, eventually the align point "catches up" to dampen the bank... So Sensei could bank his car test with only one extra point. Flaps would be a little trickier, but totally doable.

    There you go, @FilmSensei

    Justin you inadvertently lend credence to my general argument of expressions being over-rated. ;) 

  • Tested a bank rig, and it works quite well. However, if I try to layer a bank rig on top of a steering rig, only the bank rig affects the rotation.  The steering stops completely.  It's like the alignment of a given layer overrides any rotation created by the alignment of child layers.  I would have assumed that all of the alignments would blend together to create the final rotation, but that doesn't appear to be the case. Might this be a bug?

     

  • Triem23Triem23 Moderator

    @jsbarrett not certain. 

    Individual layer rotation (not orientation) is treated as an offset of an align... 

    It's possible an alignment is fed directly to the orientation of the property of the layer, but it's feeding absolute coordinates, not relative. In this case the last align would override prior rotation in the chain? That wouldn't be a "bug" but a limitation in a properly functioning system. 

    Worth an ask. Wanna tag a dev now or play a bit more? 

  • Further testing shows that my initial bank rig is not working as flawlessly as I thought.  I was testing with a plane and not a 3D model, but it was still parented to a driving point like a model would be, with that driving point having the up vector alignment set on it to target another point above it.  I just noticed that said driving point is flipping 180 degrees depending on which direction the bank goes, causing my plane to flip directions as it moves.  My hunch is that the alignment code is set to use the Y axis as the up vector, so trying to align one point to another one directly above it puts the aligning (Z) axis on top of the up (Y) axis, causing some conflict in solving the alignment.  I might mess with this more later, but I've got to move on to other things for now.

  • @Triem23 Yeah, I'd like to hear a dev's thoughts on this.  I might play more later, but that will be mostly to figure out the up vector situation.

  • @jsbarrett What if you have the Position Point follow and align to the Lead Point (Steering Rig) but align the Model itself to the Banking Point (which is parented to the Lead Point) while still be parented to the Position Point?

    Okay, that sounded overly complicated... How about this?

    1. Set up the Steering Rig with a Lead Point and a Position Point. The Position Point is Following the Lead Point and also is aligned toward it.

    2. Create a Banking Point above the Position Point and Parent it to the Lead Point. As the Lead Point moves side to side, the Banking Point will also.

    2. Parent the Model to the Position Point, but align the Model itself to the Banking Point. Being parented to the Position Point will make it steer, but being aligned to the Banking Point will make it bank. Since the Lead point is out in front of everything, the bank will happen as the steering turn happens but will precede the actual turn.

    If you want it to bank more, you could lower the Bank Point so the Model's alignment has a greater effect.

  • @FilmSensei could you please do a tutorial on this rig you are describing? I can't quite make it work by following theses forum posts. :)

Sign in to comment

Leave a Comment