Custom Walker Walkthrough? [Solved]

How to create models in XSI and other 3D applications and make them work in Battlefront 1 & 2. Post models, tips for application usage and share anything XSI, 3DMax, SketchUp, etc.

Moderator: Moderators

Post Reply
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Custom Walker Walkthrough? [Solved]

Post by jedimoose32 »

Hi everyone,

I'm trying to figure out adding a new walker into the game (custom skeleton and everything) and I don't really understand what all is required and what the information pipeline looks like in-engine (e.g. which odf parameters control which movements, etc).

Here's what I know so far:
1. Build a skeleton.
2. There are modular animations for each "step", e.g. idle_to_left, left_to_right, death, etc.
3. Legs and bones are defined in the .odf file.
4. ???
5. Functioning walker!

My walker has 6 legs. Oddly enough when I look at the AT-TE .odf file there only seem to be two leg pairs defined there... what?
So I know I'm missing quite a bit of information. For instance I don't even know how to decipher the WalkerStateTable and what it's supposed to mean for my animations.

What am I missing? I know others have made custom walkers... how is it done?
Last edited by jedimoose32 on Thu Feb 25, 2016 2:32 am, edited 1 time in total.
User avatar
giftheck
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2218
Joined: Mon Jan 19, 2009 5:58 pm
Projects :: Star Wars Battlefront Anniversary

Re: Custom Walker Walkthrough?

Post by giftheck »

As somebody who would love to recreate an AT-MP I would like to know too.
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough?

Post by jedimoose32 »

So I got my walker in-game, but the animations are really messed up, and it won't move at all. If I try to move it will loop the idle_to_left animation but the walker won't go anywhere and the animation never transitions to walk_leftfoot_rightfoot.
Here's the .odf:
Hidden/Spoiler:
[code]
[GameObjectClass]
ClassLabel = "walker"
GeometryName = "yuv_walk_firebreather.msh"

[Properties]

WALKERSECTION = "BODY"

VehicleType = "heavy"
AISizeType = "Huge"
NoCombatInterrupt = "1"
ReserveOneForPlayer = "0"

CockpitTension = 15
//ForceMode = "2"
EyePointOffset = "0.0 4.0 8.0"

DeathDustEffect = ""
DeathDustDelay = "5.1"
DeathDustOffset = "0.0 0.0 0.0"

MapTexture = "atte_icon"
HealthTexture = "HUD_rep_atte_icon"
VehiclePosition = "common.vehiclepositions.pilot"
MapScale = "2.2"

GeometryName = "yuv_walk_firebreather"
AnimationName = "firebreather"
//FirstPerson = "REP\repatted;rep_1st_cockpit_ATTE"
FirstPersonFOV = "43"
ThirdPersonFOV = "60"
MaxHealth = "40000.0"
Healthtype = "vehicle"
//HitLocation = "p_crithit 4.0"



//ExplosionCritical = "rep_walk_atte_exp"
ExplosionDestruct = ""
ExplosionName = ""
ExplosionOffset = "0.0 0.0 0.0"
DeathAnimationExplosion = ""
DeathAnimationExplosionTime = "1.5"
FinalExplosion = ""
FinalExplosionOffset = "0.0 0.0 0.0"

// PILOT CONTROLS

PitchRate = "0.75"
PitchFilter = "3.75"

SteerAtYawLimit = "1"
SteerAtStrafeLimit = "0"
CorrectAimForSteering = "1"
SteerTowardAimFactor = "0.0"
ReverseBackwardSteering = "1" //steer in reverse like a car - ThrustAngleToStrafe works more intuitively this way
ThrustAngleToStrafe = "87" //should match yaw limit or 0.0
ThrustAngleToTurn = "88" //thrust angle to reach full forward turn speed
ThrustAngleToStop = "89" //thrust angle to turn in place

Acceleraton = "4.5"

MaxSpeed = "6.5"
MaxStrafeSpeed = "5.5"
MaxTurnSpeed = "2.0"


PCPitchRate = 15.0
PCSpinRate = 15.0
PCTurnRate = 25.0

StoppedTurnSpeed = "0.13"
ForwardTurnSpeed = "0.13"
TurnThreshold = "0.35"

TrackCenter = "0.0 11.0 0.0"
TrackOffset = "0.0 -3.0 20.0"
TiltValue = "10"
AimValue = "0.8"
AutoAimYLimits = "-0.9 0.9"


PitchRate = "0.75"
//PitchFilter = "3.75"
TurnRate = "1.25"
//TurnFilter = "3.75"

StompEffect = "com_sfx_walkerstomp"



WalkerOrientRoll = "1"
LegRayHitLength = "5.0"
WalkerWidth = "5.0"

LegPairCount = "2"

WalkerLegPair = "front_legs"

LegBoneLeft = "bone_lfront2"
LegBoneRight = "bone_rfront2"

LegBoneTopLeft = "bone_lfront1"
LegBoneTopRight = "bone_rfront1"

TerrainLeft = "p_-bt-lf_foot"
TerrainRight = "p_-bt-rf_foot"

FootBoneLeft = "bone_lfront3"
FootBoneRight = "bone_rfront3"

WalkerLegPair = "back_legs"

LegBoneLeft = "bone_lrear2"
LegBoneRight = "bone_rrear2"

LegBoneTopLeft = "bone_lrear1"
LegBoneTopRight = "bone_rrear1"

TerrainLeft = "p_-bt-lr_foot"
TerrainRight = "p_-bt-rr_foot"

FootBoneLeft = "bone_lrear3"
FootBoneRight = "bone_rrear3"


//PassengerSlots = "4"
//PassengerEyePoint = "hp_passenger"
//EyePointOffset = "5.0 3.0 -10.0"

VOUnitType = 127
StompDetectionType = "1"
FootstepSound0 = "com_weap_layered_at_step"
FootstepSound1 = "com_weap_layered_at_step"
FootstepSound4 = "com_weap_layered_at_step"
FootstepSound5 = "com_weap_layered_at_step"
//HydraulicSound = "walkerservo"
//HydraulicSoundHeight = "0.5"
DeathSound = "imp_weap_ord_exp_lg"
VehicleCollisionSound ="com_veh_collision_lg"
CISMusic ="cis_vehicle"
RepMusic ="rep_vehicle"
MusicSpeed = "0.3"
MusicDelay = "3.0"


FoleyFXGroup = "metal_foley"
[/code]
ForceMaster
Lieutenant General
Lieutenant General
Posts: 737
Joined: Fri Aug 08, 2008 11:27 pm
Projects :: Tron The Grid
Games I'm Playing :: The best..SWBFII
xbox live or psn: No gamertag set
Location: C:\Program Files\ForceMaster\Bin\ForceMaster.exe

Re: Custom Walker Walkthrough?

Post by ForceMaster »

In my experience, that process follow this steps:

1) Make your model mesh with collisions, lowrez geometry and shadowvolume, all that you need.
2) Rig your model to bones, (nulls may work better than bones, so you can make a hierachy for it)
3) Animate your model with thse basics movements: idle, idle_to_left_foot ....all.
4) Export your anims(You need hide or get out your model geometry and set the first an last frame in the timeline, the select and export only the bones)
5) Munge a new anims set for your walker
6) Set the values for the bones (nulls) names in the .odf file
7) Get it ingame, the whole process of add a vehicle ingame

If you like, take a look at my AT-OT's odf to get an idea to how configure a more to 6 legs walker :wink:
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough?

Post by jedimoose32 »

ForceMaster wrote:6) Set the values for the bones (nulls) names in the .odf file
Nulls? I used regular bones for my skeleton and put the names of the bones in the .odf. Should I be adding nulls into the model as well? Currently I have chains that look like this:
root_lfront > bone_lfront1 > bone_lfront2 > bone_lfront3 > eff_lfront
ForceMaster
Lieutenant General
Lieutenant General
Posts: 737
Joined: Fri Aug 08, 2008 11:27 pm
Projects :: Tron The Grid
Games I'm Playing :: The best..SWBFII
xbox live or psn: No gamertag set
Location: C:\Program Files\ForceMaster\Bin\ForceMaster.exe

Re: Custom Walker Walkthrough?

Post by ForceMaster »

jedimoose32 wrote:Nulls? I used regular bones for my skeleton and put the names of the bones in the .odf. Should I be adding nulls into the model as well?
:yes: Every walker that I've made have nulls instead a regular bones, the exporting process is better with it.

In the AT-OT every leg have 2 bones (nulls), in the Tri-droid have 4 for each one, all in one hierachy

If you like some effect like the movement with effector in a regular bone chain you may need add some constraints to these nulls.
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough?

Post by jedimoose32 »

I think I found a problem in the bone hierarchy in my basepose that could be causing the problem. I fixed the issue in my other animations but must have forgotten to fix it elsewhere. I will check to see if that helps.

Other than that, I was wondering what the significance of the WalkerLegPairs are. Can I add as many pairs as I want or is the maximum 2? And what do they accomplish? Do they determine which legs collide with the ground?
ForceMaster
Lieutenant General
Lieutenant General
Posts: 737
Joined: Fri Aug 08, 2008 11:27 pm
Projects :: Tron The Grid
Games I'm Playing :: The best..SWBFII
xbox live or psn: No gamertag set
Location: C:\Program Files\ForceMaster\Bin\ForceMaster.exe

Re: Custom Walker Walkthrough?

Post by ForceMaster »

I'm not sure about what is the function of it. In both cases my walker's haven't a "correct" pair of legs, 3 legs (1,5 pairs?) or 8 legs (4 pairs) has not set in the listed values, but it work ingame. So you can see in the forum if anyone have some problems with it.

The collision with the ground (terrain) may be sett with collision primitives int the model.msh.
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough?

Post by jedimoose32 »

Here is a video showing my problem.
I fixed the hierarchy issue but the walker still won't move, and just loops the one animation whenever I try to move. The idle animation works great but nothing else does.
User avatar
AceMastermind
Gametoast Staff
Gametoast Staff
Posts: 3285
Joined: Mon Aug 21, 2006 6:23 am
Contact:

Re: Custom Walker Walkthrough?

Post by AceMastermind »

Whether you use null chains or bone chains is user preference, both will work, you might even need a combination of both at some point.
I wouldn't animate something like an AT-ST leg with FK though, its way easier to use IK here to grab and translate the effector.
The best walkthrough in my opinion is just to use ZETools to import the animations from the assets one at a time and examine the nodes and take note of start and stop positions, then just reproduce this movement in your own project.
If you're animating a walker and you want to prevent the feet from clipping the viewport grid while animating you can set up a bounding plane.
In your video it looks like you might not have animated the bone root moving forward, otherwise you could have an ODF error.
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough?

Post by jedimoose32 »

Oh, yeah I didn't make the bone_root move forward. I thought that the movement of bone_root was controlled by the unit's movement properties (e.g. if movement speed was 5 it would move the bone_root 5 units forward per second while playing the animation). I guess that explains why the unit isn't moving. Any idea why turning animation is glitching out though? Possibly the same reason?
And will having the feet clip through the viewport grid have any effect on the motion of my unit aside from just looking bad?
Thanks Ace.
User avatar
AceMastermind
Gametoast Staff
Gametoast Staff
Posts: 3285
Joined: Mon Aug 21, 2006 6:23 am
Contact:

Re: Custom Walker Walkthrough?

Post by AceMastermind »

jedimoose32 wrote:Any idea why turning animation is glitching out though? Possibly the same reason?
I've no idea, you'll have to compare what you have to a similar turning animation from the assets and see whats different.
jedimoose32 wrote: will having the feet clip through the viewport grid have any effect on the motion of my unit aside from just looking bad?
Not really, but it makes the process easier and means one less thing to worry about.
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough?

Post by jedimoose32 »

Okay so I updated all my animations so that the root bone moves forward with the walking animation, etc. Same problem is still occurring though.
I did notice this in my ZenAsset animation munge log:

Code: Select all

-- Processing directory C:\SWBF2_ModTools\BF2_ModTools\data_CCR\Animations\Vehicle\firebreather
	Processing file basepose.msh, will save in .\\\firebreather.zaf
*** WARNING: While correcting joint base pose matrices, no skin was found!
*** ERROR: No Skin model in MSH?
.........
Any idea what that means? I googled the error and only got one result on the swbfgamers forum, where user -RepubliqueCmdr- said:
It's been to long since I've read any of the tutorials, but if I remember right, the bone root should have some geometry with uv applied (I think sereja uses a cube in his tutorial for making a door). -- It looks like it's just a null you are using for bone_root. I don't know if that would cause such a huge problem though..
I'm going to try this. My root bone is already a cube so I'll just give it UV properties I guess. But that seems a very strange solution to an animation problem. Ace, have you heard of this being a requirement? I haven't seen anything like this before. Also, does the root bone have to be called "bone_root" exactly? Mine is called "bone_head".

Edit: Adding a texture property to the bone_root didn't get rid of the ZenAsset error.

EDIT 2: IT WORKS! That seemed to solve it. Thank you so much for all your help ForceMaster and Ace!
User avatar
AceMastermind
Gametoast Staff
Gametoast Staff
Posts: 3285
Joined: Mon Aug 21, 2006 6:23 am
Contact:

Re: Custom Walker Walkthrough?

Post by AceMastermind »

jedimoose32 wrote:I did notice this in my ZenAsset animation munge log:

Code: Select all

*** ERROR: No Skin model in MSH?
Any idea what that means?
You can just leave a single triangle in the hierarchy to fix this, though your cube should have sufficed, and it doesn't need UVs or anything special.
Also, does the root bone have to be called "bone_root" exactly? Mine is called "bone_head".
I don't know what could happen from giving nodes custom names, but I see no reason to think outside the box when it comes to things like this because there is no benefit to doing so, just stick with what works and you'll be fine.
jedimoose32
Field Commander
Field Commander
Posts: 938
Joined: Thu Jan 24, 2008 12:41 am
Projects :: Engineering Degree
Location: The Flatlands of Canada

Re: Custom Walker Walkthrough? [Solved]

Post by jedimoose32 »

Yeah, to be honest I had forgotten to make a specific bone_root for the skeleton but bone_head ended up working for that purpose since nothing was enveloped to it and it was the first "bone" in the hierarchy. That's why I had it named "bone_head" at first. So yeah, renaming it clearly helped.

I'm not sure why the cube didn't fix the skin error. It does have an extra edge loop (it's shaped similar to bone_pelvis in the human skeleton), should it be just a default cube with 6 polys? I am starting to feel like most of my problems are a result of me overcomplicating my setup.
Post Reply