Page 1 of 1

Help with assembling animations [solved :D]

Posted: Tue Jan 27, 2009 6:26 pm
by MileHighGuy
well i made a new character so i thought hey ill make custom animation for him! so i put a bunch of other characters anims together and munged it,and i got the files, no errors,and my map didnt crash. but when i played as my character he had luke's anims the default ones.(i specified the new animations via odf also)

here's a download link to see what i did> no need fixed

im thinking he needs combo files, is that so?
if its true then i have no idea how to make those.

thanks

Edit: tested anims on the royal guard

Re: Help with assembling animations

Posted: Tue Jan 27, 2009 6:46 pm
by Fiodis
If he has a saber, he will need a COMBO. Look through them, you might be able to just put bits and pieces together, although I really know nothing about COMBO creation.

Re: Help with assembling animations

Posted: Tue Jan 27, 2009 6:48 pm
by MileHighGuy
anbody know where a tutorial on combo creation is? :?

Re: Help with assembling animations

Posted: Tue Jan 27, 2009 7:04 pm
by Fiodis
The Jedi Creation doc.

Re: Help with assembling animations

Posted: Tue Jan 27, 2009 7:05 pm
by Frisbeetarian
BF2 Jedi Creation.doc

Re: Help with assembling animations

Posted: Tue Jan 27, 2009 7:17 pm
by Maveritchell
You'll find more help and more in-depth information if you look at "combo.txt" in the docs as well. Additionally, I think a tutorial was written up on GT; always be sure to check the "Everything you need" thread before posting a "help" topic.

Re: Help with assembling animations

Posted: Wed Jan 28, 2009 8:49 pm
by MileHighGuy
well i read a guide and changed the animations name and combo file but it crashes still and since i have the dvd version and cannot get an error log, so could someone download the source file and see what is wrong? i updated the link in the first post

thanks

ill post my combo file and screenshots if youd like

Re: Help with assembling animations

Posted: Wed Jan 28, 2009 9:00 pm
by Fiodis

Re: Help with assembling animations

Posted: Wed Jan 28, 2009 9:35 pm
by MileHighGuy
combo
Hidden/Spoiler:
OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");

Animation("stand_attack1a_end");
Animation("stand_attack1b");
Animation("stand_attack1a_upper")
{
AimType("None");
BlendInTime(0.0);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1a_end", 0.0);
BlendTimeTo("stand_attack1b", 0.0);
}
Animation("stand_attack1a_lower")
{
BlendInTime(0.15);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1a_end", 0.0);
BlendTimeTo("stand_attack1b", 0.0);
}
ThrowAnimation("stand_throw");

State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}

InputLock("All", "!Thrust");
AlignedToThrust();
}

State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");

Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
Transition("BACK_ATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Fire", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Fire", "Press");
}
}
Transition("DASHATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("Fire", "Press");
}
}
Transition("JUMPATTACK_FALL")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Jump", "Jet");
//The following should be true during a jetjump, jump, or fall
// unless we're more than 0.35 seconds from the apex
//NOTE: This may not allow luke to jump attack during longer falls
// or falling from a force jump when it could.
//VelocityY(">", -6.3);
Button("Fire", "Press");
}
}
}

State("DEFLECT")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}

Duration(0.0); // infinite duration, looping anim

InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);

DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}

Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
Button("Reload", "Press");
}
}
}

State("DEFLECT_JUMP")
{
Posture("Jump");

MustShowOneFrame();

Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}

State("DEFLECT_CROUCH")
{
Posture("Crouch");

MustShowOneFrame();

Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}

State("DEFLECT_ROLL")
{
Posture("Roll");

MustShowOneFrame();

Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}

State("DEFLECT_SPRINT")
{
Posture("Sprint");

MustShowOneFrame();

Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}

State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.3);
}

Sound("saber_swing");

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}

Attack()
{
DamageTime(13, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}

Transition("IDLE");
}

//Forward declare animations to allow BlendTimeTo references:
Animation("stand_nazattack1b_end");
Animation("stand_nazattack1c");

State("ATTACK1")
{
Posture("Stand");
Animation("stand_nazattack1a");
Sound("saber_swing");

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(2, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}

Transition("ATTACK2")
{
If()
{
Break(10, "Frames");
TimeStart(5, "Frames");
TimeEnd(16, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}

State("RECOVER1")
{
Posture("Stand");
Animation("stand_nazattack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("ATTACK2")
{
Posture("Stand");
Animation("stand_nazattack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_nazattack1b_end", 0.0);
BlendTimeTo("stand_nazattack1c", 0.0);
}
Sound("saber_swing");

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(3, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}

Transition("ATTACK3")
{
If()
{
Break(10, "Frames");
TimeStart(6, "Frames");
TimeEnd(16, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}

State("RECOVER2")
{
Posture("Stand");
Animation("stand_nazattack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("ATTACK3")
{
Posture("Stand");
Animation("stand_nazattack1c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three");

//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(0.0);
// VelocityX(0.0);
// VelocityFromThrust(8.0);
// VelocityFromStrafe(3.0);
// }
AlignedToThrust("Initial");

// StrafeFactor(0.5);
// TurnFactor(0.5);

InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(6, 23, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}

Transition("RECOVER3");
}

State("RECOVER3")
{
Posture("Stand");
Animation("stand_nazattack1c");

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("DASHATTACK")
{
Posture("Stand");
Animation("stand_nazdashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");

Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(2.0);
}

Duration(25, "Frames");
AnimatedMove()
{
VelocityZ(16.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(5.0);
}
TurnFactor(0.6);

InputLock("All", "!Thrust");
Attack()
{
AttacKID("dashattack");
DamageTime(2, 45, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(5.0);
}

// Transition("DASHATTACK2")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.05, "FromEnd"); //, "SyncIfOvertime");
// Button("Fire", "Press");
// }
// }
Transition("DASHATTACK2");
}

State("DASHATTACK2")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_double");

AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(2.0);
If()
{
Break(40, "Frames");
}
}
TurnFactor(0.6);

InputLock("All", "!Thrust");
Attack()
{
AttacKID("dashattack");
DamageTime(2, 45, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(5.0);
}

Transition("IDLE");
}

// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");

State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("nazjumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("nazjumpattack_land", 0.15);
}
Sound("saber_swing", 3, "Frames");

Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state

Attack()
{
AttackId("JUMPATTACK");
DamageTime(0.33, 1.0, "FromAnim");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}

Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}

State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("nazjumpattack_land", 0.15);
}

Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state

Attack()
{
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}

Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}

State("JUMPATTACK_LAND")
{
Posture("Stand");

Animation("nazjumpattack_land")
{
AimType("FullBody");
SyncType("nazjumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}

AnimatedMove();
InputLock("All");

Attack()
{
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(.75);
Damage(800);
Push(4.0);
}

Transition("IDLE")
{
If()
{
Break(0.4);
ButtonsPressed("Any");
}
Or()
{
Break(0.4);
Thrust(">", 0.54);
}
}
}

bf2log
Hidden/Spoiler:
Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_nazattack1b_end(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_nazattack1c(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_nazattack1a(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_nazattack1a_end(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_nazattack1b(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_nazdashattack(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_nazjumpattack_fall(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_nazjumpattack_land(_upper)

Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_stand_nazattack1b_end(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_stand_nazattack1c(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_stand_nazattack1a(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_stand_nazattack1a_end(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_stand_nazattack1b(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_stand_nazdashattack(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_nazjumpattack_fall(_upper)


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation nazgul_sabre_nazjumpattack_land(_upper)


Message Severity: 3
C:\Battlefront2\main\RedEngineFL\Graphics\PC\Shaders\pcTerrainShader.cpp(180)
pcTerrainShader: detail texture expects L8 format!


Message Severity: 3
C:\Battlefront2\main\RedEngineFL\Graphics\Pc\Shaders\pcTerrainShader2.cpp(293)
TerrainShader_: detail texture expects L8 format!
i thought you got lukes anims if you didnt have the ones the combo calls for

ill post a screenshot of my nazgul anim folder if anybody wants

Re: Help with assembling animations

Posted: Thu Jan 29, 2009 6:24 am
by DarthD.U.C.K.
and you called your anims exactly like in the combo file?

its better if you just rename the part in front of the anim like naz_stand_dashattack
maybe this causes the crash, battlefront can be very nitpicky with names

and you will have to edit the combo, if you want to use anims fro different guys, mace would make his groundcrack in midair as examnple if you gave him mauls combo..

Re: Help with assembling animations

Posted: Thu Jan 29, 2009 6:46 pm
by MileHighGuy
yes i have all the files you see that have naz in them an example of one of the renamed anims would be animations are nazgul_sabre_stand_nazattack1a_end but i dond have any files ending with _over do i have to specify the _full at the end of the name?

and when i didnt edit the main name it stayed with lukes animations (i think)

Re: Help with assembling animations

Posted: Thu Jan 29, 2009 6:48 pm
by Fiodis
animation human_sabre_stand_nazattack1c(_upper) could be a problem if you renamed them all.


EDIT - Oh wait...nvm.

Re: Help with assembling animations

Posted: Thu Jan 29, 2009 6:55 pm
by MileHighGuy
i renamed human(or obiwan/vader/dooku) to nazgul in all of m animations as well as putting a naz in front of the attack name.

so.. that wouldnt be a problem?

Re: Help with assembling animations

Posted: Fri Jan 30, 2009 6:27 am
by DarthD.U.C.K.
remove the naz in fron of the attack
and keep the appropriated endings of the anims
_emote means that the anim only affect the upper body (not 100% shure)
_full means that it affects the full body

Re: Help with assembling animations

Posted: Fri Jan 30, 2009 4:12 pm
by Fiodis
Eh, take the ones that the log is complaining about and put them in your animations folder, then munge those anims in with the rest. See what happens.

But do what DarthD.U.C.K. says first.

Re: Help with assembling animations

Posted: Sat Jan 31, 2009 11:53 pm
by MileHighGuy
remove the naz in fron of the attack
i did this and it worked!!

thank you!!

:bowdown: :) :D