Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

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 ... 3 4 [5] 6 7 ... 11
61
You touched me.  I love the poetry, and the presentation was world class!  Go professional.  You have a promising career ahead of you.

62
ASL Scripts / Re: BVH File Import into Anim8or
« on: May 13, 2011, 04:52:04 pm »
I have attached an updated version of the BVH Import program.  It automatically adds a bone to attach a single mesh.  This bone is called "0_object_bone".  When in Figure Mode, if you click on "List Items" button, it will be the first bone in the list.  Click on that item in the list to select it, and then do the "Build>Add Object" to attach the mesh to this "root" bone.  Then it is just a matter of weight painting.

The program is also a little bit more intelligent about keeping the axes from flipping.  It doesn't always work, but it is a lot better.

Feedback is always appreciated.

63
ASL Scripts / Re: ALIGN POINTS SCRIPT - Help need
« on: May 13, 2011, 04:41:53 pm »
Neirao,
Below is your code with the changes you requested:
Code: [Select]
/*
  *Name: Aling points to (x,y,z)
  *CopyLeft: 2010
  *Author: Neirão
  *Date: 03/03/10
  *Description: based in Vytautas_alinhar_pontos_line_points_v1
  *Parameters:  *= width;  *= height;  *= width_divisions;  *= height_divisions;
  */

/***** Init *****/
#command("object");
object $object;
shape $shapes[0];
shape $shape;
int $shape_count;
point3 $points[0];
point3 $point;
int $point_count;
int $i;
int $j;
int $direction;

/* added by NickE */
point3 $sel_max,$sel_min,$sel_center;

/* end of added by NickE */

if (GUI.Xenabled) $direction = 0;
else if (GUI.Yenabled) $direction = 1;
else $direction = 2;

if (GUI.Xenabled && GUI.Yenabled && GUI.Zenabled) $direction = 3;

meshdata $mesh_data;
$object = project.curObject;
$shape_count = $object.GetShapes($shapes);

/*** Get all selected points from all the shapes ***/

for $i = 0 to $shape_count - 1 do{
$shape = $shapes[$i];

/* If shape is a mesh.. */
if($shape.GetKind() == SHAPE_KIND_MESH){

/* i try this..but dont work.. :( --> || $shape.GetKind() == SHAPE_KIND_SUBDIVISION */

/* Get the shape point number */
$point_count = $shape.GetNumPoints();

/* added by NickE */

        $sel_max=(-10000,-10000,-10000);
        $sel_min=( 10000, 10000, 10000);

        for $j = 0 to $point_count - 1 do
        {
           if ($shape.GetPointSelected($j))
           {
              $point = $shape.GetPoint($j);
              if ($point.x > $sel_max.x) $sel_max.x = $point.x;
              if ($point.y > $sel_max.y) $sel_max.y = $point.y;
              if ($point.z > $sel_max.z) $sel_max.z = $point.z;
              if ($point.x < $sel_min.x) $sel_min.x = $point.x;
              if ($point.y < $sel_min.y) $sel_min.y = $point.y;
              if ($point.z < $sel_min.z) $sel_min.z = $point.z;
           }
        }
        $sel_center.x=($sel_max.x + $sel_min.x)/2.0;       
        $sel_center.y=($sel_max.y + $sel_min.y)/2.0;       
        $sel_center.z=($sel_max.z + $sel_min.z)/2.0;
/* End of added by Nick E */       
 
for $j = 0 to $point_count - 1 do{
if($shape.GetPointSelected($j)) {
$point = $shape.GetPoint($j);
if($direction == 0){
/* $point.x = 0; */
                        $point.x = $sel_center.x;   /* Added by NickE */
}
if($direction == 1){
/* $point.y = 0; */
                        $point.y = $sel_center.y;   /* Added by NickE */
}
if($direction == 2){
/* $point.z = 0; */
                        $point.z = $sel_center.z;   /* Added by NickE */
}
/* TODOS XYZ ATIVADOS alinha todos para  */
if($direction == 3){
$point.x = 0;
$point.y = 0;
$point.z = 0;
}
$shape.SetPoint($j, $point);
}
}
}
}

Some things to think about:
1) Do you really want the center, or do you really want the average?
2) This script works on the actual coordinates of the points, so if a mesh is moved or rotated, it still operating on the underlying point coordinates rather than the transformed coordinates.  This may give different results than what is expected.


64
Anim8or Challenges / Re: Challenge #25: 1000
« on: April 25, 2011, 05:12:44 pm »
There are 1,000!  Count 'em, hehe.

65
ASL Scripts / BVH File Import into Anim8or
« on: March 20, 2011, 09:07:09 am »
Attached below is a working BVH file import program for Anim8or.  For those that are not familiar, BVH is a motion capture file format that describes a skeleton made up of joints (points) and a timeline of XYZ Euler angles that describe the rotation of the joints.  See http://www.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html for an overview of the description.

Anim8or differs widely from the BVH file format in that Anim8or's Figure Mode uses bones for the skeleton where the orientation of the bones is described by a quaternion.  The Sequence Mode uses XYZ Euler angles to describe the change in orientation of the bone relative to the initial orientation of the bone set in Figure Mode.  In Anim8or, the rotation of the bones, when unconstrained, goes from -360 to +360 degrees.  Conversion to and from quaternions and Euler angles requires the use of trigonometric functions.  The atan2 function, for example, goes from -180 to 180 degrees.  A small change in angle in the BVH file across one of these trigonometric limits can trigger Anim8or to flip the bone 180 degrees.

Anim8or has bugs in calculating the frames between keys.  Sometimes it will interpolate wildly. 

Scene Mode has a bug (or maybe it is intentional) where the root bone orientation is completely ignored.  Since the root bone orientation is the orientation of the entire figure, the bug is overcome by keying the root bone orientation into the orientation controller of the figure in Scene Mode.

Sequence Mode has no translational motion abilities, so the BVH translation is keyed into the position controller of the figure in Scene Mode.

The program can currently read in a BVH file and create an Anim8or project file (an8).  This means it generates a skeleton in Figure Mode, a sequence that uses the skeleton, and a scene containing the figure and the sequence.  It keys the orientation and position for the figure directly in scene mode.  For reference, the program also generates a simple line object in the same position as the skeleton.  I found this useful for getting the size and posture of the object to be skinned close.

BVH files sometimes have issues as well.  Most of the Carnegie-Mellon BVH repository files have zero-offset joints.  This introduces some small error when these zero-offset joints have rotations.  Many BVH files have skeletons of very small scale.  I have added a scaling function to the program to allow you to modify the overall scale of the skeleton.  Many of the BVH file have frames-per-second (FPS) of 30, 60, or 120.  I have added the ability to change the FPS.  Please realize that the recalculation of the FPS requires computational interpolation of the motion.  I am using simple linear interpolation in that calculation that introduces some error.  To reduce the number of keys (to reduce file loading time), the program allows you to choose how often to key the original motion as well as put in a tolerance factor to not key when there is change less than this tolerance factor.  In BVH files that have a lot of fast motion, you will need to key more often.  One martial arts BVH file I tested required every frame to be keyed or significant motion error occurred.  Loading that 650 frame Anim8or file takes about 4 minutes on my computer.  Some BVH files have a first frame that is zero motion (original skeleton pose).  There is an option in the program to skip this frame in the sequence and scene.

Some minor tweaking in Anim8or is often necessary due to the fact that trigonometric functions change rapidly near the limits.  This relatively easy to do.  A BVH file I tested that had a runner turning a 90 degree turn worked fine except the right upper arm was slightly off.  A small adjustment in Figure Mode was all that was necessary.

While the program works pretty well for what it does, the results of the program are not readily portable or incorporated into existing projects.  The final product is in Scene Mode.

The program is written in VB6, so you might need to download some runtime libraries if your computer does not already have them.

Please play with the program and give me your feedback and ideas on how to make this more useful to Anim8or users.

Some hasty examples done with figures from BobIt's figure plugin are posted on youtube:

Chinese Martial Arts:  youtube.com/watch?v=KG9hBBvjoDo[/youtube]]http://www.


Hooker Walk: youtube.com/watch?v=3_AjJkl6qzk[/youtube]]http://www.


Thank you.

66
Anim8or Challenges / Re: Challenge #24: Halls of Fury!
« on: February 06, 2011, 02:00:22 pm »
The more the merrier!  I was late and my submissions unfinished!  Where is the fun in being the only one?  Extend please.

67
Anim8or Challenges / Re: Challenge #24: Halls of Fury!
« on: February 06, 2011, 10:35:03 am »
Here's the first one I started working on:

A quiet night at the alien lockup:

68
Anim8or Challenges / Re: Challenge #24: Halls of Fury!
« on: February 06, 2011, 10:33:02 am »
Well, I started working on two different submission, but unfortunately was unable to finish either.  Below is a quick render of the second one:

A covered walkway between two buildings.  A curiously empty and unfinished urban scene.

69
General Anim8or Forum / Re: Anim8or Collab - "Don't Forget"
« on: February 02, 2011, 09:52:44 am »
I will contribute to this project.  Thanks for organizing it.

70
ASL Scripts / Re: Scripts Request: Edge to point or Faces to point!
« on: January 13, 2011, 04:13:01 pm »
Neirao,

Attached is a script to do what you requested.  It will select the points of any edges and/or faces that are selected and de-select the edges and/or faces that were selected.

Edges and Faces are both handled by this single script.  I originally wrote a script for Faces and another script for Edges, then realized that there should not be a conflict having them in the same script.

Enjoy!

71
Anim8or Challenges / Re: Challenge #23: Happy holidays!
« on: December 25, 2010, 12:15:46 am »
Holiday time is Family time...hence...

Get in the Holiday Spirit!

72
ASL Scripts / Re: I need a script....
« on: October 06, 2010, 06:27:38 pm »
How are you determining the xyz coordinates of each object?  Random?

73
General Anim8or Forum / Re: Problem with alpha-maps
« on: August 19, 2010, 06:42:20 pm »
You should probably post the project.  I've never seen this kind of behavior before.

74
ASL Scripts / Re: Simple fluid simulation
« on: August 14, 2010, 10:16:13 am »
The script and project included above is just a demonstration of the capabilities and to point out the "quirk" of Anim8or of running scripts asynchronously to the rest of the program.

The script above requires a mesh named "s1" of 100 by 100 points.  The points have to be numbered in order of the mesh from 0 to 9999.  The points with Y-coordinates not equal to zero have "excitation", will move up and down, and gradually dampen to zero.  This script only moves the points up-and-down and expects the points to be equal distances away from each other (like a perfect plane)

I've attached a project that has a "blank" water field.  You can try the different kind of rippling, like from the corner, a wave that covers a whole edge, starting the "excitation" above or below the plane, etc.

To render your animation, you have to start the script in object mode, switch quickly to the scene mode and start the render.  The "delay" variable in the script is to allow time for Anim8or to render the frame before the script calculates the next frame.  It takes some experimentation to hone in on a proper delay value for the scene and your computer.  While hunting the proper delay value, set the number of frames variable to just a few frames because you will have to wait for the script to finish to adjust it.

Thank you for your interest.




75
ASL Scripts / Re: Help with Boolean script
« on: July 18, 2010, 11:15:23 am »
dwsel,

There is a different version of the booleen operations script that I wrote concurrently with Kubajzz (I never released mine).  His script and mine work by totally different methods.  All methods (in all the programs that I have studied) suffer from situations where the method fails.  The good part is that mine and Kubajzz's methods usually fail under different circumstances.

With the attached script, be sure to open it in a text editor to read the usage notes at the top.

I tested the attached script on your attached Anim8or project and it failed to construct a few faces.  When the cylinder was moved a tiny amount to the positive x direction, all faces were reconstructed.

I also am attaching a test Anim8or project that I used to get a feel for when the boolean operations script fails.  The attached jpg is a texture that will have to be put in the default texture directory.

Pages: 1 ... 3 4 [5] 6 7 ... 11