Gamestudio Links
Zorro Links
Newest Posts
Dialog box darstellung?
by tagimbul
18 minutes 53 seconds ago
2D/3D Game & Animation Artists AVAILABLE @ Indie price
by zagreusent
Today at 13:12
More than One "File_Open_Read" - Problem?
by Reconnoiter
Today at 11:51
How to keep track of Memory usage
by Reconnoiter
Today at 11:41
ShadeC EVO (Lightmap)
by 20BN
Today at 11:33
AUM Magazine
Latest Screens
Triton Wing
ZeaL
Computer Repair Simulator
Collider (working title)
Space Rider
Who's Online
23 registered (3run, Ch40zzC0d3r, 3dgs_snake, 20BN, Iglarion, Ayumi, Enayn, alibaba, AndrewAMD, FXcoderCM), 427 Guests and 6 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
defghi296516, serran0, michal_p, francismake, sqirtle
17663 Registered Users
Topic Options
Rate This Topic
#465521 - 05/02/17 16:46 ent_bonereset_all + end_blendpose
Superku Offline
Senior Expert

Registered: 09/13/03
Posts: 6562
Loc: Kiel (Germany)
Hello!
1) Apparently ent_bonereset_all() is not working in the sense of updating the visible mesh of an entity (at least when not GPU animated) when it's the only bone operation called that frame.

Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////

void main()
{
	fps_max = 60;
	video_mode = 10;
	level_load(NULL);
	ENTITY* ent_minitest = ent_create("minitest.mdl",vector(256,0,0),NULL);
	ent_minitest.pan = 180;
	while(1)
	{
		if(key_1) ent_animate(ent_minitest,"testB",100,0);
		if(key_2) ent_bonereset_all(ent_minitest);
		if(key_3) ent_bonereset(ent_minitest,"Bone1");
		wait(1);
	}
}


Download code + model

A workaround: Resetting a random other bone that frame. This will update the rest of the mesh as well.


EDIT:
2) Back to my original problem from which the first one originated:
I cannot copy to (or from?) another entity.pose than pose 1 unless I've used ent_animate with pose != 1 at least once:
Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////

void main()
{
	fps_max = 60;
	video_mode = 10;
	level_load(NULL);
	ENTITY* ent_minitest = ent_create("minitest.mdl",vector(256,0,0),NULL);
	ent_minitest.pan = 180;
	while(1)
	{
		if(key_w) // first press [s]
		{
			ent_minitest.pose = 2;
			ent_animate(ent_minitest,"testA",100,0);
		}
		if(key_s) // press this first, then [space] -> no effect
		{
			ent_minitest.pose = 1;
			ent_animate(ent_minitest,"testA",100,0);
			int i;
			for(i = 1; i <= 4; i++) ent_bonerotate(ent_minitest,str_printf(NULL,"Bone%d",i),vector(sinv(total_ticks*5)*15*(1-2*(i > 2)),0,0));
			ent_blendpose(ent_minitest,2,1,100); // has no effect, or the subsequent ent_blendpose call
		}
		ent_minitest.pose = 1;
		ent_animate(ent_minitest,"testB",100,0);
		if(key_space) ent_blendpose(ent_minitest,1,2,100);
		
		wait(1);
	}
}


Press [S] first. This should copy the animation to pose 2 (I use stuff like that to save an old animation state for a couple of frames, which normally works quite good - the code here is just to demonstrate the issue).
When you now press [Space] it should show that animation instead of "testB". This only happens though when you press [W] at least once.


Edited by Superku (05/02/17 17:37)
_________________________
"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Superku side-scroller: ~98.5% (??????!??)

Steam® Store Page ("Coming Soon"): http://store.steampowered.com/app/407570 Wowowowow!

Top
#465708 - 05/10/17 12:50 Re: ent_bonereset_all + end_blendpose [Re: Superku]
jcl Offline

Chief Engineer

Registered: 07/22/00
Posts: 25548
Loc: Frankfurt
Ent_bonereset resets the bones, but does indeed not update the mesh. I've added this to our list of things to check and fix.

Top


Moderator:  jcl, Nems, Spirit, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | resources | magazine | manual | support faq | bugs | beta features

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) 3dgamestudio.net