#### Archived

This topic is now archived and is closed to further replies.

# 3d Animation

This topic is 5615 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

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

##### Share on other sites
Post code !
Blue lines are bones, aren''t they ?

##### Share on other sites
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]

##### Share on other sites
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.

##### Share on other sites
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

##### Share on other sites
Your code is quite complexe !
Try to affect constant weigth for your vertex (1 for the first one, 0 to the others)

##### Share on other sites
On more post... i''m quit interested in your project .
What is your model format ? How do you generate your animations ?

##### Share on other sites
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?!)

1. 1
2. 2
Rutin
16
3. 3
4. 4
5. 5

• 26
• 11
• 9
• 9
• 11
• ### Forum Statistics

• Total Topics
633702
• Total Posts
3013451
×