Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (Akow), 1,361 guests, and 9 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19055 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 4 1 2 3 4
Re: bone animation [Re: sebbi91] #280893
07/24/09 15:04
07/24/09 15:04
Joined: Aug 2003
Posts: 7,439
Red Dwarf
Michael_Schwarz Offline
Senior Expert
Michael_Schwarz  Offline
Senior Expert

Joined: Aug 2003
Posts: 7,439
Red Dwarf
you have to animate the body parts seperatly. i.e:

walk_legs, walk_torso, walk_head
stand_legs, stand_torso, stand_head, etc, if not, you will get that weird adding of angles


"Sometimes JCL reminds me of Notch, but more competent" ~ Kiyaku
Re: bone animation [Re: Michael_Schwarz] #280894
07/24/09 15:21
07/24/09 15:21
Joined: Jun 2008
Posts: 402
Germany
S
sebbi91 Offline OP
Senior Member
sebbi91  Offline OP
Senior Member
S

Joined: Jun 2008
Posts: 402
Germany
the problem is i did what you say!
every animation is seperatly and only animate one bodypart!

the basic animation "stand" animates only the body!(arms and head don't appear)
and if i add one Animation all works fine! (left arm is seperatly animated too)

But if i animate 2 ADD animations at the same time i got this horrible angle bug!

Cant get it working since 4 days!


3D-Gamestudio A8 - Commercial
Re: bone animation [Re: sebbi91] #280911
07/24/09 16:24
07/24/09 16:24
Joined: Sep 2006
Posts: 99
BS, Germany
Storm_Mortis Offline
Junior Member
Storm_Mortis  Offline
Junior Member

Joined: Sep 2006
Posts: 99
BS, Germany
hi,
also zum einen würde ich dir empfehlen nur Ober- und Unterterkörper seperat zu animieren, sonst sieht das sehr unnatürlich aus.
Du weist sicher ... aufgerichteter "stehender" brustkorb, kniehende beine und waffe aufheben ... sztock im hintern und so^^
besser also eine aufheb anim ation für den gesammten oberkörper.

zum 2. - ich weiß nicht wie dein modell und die animationen aussehen, aber du musst in jedem fall darauf achten das wenn du einen teil des körpers per addition animieren möchtest, das alles andere in der ausgangsstellung ist und bleibt.

bei addierung werden ja alle winkel und posiotionen addiert. und zwar zum jetzigen wert.

wenn du alles so gemacht hast, sei bitte nicht beleidigt, dachte nur besser es zu erwähnen falls es nicht so sein sollte wink

ansonsten probiere mal das bone "resetten" fals du das noch nicht probiertest, gugg einfach ins handbuch für einzelheiten.

hoffe dir hilft irgendwas hiervon^^

Last edited by Storm_Mortis; 07/24/09 16:25.

it found a voice ... now it needs a body
Re: bone animation [Re: Storm_Mortis] #281080
07/25/09 12:22
07/25/09 12:22
Joined: Jun 2008
Posts: 402
Germany
S
sebbi91 Offline OP
Senior Member
sebbi91  Offline OP
Senior Member
S

Joined: Jun 2008
Posts: 402
Germany
Keine Angst ich bin nicht beleidigt ^^

Allerdings ist es genau so wie du geschrieben hast!
Ich erklär es jetzt mal ganz genau auf deutsch(bin nicht so gut in englisch)

Also
Ich habe einen Spieler welcher standartmäßig 2 Animationen abspielt!
"Stand" und "walk"
bei der stand animation wird nur der Brustkorb animiert und bei der walkanimation nur die Beine!
Genau wie du gesagt hast, damit es natürlicher aussieht ^^

so!weiter gehts!

Mein Spieler besteht aus nur einem Modell und deswegen muss ich Arme,Kopf und Beine einzeln animieren was ich mit bone animationen und Bone rotate mache!
Früher hatte ich seperate Modelle welche ich dann einzeln ansteuern konnte!

Heute benutze ich wegen dem Realismus und besseren aussehen das Bone manipulationsprinzip!

In meinem Spiel kann der Spieler sich entscheiden welche Waffe er in welche Hand nimmt, so wie damals in Halo2 für die Xbox!
daher muss auch beim aufheben jeder Arm einzeln animiert werden was ich mit ANM_ADD mache!
Dabei wird NUR der Arm bewegt Brustkorb Kopf und Beine bleiben unverändert animiert!


wenn der Spieler nun die Waffe aus dem holster nimmt animiert er logischerweise ja nur den linken arm da er sie ja auch mit der linken Hand eingesteckt hat!

Wie bereits erwähnt funktioniert dieses Prinzip relativ gut!

Nun kommt das Problem!
Hat der Spieler allerdings 2 Waffen aufgesammelt muss er ja logischerweise den linken arm via ANM_ADD und den rechten Arm via ANM_ADD animieren, damit beide Arme sich die für sie bestimmten waffen holen!

Und da scheint mein Script einen Fehler zu haben!
Denn erst wenn ich beide Arme gleichzeitig animiere verdrehen sich beide Arme komisch!

der Befehl Bone_reset (welcher bei der einmaligen animation notwendig war) zeigte hier allerding keine besonders große wirkung!

Meine Frage an alle die jetzt mitgelesen haben:
hat jemand irgendein funktionierendes Script wo:
-eine Basisanimation abegspielt wird
-und 2 Zusatzanimtionen ZEITGLEICH hinzugefügt werden!

oder kann jemand helfen mein Script zu korrigieren!
Hier eine ausführlichere Variante aus meinem Script
Quote:


function interactionssystem_p2()
{
///////////////////////////////////////////////////////////////
// define the Interactionsrange
....
//add here a Interactionssystem(weappickup,Objekt pickup)


///ANIMATE Weapon take
////////////////////////
//CALL HERE THE WEAP TAKE [ONE-HAND-WEAPONS]
////////////////////////


//left1
if(slot_active_p2==1&&slotchange_var_p2==1&&slot1_lefthand_used_p2==1&&slot1_righthand_used_p2==0)
{
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later

//TAKE
//NOTE: PICKUP adn Take animation is the same
if(take_left_anim<100)
{
ent_animate(my,"t_leftehw_h",take_left_anim, ANM_ADD); // animiere das Modell (benutze "turn")
take_left_anim+=8*time_step;
}
if(take_left_anim>=100)
{
//BUG-Line
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later
//
take_left_anim=100;
position_slot1_leftweap_p2=1;
ent_animate(my,"h_leftehw",1, ANM_ADD); // animiere das Modell (benutze "turn")
}
if(arm_left_angle_p2.tilt!=camera2.tilt&&take_left_anim==100)//&&take_ehw_anim >=80
{
ent_bonerotate(my,"arm_up_left",arm_left_angle_p2);
arm_left_angle_p2.tilt+=30*time_step;
}
if(arm_left_angle_p2.tilt>=camera2.tilt+80&&take_left_anim==100)//&&take_ehw_anim >=80
{
arm_left_angle_p2.tilt=camera2.tilt+80;
}
}
//PUTAWAY
/////////
if(slot_active_p2==0&&slotchange_var_p2==1&&slot1_lefthand_used_p2==1&&slot1_righthand_used_p2==0&&take_left_anim>0)
{
if(arm_left_angle_p2.tilt>=0)
{
ent_bonerotate(my,"arm_up_left",arm_left_angle_p2);
arm_left_angle_p2.tilt-=30*time_step;
}
if(arm_left_angle_p2.tilt<=0)//animate th take proces with tilt°
{
arm_left_angle_p2.tilt=0;
//animate_put_ehw=0;
}

if(take_left_anim>0&&arm_left_angle_p2.tilt<=0)
{
ent_bonereset_branch(my,"arm_up_right");//delete this entry later
ent_bonereset_branch(my,"arm_up_left");
ent_animate(my,"t_leftehw_h",take_left_anim, ANM_ADD); // animiere das Modell (benutze "turn")
take_left_anim-=8*time_step;
}
if(take_left_anim<=33.33)
{
position_slot1_leftweap_p2=2;
}
if(take_left_anim<=0 && arm_left_angle_p2.tilt==0)
{
take_left_anim=0;
position_slot1_leftweap_p2=2;
}
}



///////////////////////////////////////////////////////////////
//right1
if(slot_active_p2==1&&slotchange_var_p2==1&&slot1_righthand_used_p2==1&&slot1_lefthand_used_p2==0)
{
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later


//TAKE
//NOTE: PICKUP adn Take animation is the same
if(take_right_anim<100)
{
ent_animate(my,"t_rightehw_h",take_right_anim, ANM_ADD); // animiere das Modell (benutze "turn")
take_right_anim+=8*time_step;
}
if(take_right_anim>=100)
{
//BUG-Line
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later


//
take_right_anim=100;
position_slot1_rightweap_p2=1;
ent_animate(my,"h_rightehw",1, ANM_ADD); // animiere das Modell (benutze "turn")
}
if(arm_right_angle_p2.tilt!=camera2.tilt&&take_right_anim==100)//&&take_ehw_anim >=80
{
ent_bonerotate(my,"arm_up_right",arm_right_angle_p2);
arm_right_angle_p2.tilt+=30*time_step;
}
if(arm_right_angle_p2.tilt>=camera2.tilt+80&&take_right_anim==100)//&&take_ehw_anim >=80
{
arm_right_angle_p2.tilt=camera2.tilt+80;
}
}
//PUTAWAY
/////////
if(slot_active_p2==0&&slotchange_var_p2==1&&slot1_righthand_used_p2==1&&take_right_anim>0&&slot1_lefthand_used_p2==0)
{
if(arm_right_angle_p2.tilt>=0)
{
ent_bonerotate(my,"arm_up_right",arm_right_angle_p2);
arm_right_angle_p2.tilt-=30*time_step;
}
if(arm_right_angle_p2.tilt<=0)//animate th take proces with tilt°
{
arm_right_angle_p2.tilt=0;
//animate_put_ehw=0;
}

if(take_right_anim>0&&arm_right_angle_p2.tilt<=0)
{
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later


ent_animate(my,"t_rightehw_h",take_right_anim, ANM_ADD); // animiere das Modell (benutze "turn")
take_right_anim-=8*time_step;
}
if(take_right_anim<=33.33)
{
position_slot1_rightweap_p2=2;
}
if(take_right_anim<=0 && arm_right_angle_p2.tilt==0)
{
take_right_anim=0;
position_slot1_rightweap_p2=2;
}
}

//HERE IS IT HTE PROBLEM KOMBINATION
///////////////////////////////////////////////////////////////

//left1 &right1
if(slot_active_p2==1&&slotchange_var_p2==1&&slot1_lefthand_used_p2==1&&slot1_righthand_used_p2==1)
{
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");

//TAKE
//NOTE: PICKUP and Take animation is the same
if(take_left_anim<100)
{
ent_animate(my,"t_leftehw_h",take_left_anim, ANM_ADD);
ent_animate(my,"t_rightehw_h",take_left_anim, ANM_ADD);
take_left_anim+=8*time_step;
}
if(take_left_anim>=100)
{
//BUG-Line
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later
//
take_left_anim=100;
position_slot1_leftweap_p2=1;
position_slot1_rightweap_p2=1;
ent_animate(my,"h_leftehw",1, ANM_ADD); // animiere das Modell (benutze "turn")
ent_animate(my,"h_rightehw",1, ANM_ADD); // animiere das Modell (benutze "turn")
}
if(arm_left_angle_p2.tilt!=camera2.tilt&&take_left_anim==100)//&&take_ehw_anim >=80
{
ent_bonerotate(my,"arm_up_left",arm_left_angle_p2);
arm_left_angle_p2.tilt+=30*time_step;
}
if(arm_left_angle_p2.tilt>=camera2.tilt+80&&take_left_anim==100)//&&take_ehw_anim >=80
{
arm_left_angle_p2.tilt=camera2.tilt+80;
}

//right angles
if(arm_right_angle_p2.tilt!=camera2.tilt&&take_left_anim==100)//&&take_ehw_anim >=80
{
ent_bonerotate(my,"arm_up_right",arm_right_angle_p2);
arm_right_angle_p2.tilt+=30*time_step;
}
if(arm_right_angle_p2.tilt>=camera2.tilt+80&&take_left_anim==100)//&&take_ehw_anim >=80
{
arm_right_angle_p2.tilt=camera2.tilt+80;
}
}
//PUTAWAY
/////////
if(slot_active_p2==0&&slotchange_var_p2==1&&slot1_lefthand_used_p2==1&&slot1_righthand_used_p2==1&&take_left_anim>0)
{
if(arm_left_angle_p2.tilt>=0&&arm_right_angle_p2.tilt>=0)
{
arm_left_angle_p2.tilt-=30*time_step;
arm_right_angle_p2.tilt-=30*time_step;
ent_bonerotate(my,"arm_up_left",arm_left_angle_p2);
ent_bonerotate(my,"arm_up_right",arm_right_angle_p2);
}
if(arm_left_angle_p2.tilt<=0&&arm_right_angle_p2.tilt<=0)//animate th take proces with tilt°
{
arm_left_angle_p2.tilt=0;
arm_right_angle_p2.tilt=0;
}

if(take_left_anim>0&&arm_left_angle_p2.tilt<=0)
{
ent_bonereset_branch(my,"arm_up_left");
ent_bonereset_branch(my,"arm_up_right");//delete this entry later

ent_animate(my,"t_leftehw_h",take_left_anim, ANM_ADD); // animiere das Modell (benutze "turn")
ent_animate(my,"t_rightehw_h",take_left_anim, ANM_ADD); // animiere das Modell (benutze "turn")
take_left_anim-=8*time_step;
}

if(take_left_anim<=33.33)
{
position_slot1_leftweap_p2=2;
position_slot1_rightweap_p2=2;
}
if(take_left_anim<=0 && arm_left_angle_p2.tilt==0 && arm_right_angle_p2.tilt==0)
{
take_left_anim=0;
position_slot1_leftweap_p2=2;
position_slot1_rightweap_p2=2;
}

}


//add her the weapons postions, it means
//position_slot1_leftweap_p2=1 //weapon is in the Hand
//position_slot1_leftweap_p2=2 //weapon is in the Holster
}



//some other arguments and functions
....


action player2()
{
p2=me;
my.scale_x=0.09;
my.scale_y=0.09;
my.scale_z=0.09;

set(my,POLYGON|CAST);
my.emask|=ENABLE_SHOOT|ENABLE_BLOCK|ENABLE_IMPACT|ENABLE_ENTITY;
vec_for_bone(head_angle_p2,my,"head");//set an ANGLE for the Head rotation
vec_for_bone(breast_angle_p2,my,"breast");//set an ANGLE for the Head rotation

camera2.pan=0;
camera2.tilt=0;
camera2.roll=0;
my.push=5;
my.health =100;
my.stamina =100;
my.fat =0;
my.force =1;
my.muscles =1;
my.jumphigh = 39;
my.ground=1;

var jump_possible=0;//allow only to jump if the player stands on the ground
var jumpcounter=0;//count the high the player is jumped
var jump_block=0;//the player has to wait a moment
var power_jump=4; //if the Player walks he could jump higher

draw_textmode("arial",1,15,100); //This sets the text messagesgind of Player2
while(p2.health>0)
{
health_p2=my.health; //calculate my.skills to vars for digits and outcast functions
ground_p2=my.ground;
///////////////////////////////////////////////////////////////
// DEFINES the Movement first
///////////////////////////////////////////////////////////////
human_gravity();

if((key_enter==1&&my.ground==1&&jump_block==0)||(jump_possible==1))//selvholding
{
jump_possible=1;
}

if(jump_possible==1&&jumpcounter<=my.jumphigh)
{
jumpcounter+=power_jump;
jump_block=50;
my.distanz_z=3*time_step;

if(key_cuu)
{
power_jump=2.75;
my.distanz_x=8*(key_cuu)*time_step;
}
else{power_jump=4;}
}
else
{
jump_possible=0;
jumpcounter=0;
my.distanz_x=5*(key_cuu-key_cud)*time_step;
my.distanz_y=5*(key_cul-key_cur)*time_step;
my.distanz_z=time_step*my.force_z;
jump_block-=1;
if(jump_block<=0)
{
jump_block=0;
}
}

distanz_p2.x=my.distanz_x;
distanz_p2.y=my.distanz_y;
distanz_p2.z=my.distanz_z;
c_move(my,distanz_p2,nullvector,IGNORE_PASSABLE|IGNORE_PUSH |GLIDE);

///////////////////////////////////////////////////////////////
// DEFINES the Animations
///////////////////////////////////////////////////////////////
//important-first animate the body and the legs before //animating the head or the arms

if(key_cuu-key_cud)
{
ent_animate(my, NULL, 0, 0);
walkanim_p2 += 6 * time_step;
ent_animate(my, "walk", walkanim_p2, ANM_CYCLE);
}
else
{
ent_animate(my, NULL, 0, 0);
standanim_p2 += 1 * time_step;
ent_animate(my, "stand ", standanim_p2, ANM_CYCLE);
}
if(key_cul-key_cur)
{
ent_animate(my, NULL, 0, 0);
walkanim_p2 += 6 * time_step;
ent_animate(my, "walk", walkanim_p2, ANM_CYCLE); /
}

if(key_e==1)
{
ent_bonereset_branch(my,"arm_up_left"); ent_bonereset_branch(my,"arm_up_right");
pushanim_p2 +=6 *time_step;
ent_animate(my, "punch", pushanim_p2, ANM_ADD);
}
if(!key_e)
{
pushanim_p2=0;
}


///////////////////////////////////////////////////////////////
// DEFINES the Angles
///////////////////////////////////////////////////////////////



camera2.pan-=8*(mouse_force.x)*time_step;
camera2.tilt+=8*(mouse_force.y)*time_step;
p2.pan=camera2.pan;
head_angle_p2.roll=0;
head_angle_p2.pan=0;
head_angle_p2.tilt=camera2.tilt;
ent_bonereset(my,"Head");
ent_bonerotate(my,"Head",head_angle_p2);


if(camera2.tilt>=90)
{
camera2.tilt=90;
} //The Player shouldn't see behind him self
if(camera2.tilt<=-81)
{
camera2.tilt=-81;
}//The Player shouldn't see through him self


//IMPORTANT Add all other Definitions and Funktions (Weapons) AFTER the Movement
//because the Weapons need an aktually Position to set

//This functions are for Salvemode,Automatic,halfautomatik
if(mouse_left==1) { lefthand_firemode_p2+=1; lefthand_firemode_p2 = maxv(lefthand_firemode_p2,0); }
if(mouse_left==0) { lefthand_firemode_p2=1; }
if(mouse_right==1) { righthand_firemode_p2+=1; righthand_firemode_p2 = maxv(righthand_firemode_p2,0); }
if(mouse_right==0) { righthand_firemode_p2=1;}

interactionssystem_p2();
vec_for_vertex(camera2.x,p2,735);

wait(1);
}
}


Sorry für den Aufsatz aber ich hoffe das es etwas gebracht hat und mir jemand helfen kann wenn ich mein Problem besser schildere!

Ich persönlich glaube es liegt am Script und nicht die Animation!

Danke schon mal für die Hilfe ^^

Last edited by sebbi91; 07/25/09 12:56.

3D-Gamestudio A8 - Commercial
Re: bone animation [Re: sebbi91] #281082
07/25/09 12:42
07/25/09 12:42
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
hopfel Offline
User
hopfel  Offline
User

Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
Setz irgentwo vor den Animations-anweisungen folgendes:

ent_animate("deinframe",NULL,ANM_CYCLE);

ANM_ADD funktioniert nur, wenn bereits eine Animation vorhanden ist.


Hilf mir, dir zu helfen!
Re: bone animation [Re: hopfel] #281084
07/25/09 12:46
07/25/09 12:46
Joined: Jun 2008
Posts: 402
Germany
S
sebbi91 Offline OP
Senior Member
sebbi91  Offline OP
Senior Member
S

Joined: Jun 2008
Posts: 402
Germany
ist es noch!
Schau mal unter Player2()
da ist ein grün markiertes stück script das sind die Grundanimationen von den ich rede und weiter unten wird via interactionssystem_p2(); die zusatzanimationen eingebunden (rot markiert)

Also eine Grundanimation besteht auf jeden Fall! (denk ich)

Trotzdem danke für dein Versuch^^


3D-Gamestudio A8 - Commercial
Re: bone animation [Re: sebbi91] #281087
07/25/09 13:05
07/25/09 13:05
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
hopfel Offline
User
hopfel  Offline
User

Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
Schreib trotzdem mal für jede Animation die eine Zeile am anfang von der Funktion interactionssystem_p2(). Dann kannst du zumindest sicher sein, dass auch wirklich nichts vergessen hast smile


Hilf mir, dir zu helfen!
Re: bone animation [Re: hopfel] #281088
07/25/09 13:13
07/25/09 13:13
Joined: Jun 2008
Posts: 402
Germany
S
sebbi91 Offline OP
Senior Member
sebbi91  Offline OP
Senior Member
S

Joined: Jun 2008
Posts: 402
Germany
sorry aber macht keinen großen Unterschied!


3D-Gamestudio A8 - Commercial
Re: bone animation [Re: sebbi91] #281103
07/25/09 15:12
07/25/09 15:12
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
hopfel Offline
User
hopfel  Offline
User

Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
Dann weist du jetzt, dass es bestimmt nicht daran liegt ^^ verdreht hat es sich bei mir bis jetzt immer nur wegen dem... Kann dir also nicht weiterhelfen frown


Hilf mir, dir zu helfen!
Re: bone animation [Re: hopfel] #281112
07/25/09 15:46
07/25/09 15:46
Joined: Sep 2006
Posts: 99
BS, Germany
Storm_Mortis Offline
Junior Member
Storm_Mortis  Offline
Junior Member

Joined: Sep 2006
Posts: 99
BS, Germany
alos ich hatte soetwas mal, hatte oberkörper, unterkorper und dann noch einzelne kleine anims dazuaddiert. aber ic hhabe kein plan wo ich das habe, ist eh wenn auf meinem gerade grafikkarte losem rechner -.-

aber bei mir tats super, mein char konnte halt beim laufen oder schlagen noch was sagen mit gedsichtsanimationen die per anm_add gemacht waren...

sollte ich es noch aufem notebook haben, lasse ich es dir zukommen, aber ich glaube hier ist es nicht...

und sry, zeit deinen code zu korigieren habe ich leider nicht...


it found a voice ... now it needs a body
Page 2 of 4 1 2 3 4

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

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

Powered by UBB.threads™ PHP Forum Software 7.7.1