Gamestudio Links
Zorro Links
Newest Posts
Rendering PANEL only in a specific VIEW
by alibaba
16 minutes 19 seconds ago
Ahead bias when retrain
by JRA
Today at 10:32
[LBGUI] Memory not released!
by alibaba
Today at 02:11
Votes for future features
by easyX
Yesterday at 19:30
New Zorro version 1.83
by jcl
Yesterday at 14:21
What are you working on?
by Emre
Yesterday at 01:21
Experienced 2D|3D Character artist|Concept Artist@ Indie Prices|
by DeathstalkerArs
05/21/18 17:13
AUM Magazine
Latest Screens
Forgotten Tales - Demo version
RPG PARTY
Triton Wing now available on Steam
AckCon'17: Lotter vs The World
Who's Online
15 registered (AndrewAMD, Mafia_IR, alibaba, JRA, CocaCola, 3run, kvm, mk_1, Akow, 3 invisible), 440 Guests and 4 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
AgentShark, rpauletto, tuuPaul, LaserJock2000, andrey20
17959 Registered Users
Topic Options
Rate This Topic
#465521 - 05/02/17 16:46 ent_bonereset_all + end_blendpose
Superku Online
Senior Expert

Registered: 09/13/03
Posts: 6690
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 The Game

Severely outdated footage: http://store.steampowered.com/app/407570

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

Chief Engineer

Registered: 07/22/00
Posts: 26333
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 | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de