Previous 1 2 Next 15 Replies Latest reply: Oct 1, 2012 3:33 PM by Motion Speed
Alex Gollner Level 2 (375 points)

I'm having problems controlling a parameter in a Ramp behavior. I need to link it to a rigged parameter (with another rig setting the link's scale and offset value), but I can't add any parameter behaviors to any parameter of the Ramp behavior. I can add parameter behaviors to the parameters of other behaviors attached to the same object. There is even an existing Ramp behavior with a parameter that has a link parameter behavior attached.


As the Parameter Behavior sub-menu of the context menu for the new Ramp behavior parameter is disabled (unlike the Add to Rig sub-menu ad Publish command), I tried adding a Link behavior to the parent object and choosing from the Apply To Target Parameters pop-up menu, but the Ramp behavior doesn't appear in the menu (unlike other behaviors).



Here's the Ramp behavior with a parameter behavior on the first parameter, but the context menu for the second parameter shows the parameter behavior menu disabled:





I tried trashing the prefs, going to a different computer setting up a Ramp behavior and adding a parameter behavior, but no luck so far.


Any ideas on how to fix this?


My fallback strategy is to use a modified Oscillate behavior instead of Ramp. I can add Link Parameter Behaviors to that...

iMac (27-inch Mid 2011), Mac OS X (10.6.8), Mac since '84
  • fox_m Level 5 (4,845 points)

    Add your Ramp behavior to your object as usual. Set the Ramp for the entire life of the object.


    Replicate the object, set Line, 1 Point. [Or shortcut - use Geometry but leave the drop well empty]


    Add Sequence Replicator.


    For Sequencing, set Custom


    Source: Use Source Animation


    For Traversal: Custom


    Now you can add a parameter behavior to the Location parameter. You will probably have to adjust the position of the replicator (Locattion goes from -100 to 100 -- so about + or - 50% distance OR you can adjust the Ramp Start and End in real time to make fine tune adjustments) and you might have to set the Apply mode of some of the parameter bahaviors (like Randomize) to other than Add.


    I checked in Motion 4, and I wasn't able to add a parameter behavior to the Ramp values there either.



  • Alex Gollner Level 2 (375 points)

    fox_m wrote:


    you can add a parameter behavior to the Location parameter. You will probably have to adjust the position of the replicator (Locattion goes from -100 to 100 -- so about + or - 50% distance OR you can adjust the Ramp Start and End in real time to make fine tune adjustments)


    Thanks for coming up with a solution for location parameters. I'm working with rotation parameters and needed to control the Start Value of the Ramp behavior applied to the Rotation of a layer. It seems that Motion was in some sort of buggy mode when it allowed me to apply the Link parameter behavior shown in the screen shot (the cog applied to Start Value).


    Odd that this doesn't work normally, given that I can apply parameter behaviors to Oscillate behavior parameters. Spin is no good to me because I also need Start and End Offset control.

  • fox_m Level 5 (4,845 points)

    Have you thought about using a Spin behavior and using something else to control the (initial) Rotation value?

  • Alex Gollner Level 2 (375 points)

    That would help in another situation, but the calculation of the inital angle is complex and the layer has to spin from that initial angle to 0 degrees (or vice versa).


    Oscllate with a Sawtooth pattern and the right values for Phase and Speed works the same way as Ramp, with the added advantage of Wave Shape control (without Curviture control on the shape of the ramp/oscillation).


    The Amplitude parameter in Oscillate is the equivalent of the Start or End Value parameters in Ramp depending on how you set the Phase.

  • fox_m Level 5 (4,845 points)

    A Numbers generator (or a chain of them) can be used to create simple "functions" via Link parameters (scale/custom mix for multiply/divide and offset for addition/subtraction.) The Number generator cannot be animated for this purpose (with start/end settings), the Value parameter must be present in order to work. It can get complicated fast and it's definitely not easy to just write about it -- but you can create .like. "central" values that can feed many different parameters across many objects.  A simple example would be using an onscreen control like: A Target or Scrape distortion filter with an angle control. You could link the Angle to a Number value. You could link other objects to the Number value and use individual Scale/Offsets in these links to control differing behaviors across the several objects, say, a row of 5 pointed stars. The first would be a 1:1 relationship with the onscreen control angle; then second could be offset 36 degrees, the third 18 degrees, and so on so that when a user twirled the control, all the different objects could also be made to rotate at different rates and directions (negative scale).


    Numbers generators do not need to be "turned on" in order to work this way, so you can add them to your project and uncheck them in the layers list. However, a caveat to note: onscreen control filters with rotation values usually stop at a minimum of 0 and a maximum of 360. Also, some of the parameter "values" of different objects are surprising. In the inspector, you'll see 0 - 360 degrees, but the value that the Numbers gen sees is radians (so adjust the Custom Mix to 0.573 [0.572958]). Other parameters may show similar variations; just be aware they can show up and that it's "normal" and usually for "precision".


    You can further complicate your life by adding parameter behaviors to the Numbers generator Link parameters Scale and Offset...   So while under OSC control, there could be other animations like oscillating around the user's settings... The possibilities are endless... er... maddening... (I wish apple would just give us a simple function parameter behavior that we could script in mathematical expressions! Or better yet: JavaScript.)


    I've got a generator coming out that has 4 drop zones in each "quadrant" of the frame with adjustable divider lines with onscreen controls. When the user adjusts the divider lines, the drop zones move to the new centers of the quadrants automatically. Under animation, say for example, the top vertical divider animates off the screen, the two top drop zones "stay in focus" so to speak (panning controls are available to counteract that behavior if desired, or set the center of the main point of interest -- but that relationship stays intact), moving in relationship to the divider line animating away with one side eventually taking top center screen without any further manual control by the user. It's all done with "divide down" numbers generators (the DZs to the right of the divider lines were a little difficult to figure out... think it was a "lucky accident" )


    Something to consider. It's cool. A little crazy. And requires more work than the other "toys".

  • Alex Gollner Level 2 (375 points)

    I've just been dealing with a 0.573 (before offseting in degrees)...


    I haven't worked with node-based compositors, but it seems as if Motion's behaviours and rigs might allow for interactions not possible using nodes.


    It's a pity how hard it is to 'read' complex Motion templates. Maybe one day we could add naming templates so that once we set a few values in a behaviour, Motion would suggest a name that is easier to read than 'Link' or 'Ramp'.


    Like you, I've been adding behaviours to odd parameters and rigging all sorts of things. That's why it seems more like a bug than a feature that you cannot add parameter behaviours to the paramters of the Ramp behaviour...

  • Alex Gollner Level 2 (375 points)

    Talking of a 'Divide' behaviour, have you worked out how to create a reciprocal link between a control and a parameter?


    I have an on-screen control that changes the scale of a group. I have some stroked shapes in the group and I'd like to make keep the effective weight of the stroke the same.


    So when the layer is at 100%, the strokes are at 100% of a selected width (set by an OSC), when the layer is at 10%, the strokes need to be set to 1000% to seem the same width. When the layer is 1000% of its normal size, the strokes need to be scaled down to 10% to seem the same.


    So that's Stroke = 1 / Scale.


    How can I create that sort of parameter link?


    If I use a rigged numbers generator (where 100% = 1), I can set the input of 0.1 to produce an output of 10, and an input of 10 to produce an output of 0.1, but as rig transfer functions are linear, an input of 1 doesn't produce an output of 1.


    Any ideas?

  • fox_m Level 5 (4,845 points)

    Getting a true reciprocal is going to be a challenge... and take some more time to figure out.


    [What I used to control the scaling of the group was a Scrape OSC and the Rotation, which maxes out at 628 (radians * 100), so my effective scales in my trial are 0 - 628% -- not quite 1000]


    What I have so far is:


    Number generator for interim outline calc


    Link'd to Scale


    Set Scale to -1

    Value offset to -1000 (or Maximum Scale)


    for the Shape's outline width:

    applied a Link parameter to Outline Width.

    I set the Link Scale to 0.1, 0.2 -- somewhere near this range.  This link parameter is the parameter to control the outline width of the shapes however you want that to be done. Motion's "precision" seems to be 4.5 decimal places, but will not show more than 4. You can type in exact values like 0.00127 (motion will display 0 until you click on the number, then it will show 0.0013 -- but since you can type in 0.00125 and the display will be 0.0012, I believe the 5th digit is still somewhat significant.)


    Anyway, the above example: the outline is 0 at Scale = 1000, but as the scale decreases, the outline increases (it's not a 1:1 increase, but it works visually so that within the range of 0 to ~ 750% it "looks" genuine enough.) Adjusting the parameters according will probably get you what you need up to 1000%.


    I'll keep working on it... It's an interesting problem.

  • Alex Gollner Level 2 (375 points)

    Back to the original problem (not being able to apply a parameter behaviour to a Ramp behaviour parameter)...


    The answer is to rig the paramter you want and then add the parameter behaviour to the rig value!

  • fox_m Level 5 (4,845 points)

    I was going to suggest rigging your parameters, it's actually the easiest way, but I thought you might have some important purpose for the onscreen control as a design point for the template/project... and you can't add parameter behaviors to widget controls. Setting up inverse value behaviors isn't that difficult, but there is always the issue of ranges: going outside the range of values always reduces the other parameter to zero or negative values. Then there is the issue of "scale" -- without knowing the original size of a shape, the scale becomes "imaginary" vs. an outline width, which is the same regardless of shape size but is also scaled with the shape... And, scaling from 100% greater is a completely different than scaling from 100% to 0 (or negative ranges), so it becomes a "pivot" point and without knowing the specific details of your ranges, working around your stated problem was completely dependent on the setup.


    Glad you resolved your issue!

  • Alex Gollner Level 2 (375 points)

    You can add parameter behaviours to widget controls.


    Select the widget, then use the behaviour pop-up menu above the timeline.


    In the case of the Link parameter behaviour, choose 'Object.Widget Name' as the Apply To


    You can then use any object's compatible parameter as the Source Parameter to control the rig.

  • fox_m Level 5 (4,845 points)

    SWEET!!! Thanks for that!  Did not realize that could be done! I'm so used to right clicking a value to add parameter behaviors that it never occured to me to go to the parameters menu.


    Now I have to wonder if I build templates with this method if it's going to break in future upgrades of Motion because if Apple intended this to be possible, why on earth can't you add a parameter behavior by using the right-click context popup? I've been "caught" before when Apple changed the way  OSC filters were applied to the "timeline" in 5.0.2. I had to scramble to fix a lot of effects/etc. when that happened.

  • Motion Speed Level 1 (10 points)

    Hea guys, this is off the track of your situation, but after reading your post, your quit a bit ahead in your learning curve. One question if you will please. Do you have Motion 5 highest build running in good order as a whole, or is she slow for you all as well, and this is using Motion by itself with no inputed footage, everything set the lowest it can go at 60 fps using around 5 emitters, a couple of filters in 3D with three light no motion blur,,,,does she bog,,come on guys, please share a truth,,,can one work in this program at this point with the proper set up, as we have been fighting with it ? ? ?

    Thanks for your time,,,,,,,,,,,PS.: fps drops down to almost a stop with mac pro 2 x 2.8 GHz Quad Core Intel Zeon    snow lepord 10.6.8            in  64 bit kernnel   

    ATI Radeon HD 5870 1 gig vram    14 gig internal     idefraged hard drive with plenty of disc space,,,,,,,,,,,running Motion alone,,,,,,,,,and still bogger baby,,,,,,,,,what up,,,,,,please,,,,thanks,,, most are dealing with this as well as you can see on the discussions, but you are talking as though all is ok and would like to know your take on this,,,,,,,,,,Slow at present program ?,,,,,,,,,,,,,,,,

  • fox_m Level 5 (4,845 points)

    Motion is not designed as a video editor, nor is it expected to run at full frame rates when you load it down with emitters and a lot of extra content with animation. It's a compositing application. It takes considerable work for Motion to create each frame, especially in "real time". Motion does, however, attempt to rasterize as much as it can for playback and if you let the project play several times through, you should notice a framerate improvement (depending of course on the complexities it has to deal with... and hardware.)


    Some things you can do to help speed things up: turn off the preview icons in the layers list [View > Layers Column > Preview].  Go to the Group(s) containing emitters and set Fixed Resolution (this will keep Motion from rendering particals past the boundaries of the canvas [sometimes it helps to *isolate* emitters into their own subgroup].) Also for emitters, keep the birth rate down to a small number - you can turn it up later for the final effect (this includes animated airbrush Strokes which are essentially the same thing). (For 3D with cameras and lights:) turn off Lighting, Shadows, Reflections, and Frame Blending from the Render menu while you work (you can turn these on for export from the Export dialog > Render tab). Turn off layers that aren't required for your "current edits" (in other words: only turn on the layers that you need to focus on at any given point in your development.) You can also just turn off filters on layers until they're required. [You don't have to do all of these all at once... but knowing your options and "scaling back" visible portions or items and/or effects with high rendering requirements (anything that Rasterizes! like Extrude, etc.) as you go will help maintain sanity ]


    It is a very rare Motion project that will play back at full framerate.


    If you absolutely have to see the project at full speed, you can export (with all required Render options — Motion will "remember" what changes you make in the export dialog on subsequent exports) at "Current Settings" (which *should* be ProRes 4444). While you're developing the project, Motion can be made to overwrite the exported video, and when you're done, just throw it in the trash (unless you need it for something else.)

Previous 1 2 Next