Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  


Ian Ross has just released a book on Anim8or. It's perect for a beginner and a good reference for experienced users. It contains detailed chapters on every aspect, with many examples. Get your own copy here: "Anim8or Tutorial Book"

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 - NickE

Pages: 1 2 [3] 4 5 ... 11
General Anim8or Forum / Re: 3d Printing with Anim8or
« on: December 16, 2014, 04:23:03 pm »
I regularly use Anim8or to produce models for 3D printing.  I designed many upgrade parts for my 3D printer in Anim8or, and then printed them on my Kossel 3D printer.  I like designing my robot prototypes in Anim8or because I can then animate the robot to see if the parts will actually go together and move correctly before I print them.

General Anim8or Forum / Re: SMD skeleton to an8 skeleton
« on: December 03, 2014, 09:05:46 am »
In the SMD format, the skeleton is represented explicitly by joints (or the vertices between bones).  The "bones" in SMD format are implicit.  In AN8 format, the skeleton is represented explicitly by bones, and the joints are implicit.  To be able to map orientation, motion, and skinning from SMD to AN8, one must convert the explicit joints to explicit bones.  This requires that the implicit bone after the last joint in the SMD kinematic chain be formed explicitly in the AN8 kinematic chain.  If it is not done, there is no AN8 structure to carry the motion of the last SMD joint.

Dizzy yet?  Me too, just from writing that.  It is much easier to see in the picture.

General Anim8or Forum / Re: SMD skeleton to an8 skeleton
« on: December 02, 2014, 03:31:50 pm »
I have attached a zip file containing the VB 2013 source code for the SMDtoAnim8or converter.  The previous executable I posted was written in VB6.  I did the minimum required to port it to VS 2013 VB and tested it to be sure it works.

The source code for the converter (especially the parsing routines) is very inefficient in terms given it is minimally changed from VB6.  There are nice parsing libraries available in, but I did not take the time to implement them.

VS 2013 Community version is free (takes forever to install) if you want to compile or modify it. 

In this converter, unlike the BVH converter, the program calculates the joint offsets, then the figure's bone orientation from the offsets.  I implemented it this way since the SMD format is not in hierarchical format (unlike BVH), so the parent/child relationships are not known until all the bones are read.  It was easier to calculate the offsets first (in this case), then the orientation rather than the other way around.  The math concepts are the same.

I explained the difficulties in writing this kind of converter in,4861.msg36976.html#msg36976


General Anim8or Forum / Re: SMD skeleton to an8 skeleton
« on: December 01, 2014, 10:30:43 am »

Attached is a program that will convert the SMD files you posted to an8 format.  I will only do the object and figure, since none of the files you posted contain animation.  I do not have any other SMD files to test with, so it may not work with other SMD files that vary in format, spacing, white spaces, etc.

Sorry this took so long.  Family medical problems have kept me far from home the last several weeks.  I'll post the source code when I get a chance to clean it up.


General Anim8or Forum / Re: .an8 Format, jointangles, how are they stored?
« on: December 01, 2014, 09:56:57 am »
Converting other animation files to Anim8or is complicated not because of the math, but because the other animation formats have different skeleton standards and frames of reference.  The first hurdle in converting formats is finding a way to correlate the foreign skeleton to an Anim8or skeleton.  I found this to be the most challenging part because of two things: (1) most foreign formats use joints and Anim8or uses bones, and (2) the reference frames of foreign formats differs from Anim8or's.  Once you solve the correspondence of foreign joints/bones to Anim8or's bones, you must deduce the the difference in world reference frames and rotate the skeleton into Anim8or's world reference frame.

The next challenge is deducing the reference frame of the foreign bone's orientation.  In Anim8or, the orientation of each bone is relative to the parent (BVH and SMD are similar in that respect), but the reference frame in Anim8or is y-axis along the bone, left-handed axis system.  What is the foreign format reference frame axis system?

The foreign format's often give Euler angles for orientation, but does it use XYZ, YXZ, ZYX or other order?  This must be deduced.  Internally, Anim8or uses quaternions, so Euler to quaternion conversions must be done.  The math for this conversion is different depending on what the world and local reference frame axis systems are.

These problems, coupled with the brain-twisting non-intuitiveness of quaternions will make your brain explode!  Each part of the conversion of a foreign format to Anim8or's is dependent on the previous part.  You can get all but one step correct and the result will look as wrong as getting them all wrong.

The math (and code for the math) itself is fairly straightforward.  Pretty much everything you need to know math-wise can be found on Martin Baker's site

With fixing the framerate issue, you can switch to the Sequence or Scene Mode without Anim8or crashing, but if the figure is clicked while in Skinning mode, then changed to Sequence or Scene Mode, Anim8or crashes.

Can anyone see anything wrong with the bone weighting section of the an8 file?

Thank you,


Good catch!  Thank you so much!


If the attached an8 file is opened and switched to Sequence Mode or Scene Mode, Anim8or crashes.  Oddly, if the figure (and object) are imported into another an8 project, the figure can be added to a sequence and work as long as the figure is not modified.  If an attempt is made to alter the figure, Anim8or will crash.

This file was created by a prototype SMD file importer (similar to the BVH importer) that I am writing. This crashing behavior occurs regardless of whether the object is added to the skeleton.  A bare skeleton causes the same behavior.

Any insight would be appreciated.

Thank you,

General Anim8or Forum / Re: SMD skeleton to an8 skeleton
« on: November 09, 2014, 08:37:19 am »

Is it your intention to (1) gain the experience and satisfaction of having written a converter for SMD files for Anim8or or (2) do you just want something that works?

If (1), then you need to gain a thorough understanding of the both the SMD file format(s) and reference frames and Anim8or's conventions for handling figures, sequences, and scenes.  The code in the BVH converter is not going to make sense unless you understand those concepts.  In a nutshell, the code reads and parses a BVH file, constructs an Anim8or figure, constructs a sequence for the non-positional movements, and then constructs a scene containing the figure and sequence so that position can be added.  In Anim8or, the figure's root bone is relative to the world coordinate system, but each child bone is relative to it's parent.  A cursory reading of the SMD format suggests the same arrangement (although it is not completely clear), but the world coordinate system is different from Anim8or's.

The math part essentially steps through the bones, rotates the bones into the reference frame, performs the relative rotation of child to parent, then rotates them back.

If (2), I'd be happy to help you out if you can be patient.  I would need some sample SMD's and either some viewer program or screenshots to see what the SMD file is supposed to look like.  My first guess is that the BVH conversion program can be easily adapted by writing a new parsing routine and other small changes.


General Anim8or Forum / Re: SMD skeleton to an8 skeleton
« on: November 08, 2014, 04:31:42 pm »
I ran into the same sorts of problems when I was writing a BVH to Anim8or converter.  You need to know the reference frame for the SMD skeleton and rotate the SMD skeleton to the Anim8or reference frame right-handed (0,1,0).  The SMD reference frame is unclear, but seems to be left-handed (0,0,1).

Attached is the VB6 source code for the BVHtoAnim8or program.  To follow execution, look at cmd_sel_input_Click() and cmd_convert_Click().


ASL Scripts / Metric Screws and Nuts Script
« on: October 19, 2014, 01:50:44 pm »
Attached is a script to generate Metric Screws and Nuts.  Currently supported are Socket Head, Button Head, and Hex Head.



ASL Scripts / Re: Allthread Script
« on: October 19, 2014, 07:39:46 am »

I have attached an updated version to support v98.  I forgot about the "//' comments only being added in the latest builds.

As far as merging faces: it will work (even in build 1115) if you are careful about not selecting the very thin faces on the underside of the top.

What kind of head are you wanting to add?  I actually made this script from paring down another script that makes standard ISO metric socket cap screws and accompanying nut.  Is there types of screws you would like to see?


ASL Scripts / Allthread Script
« on: October 18, 2014, 07:56:54 pm »
Attached is a parametric script to generate allthread.  The thread profile is based on the ISO Metric Thread Standard.  You can edit the script to give other thread profiles.



ASL Scripts / Involute Gear Script
« on: October 15, 2014, 04:46:05 pm »
I needed some involute gears for a project that I am doing, so I ported this script from the OpenSCAD library.  I could have done the modelling in OpenSCAD, but I like to Anim8 things before I print and build them.  OpenSCAD is a great tool, but gets a bit prolific with the faceting.  Plus, I was able to use Anm8or's new functions capabilities in a practical manner for the first time.

Thank you, Steve for continuing to improve Anim8or!

   Thank you for continuing to support Anim8or.  I use it almost on a daily basis. 

Bugs to report:

1) Builds 1086 to 1115: Loss of Precision in Orientation in Object Editor:  If orientation is set in the "Parameters" dialog box to a value, the value is changed to a lower precision number when the dialog is reopened. 
   For example:
      A cylinder is drawn randomly
     "Cylinder Parameters" dialog box is opened by double-clicking the cylinder
     I change the "Orientation (PYR)" to 90,0,0 and "OK" is clicked
     "Cylinder Parameters" dialog box is opened by double clicking the cylinder
     The values shown are 89.966,-0.000,-0.000 and the cylinder looks as if the orientation has noticably changed
This is mostly likely due to the variable types being used in the quat-to-PYR function and/or the PYR-to-quat function.  Should be a quick fix.

2) Builds 1112 to 1115: Figure editor will not allow moving, rotating, or scaling of objects attached/added to bones.

3) Builds 1112 to 1115: Any mouse dragging for movement, rotation, scaling, etc on a group in Object Editor will crash Anim8or.  Double-clicking to open the "Group-Parameters" dialog works without crashing.

Thank you!

Pages: 1 2 [3] 4 5 ... 11