3d Animation

Started by
6 comments, last by BGCJR 20 years, 8 months ago
Here is a very simple demo of my work the 3D Editor (i currently working). I wanted to see if my format workings. But turn on v sync or you''ll miss the stupid things routine. I''m just glad to get something going. But, I need to know how to keep the model''s body in shape during twists like the hips, that you can see. well, here it is. Demo Bobby
Game Core
Advertisement
Post code !
Blue lines are bones, aren''t they ?
Blue lines are stationary bone frame.
i use the bones for attaching vertices, controlpoints, and which bones are controlled by a bone.

i seen no point in rotating the bone when it's the vertices i want.

	QUAT slerped= quat_interpolate(Bob,James, t);    Core = quat_to_matrix(slerped);	for ( Bobby = 0; Bobby<1; Bobby++)//m.numBones; Bobby++)	{	vect controlpoint = m.bonearray[Bobby].temp1;	for ( long Bobby2 = 0; Bobby2<m.bonearray[Bobby].AVert; Bobby2++)	{		vbuffer[m.bonearray[Bobby].AVertList[Bobby2]] -= controlpoint;		vbuffer[m.bonearray[Bobby].AVertList[Bobby2]] = apply_matrix_f(Core,vbuffer[m.bonearray[Bobby].AVertListBobby2]].x,vbuffer[m.bonearray[Bobby].AVertList[Bobby2]].y,vbuffer[m.bonearray[Bobby].AVertList[Bobby2]].z);vbuffer[m.bonearray[Bobby].AVertList[Bobby2]] += controlpoint;	 	}	for ( long Bobby3 = 0; Bobby3 < m.bonearray[Bobby].CBone; Bobby3++)	{   		long James2 = m.bonearray[Bobby].CBonelist[Bobby3];		for (long Bobby4 = 0; Bobby4< m.bonearray[James2].AVert; Bobby4++)		{  			long James3 = m.bonearray[James2].AVertList[Bobby4];		  vect temp = vbuffer[James3];          temp -= controlpoint;		  temp = apply_matrix_f(Core,temp.x,temp.y,temp.z);		  temp += controlpoint;          vbuffer[James3] = temp;		}	}	}   



[edited by - BGCJR on July 29, 2003 12:26:47 PM]
Game Core
I don''t really understand your question but from what i can see on the demo, some of the points are not rotating with the bones.
The way i do it is to assign each vertex to a bone and a force value(a percentage of how much the bone should affect the vertex contrary to the parentbone).
It seams like you have got the bone asignments wrong, or that you algorithm keeps forgeting to move a single vertic the correct way.

BTW. comment your code better next time, it looks like one of the old denthor demos from PCGPE, when i came to the variable Bobby3 my brain shut down.
thanks lc_overlord, i''m looking into vertices weighting.
that means more to add, but it should handle the problem.
Seems weighting has been out for awhile
Game Core
Your code is quite complexe !
Try to affect constant weigth for your vertex (1 for the first one, 0 to the others)
On more post... i''m quit interested in your project .
What is your model format ? How do you generate your animations ?
It was just off the top of my head.

first, i rotate the a bone in loop.
then, i loop through the list of bones the first bone has control over and rotate them(vertices in this case).

the format is just a simple storage of #verts #tris #bones
their lists and a subclass of bone for endpoints, list of bones under this bone''s control, # of undercontrol bones etc...

The program was a test to load and animate a model from my Model Editor (which only needs Animation editing! and maybe bug fixes?!)


Game Core

This topic is closed to new replies.

Advertisement