Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  


An update to Anim8or, v1.00b, is available with a few bug fixes. Get your copy HERE. See the "ReadMe" file for details.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - hf003

Pages: [1]
I am not sure if anyone ever did this before. I wanted to simulate real life motion for moving objects based on acceleration forces, initial velocities, and position. I could not find any script of this sort. So I created this script that does a fairly good job. For instance, if an animated character drops many objects, it would be easier to apply a script like this to simulate the objects falling and bouncing off the floor and walls. There are some limitations, but, I thought this script could be useful for some of us.

ASL Scripts / Re: My Only ASL Script Complaint
« on: April 26, 2010, 05:01:40 pm »
IMHO, global scene variables are a must to simplify animation. I think all that needs to be done is for the user to always make sure they are initialized before using them. Seems like one way to do this is to conditionally check for frame == 0 to set the global variables and only use them when frame > 0. I am suffering from the lack of being able to conditionally execute scripts based on what happened previously in the scene. I was trying to simulate a bouncing ball using scripts. When the ball is first dropped, the equation constants are different then when it bounces off the floor. The only way I know how to do this is to manually figure out at what frame (or time) the ball would hit the ground and conditionally key off that frame (or time) to execute the different equations. With global variables we could automatically determine the time or frame when the ball hits the ground and set the variable to be used in future conditional executions. Maybe there is an easier way to do this? Steve, wouldn't writing and reading a file significantly slow down frame setup? Maybe it's not so bad when all things are considered? Just wondering.

Anyone? Is there a tutorial that shows how attributes can be used? Also, am I right in saying attributes are not used in scene scripts? Seems like that would be one way to set global scene variables that scripts could use for conditional execution.

Anim8or v0.98 Discussion Forum / Re: v0.97d Preview Ready
« on: April 26, 2010, 04:27:42 pm »
Just a thought on Rendering issues. What I have seen is that using lights and shadows greatly slows down the rendering. I do all my test renderings without shadows. Then add shadows to the final cut. I do not see any way to "globally" turn shadows on/off other than commenting out the relevant lines of the .an8 file with an editor. It would be nice if there was a way to globally control lights/shadows using the GUI if the rendering cannot be sped up when such are used.

ASL Scripts / Re: data storage in/during controller scripts
« on: April 25, 2010, 10:22:26 pm »
I am a bit confused as to why you say there would be unpredictable outcomes if we used information of previous frames to compute new values in the current frame. It seems to me if the initial conditions and computation are always the same, the outcome would always be the same as well. For instance, if we could set the initial position of an object to 0,0,0, then in a position controller script set the object's X position of the current frame to the position of the previous frame's X position+1. How would the outcome be different each time the scene is played? At frame 10, the objects position should always be 10,0,0. Maybe Steve or someone can elaborate on this example to show what I am missing. It seems it would make animation easier in some cases if information of at least the previous frame's object parameters were known to the current frame's script.

Anim8or v0.98 Discussion Forum / Re: v0.97d Preview Ready
« on: March 09, 2010, 06:32:23 pm »
Hi Kubajzz,
Thanks for replying to my lengthy post. I understand some of my suggestions may not be worth the effort.
In any case, let me try to explain where I am coming from.
#3. You are right, it is impossible to significantly change a file’s format and still be backwards compatible. I guess it all depends on what is more important. As for why I like to see the file format be user friendly is simply because I often manipulate the data in the files. For instance – If I want a row of objects in my scene that are perfectly aligned, it is much easier (now) to just create the data text manually and pasting it in the file. Then load the file into Anim8or. This way the coordinates and orientation data of all the objects are all right in front of you making it easy to adjust the values. Alternatively, using the Scene Editor, only a few objects’ coordinates and angles can be seen at any given time. If accuracy is not an issue, then the Scene Editor works great as it is. As for me, I hate Word docs because they are cryptic, while I cannot remember having issues with backwards compatibility. But then, that may just be me.

As for number #9, I guess I was thinking of the Edit->Locate, Edit->Rotate functions. Seems these are used enough to warrant shortcut keys or buttons. Actually, some of the Edit options are used enough where it would be nice to have buttons for them. I often turn the grid on/off, so a button to do that would be nice as well.

#12. This one may be difficult to do. What I was thinking is what if after I add many Morph Targets to an object, I realize the default look for the object should be one of those Morph Targets. If I can simply change the default form of the object, I could save myself a lot of work. Maybe experienced people would never make this mistake, so this may not be worth implementing.

#13. Mirror morph targets along with a mirrored mesh?
If I create a symmetrical object, it is often easier to create half, then mirror the object. The same can be said with symmetrical morphs (Am I wrong?).

#14. Warn user if an action would result in morph targets getting corrupted/lost?
Maybe this comes from not knowing the tool very well. You are right, the workaround here is to finish the mesh first before adding morphs. Again, that may be easy for someone experienced. Unfortunately, what I found is when I begin adding morphs, sometimes I need to tweak the original mesh. Then deleting a point corrupts the morph targets. I once converted a mesh to Subdivision (not knowing any better) and you know what happened. A simple warning would have been appreciated.

#29. You may be right, it may be better the way it is. I was just looking for a user selectable option here to do it either way.

As for #31. I guess you may be right. I understand it could depend on the programming tool that is used. I have done this quite easily using MS Visual Studio. And you are also right, it would only be useful if we can easily reload the manipulated files. I am not sure how this can easily be done. Perhaps the script could have a function do that automatically somehow (Not sure if it would be possible to sense when a third party app closes or if a file has changed)?

Anyway, these are all just suggestions, as I actually think Anim8or is great already.

Anim8or v0.98 Discussion Forum / Enhancement Wish List from a Newbee
« on: March 05, 2010, 11:41:39 pm »
Anim8or is a great program Steve  ;D. I worked with this tool for the past couple months. I love it, but also wish it had some more features. So I just wanted to let you know what I think would make it better for me. Some of these items others already mentioned, in that case, just add my vote to their wishes. Other items may be hard or impossible to implement, I understand. Yet others may have easy workarounds. If so, please let me know. Thanks for letting me try Anim8or for free.


1. It would be nice to have an option to automatically load a project from (and save a project to) individual files.
  - For example. Create an object that is used in multiple projects. Each time the object is changed in one project, the changes automatically get reflected in the other projects.
  - This should also improve autosave performance, as only the file of the item being changed needs be updated. - I have to turn autosave off for large projects, as it annoyingly freezes my environment while saving.

2. It would be nice to have the ability to export and import materials to .an8 files.
- For example, I create two objects with a particular material. Then I want to change the material for the two objects in the same way. Not easily done - easiest way now is to copy and paste the material in the exported objects’ files.

3. It would be nice if only user-friendly information is stored in the .an8 files. In particular, store actual angle information like that used in the UI, rather than the little understood quaternion information which is not used in the UI.

4. It would be nice if the viewpoints could be saved and restored when the application is closed and restarted for each item in all modes.

5. It would be nice to be able to save some "User" viewpoints so they can be recalled as desired.

6. Maybe an option to "lock" the Grid when the viewpoint is changed to user so the grid does not rotate along with the object (grid often interferes with what needs to be seen). Otherwise, have a button to easily turn Grid on/off.

7. When rotating the viewpoint (User viewpoint), the axis orientation indicator (Lower left corner) disappears. It would be nice if the indicator would remain visible in the corner, rotating there to reflect the current orientation.

8. Hover over button "help".

9. More short-cut keys and buttons.

>>Object Editor:

10. It would be nice if a singly selected point's coordinates be shown in the status line (Rather than double clicking a point to get that information). In general, just more status line information would be nice.

11. The ability to duplicate a morph target (With a different name) so it is easy to create branches of morph targets.

12. The ability to change any particular morph target to be the default object.

13. Mirror morph targets along with a mirrored mesh.

14. Warn user if an action would result in morph targets getting corrupted/lost.

15. The Pivot Adjustment feature (Object/Axis) fails to snap to grid when Snap to Grid is selected.

17. Would be nice to have a mode where the multi-selection tool does not deselect previously selected items.

18. Would be nice to have an option to hide points/edges/faces that are behind others.

>>Figure Editor:

19. When the bone creation button is selected in Figure editor, it does not stay selected to add multiple bones. User always has to reselect the button for each additional bone created.

20. It would be nice for the bones in the Figure editor to move freely by default.

21. Bone mirroring.

>>Sequence Editor:

22. When changes are "undone" (using undo button) to bone movements in Sequence editor, the bone gets unselected. Usually, the same bone needs be moved again, thus needs to be reselected.

23. It would be nice to be able to easily "Select All" bones in sequence editor to "Copy" all keys for all the bones of a figure. This would be handy when a particular figure's position is desired in multiple frames. It seems like "Select All" does nothing here.

24. It would be nice (if possible) for the Gimbal Lock issue to be resolved in Sequence editor like it is in the Figure editor.
25. There is also another bone rotating issue in Sequence editor that has nothing to do with Gimbal Lock that I think has already been hacked to death in these forums.

>>Scene Editor:

26. It would be nice if the "world" line of the hierarchy list indicates if keys are used for a particular frame. If the list has many elements, the only way to determine if no keys are used for a particular frame is to scroll through the list. As such, it is easy to miss and delete frames where keys did exist.

27. When switching between modes, often things get unselected.
  - For example, I try to coordinate bone movement in a particular scene frame with a particular sequence frame. When I switch back and forth between the Scene editor and Sequence editor, I always have to reselect the bone and push the Key button.
  - When trying to coordinate object parameters like size/position to fit scenes, the object is always unselected when switching back to the Object editors.

28. It would be nice to see more control over the Scene mode's Graph Editor's Scaling parameters. If I want to adjust the values for a short period of time of a lengthy animation, It would be nice if I could just show that short period of time in the Graph Editor. This way, the Graph Editor's size can be reduced to see better how the animated objects are affected as the parameters are changed in the Graph Editor.

29. It would be nice to see an option for the Graph Editor to automatically update the animation's current frame depending on the point that is currently selected in the Graph editor.

30. Maybe be able to adjust the radius of a Panorama Background? – I am thinking that could improve rendering performance and/or resolution of the image?

>>Script Editor:

31. Add a Function to allow launching external programs (like morphenvy, etc...). That way, popular external programs could be setup to act as if they were integrated with Anim8or.
32. Add Functions to convert quaternion info to and from just angle information (not really necessary if quaternion information is not visible to end users like it is now in the .an8 files).

Let me know if I should elaborate on any of these items.
Thanks again,

After playing around with this a bit, I realized Gimbal Lock does not occur in the Figure editor. Both Sequence and Figure Editor allow bone rotation, yet Gimbal lock is only a problem in the Sequence editor. Although, I did not do an extensive test, I now believe it is impossible to avoid Gimbal Lock when animating all possible movements of a human's arms in the Sequence editor. If I am wrong, can someone please create a tutorial showing how to do such?


Anim8or v0.98 Discussion Forum / Re: A List of Ideas for Anim8or- Neirao
« on: February 01, 2010, 06:04:40 pm »
I think what VBsmiles suggested with regards to morphs makes sense. You already have a context menu for "New...", "Edit...", and "Delete..." morph. Why not simply add a menu item to "Copy..." morph? After showing a dialog box to name the copied morph, the user can just change the copy leaving the original in tact. Both copy and original can then be based on None.

We can already do this by simply creating a "New" morph, exporting the file to .an8 format. Edit that file by coping other morph targets' into the newly created morph target section. Then import the file.

Great Program Steve. I like being able to manipulate the .an8 files to find solutions to unimplemented features.  I look forward to the mirroring capabilities you are adding.

Thanks much hihosilver,

That explains the issue very well. As johnar pointed out, it is exactly the Gimbal Lock" problem that I ran into here. I see most problems with "Gimbal Lock" can be avoided by choosing the correct axis hierarchy. I am assuming that can be done by rotating the bones in the Figure Editor first to get the correct hierarchy that best suits one's needs. I'll try what johnar suggested.
Thanks all

General Anim8or Forum / Re: Idle moving face
« on: January 28, 2010, 11:59:04 pm »
I think the biggest problem with people first trying morph targets is in not understanding it only works with moving points of a mesh. If you try to rotate an object in the Edit screen (as opposed to Edit Point screen), the rotation is not morphed. It would be nice if the manual emphasized this point right from the get go in the morph targets section.

Hi Raxx, thanks for your reply.

Unfortunately, the link you gave me does not address the issue I am seeing with the Sequence editor.

I have no problem getting the bones to rotate in any direction I want. However, when I rotate the bones using the "Middle" mouse button" to rotate about the "Z" Axis, the X-Axis does not rotate about the "Z" Axis along with the bone, while the Y-Axis does. If I rotate exactly 90 degrees, then both X-Axis and Y-Axis are in the same plane. I do not think it should do this, as now it is impossible to rotate the bone using the "Left" mouse button in any direction other than what can be done with the "Right" mouse button. The X-Axis should rotate 90 degrees as well (imo).

Here are the steps to reproduce the issue.

1. In Figure Mode: Add one bone to the root bone.
2. In Figure Mode: In "front" view, rotate the bone 90 degrees so it sits horizontal.
3. In Figure Mode: Remove all movement restrictions for that bone.
4. In Sequence Mode: Load the figure and "Show Axis"
5. In Sequence Mode: In "front" view rotate the bone 90 degrees so it is pointing strait down (or strait up) using the "Middle" mouse button.
6. In Sequence Mode: Go to to "Left view".
7. In Sequence Mode: Try to rotate the bone using the "Left" mouse button - Nothing happens.
8. In Sequence Mode: Go to "Ortho" view try to rotate the bone using the "Left" mouse button. - You get the same rotation as using the "Right" mouse button. This is because the X-Axis and Y-Axis are coincidentally in the same plane.

Also, when I rotate about the "Y" Axis, neither the X-Axis or Z-Axis move, as such the limits on these axis do not rotate along with the bone.
To be clear, when I mentioned X-Axis, Y-Axis, and Z-Axis above, I meant the colored Axis that we see when we use "Show Axis", while "X" Axis, "Y"Axis, and "Z" Axis denote the non-changing screen coordinates. The issue is that the colored Axis do not stay coincidental with their corresponding Bone's Axis when the bone is rotated about the "Z" and "Y" Axis.

Again, this is not what I would expect. Please try it, maybe there is a reason for this behavior I am not aware of.

There is also another issue where "Undo" does not undo bone rotations (V97d). It just deselects the bone. But that is not so bad.

General Anim8or Forum / Re: flashing lights...
« on: January 28, 2010, 06:51:10 pm »
The real problem is that individual bones of a figure cannot be used as the parent for other objects that can be made invisible at certain times of the animation. I am thinking of a character that throws a ball, the ball would be in the hand for a short period of time. During that time, the ball should move along with the hand. When the ball is released, it should follow some other independent path. Here is what I did.

1. First, I created the ball as usual in object mode and converted it to mesh.
2. Then I made a morph target for the ball and called it "disappear".
3. I selected all points in Point Editor and shrunk the ball so small it disappeared off the screen.
4. I then went to figure mode and added the ball to the hand bone - positioning it where it would be when the hand is holding it.
5. Then I sequenced throwing the ball.
6. In Scene mode I first enabled the "disappear" morph target of the figure to make the ball disappear from the hand.
7. I then added another ball object into the scene and made it fly through the air along a path where it met up with the hand at some point in the animation.
8. Once the ball was in the hand, I reversed the "disappear" morphs for the two balls such that the boned ball is visible and the other ball invisible. Now the ball moves wherever the hand moves.
9. At the point where the ball is supposed to leave the hand, I again reversed the "disappear" morph targets of the two balls such that the ball can once again follow some independent path.

I used "Step" option when I added the keys to make the balls appear and disappear.

I hope this helps. Being new at using Anim8or, I cannot be certain this method is the easiest way of doing such a task.

When you mirror an object, the morphed targets do not get mirrored (At least not in V95 and 97d). When you try the morph targets on this new image, nothing happens. It seems like it could easily be done in most cases, so I am not sure why Anim8or does not give the user an option to do so. I have had success doing the following. (This method only works for mirrored objects across the X Axis).

Just a reminder - Be sure to back up your project before doing this.

1. After you create your first object with morph targets, center the object about the origin and mirror it about the X axis.

2. Cut and Paste only the mirrored image into a new empty object. 

3. Now export both objects to separate .an8 files.

4. Using a text editor, open the file of the original object. Do not change this file in any way, but just navigate to the first "morph offsets" section of the file. Select and Copy all the data within a single section and paste the data into an empty .txt file and edit the pasted data as described next.

5. The data takes the form of  " 3 (0.01 0.02 0.03) 6 (1.01 0 1) 7 (-0.01 0.01 0) "... etc. The values of 3,6, and 7 here are the point indexes that have morph targets and could be any value. The values within the parenthesis are the offsets of the X,Y, and Z axis respectively, again will be different than yours. Edit the data as follows: Find all instances of "(-" and replace them with "(+" . Next find all instances of "(" and replace them with "(-". Finally, find all instances of "(-+" and replace it with just "(".  Basically, we are just flipping the sign of all X axis values. The Y and Z Axis values remain unchanged since we mirrored across the X axis.

6. Now open the .an8 file of your second (mirrored) object.

7. Copy and paste the edited data of step 5 into the corresponding "morph offset" section of the file.

8. Now import the edited .an8 file (the mirrored object file) back into your second object (overwrite the old mirrored object). The morph targets should work fine now with your mirrored object.

If you have several morph targets, you need to repeat these steps for all of them. Good Luck.

I am not sure if this is by design or not. When a bone is rotated about the Pink Axis, the Green Axis does not track with the bone’s position (I used Front view and middle button to move the bone). The Blue axis tracks, so both Blue and Green Axis can have coincidental planes. I would expect both Axis to move along with its bone axis for which it belongs to. This issue makes it very difficult (impossible?) to implement restricted bone movements properly. Also, When I rotate about the Blue Axis, neither the Pink or Green axis track their corresponding bone’s axis. Only rotations around the Green Axis results in the expected behavior. Issue exists at least in V95c and V97d.

Pages: [1]