Page 1 of 1

Evil AT-ST view problem

Posted: Wed Jul 02, 2008 12:21 pm
by ARC_Commander
Some of you who have played BFX may be familiar with this problem.

Image

The hateful, horrible, awful AT-ST view bug! I have no idea how to fix it. It appears to be that the pilot's view point (the gunner is fine) is right between the two feet of the AT-ST. Here's my code:
Hidden/Spoiler:
[GameObjectClass]
ClassLabel = "walker"
GeometryName = "imp_walk_atst.msh"

[Properties]

//***********************************************
//*********** VEHICLE VALUES AND INFO *********
//***********************************************

WALKERSECTION = "BODY"
VehicleType = "medium"
Label = "AT-ST"
VehiclePosition = "common.vehiclepositions.pilot"

GeometryName = "imp_walk_atst"
AnimationName = "imp_walk_atst"
ExplosionName = "imp_walk_atst_exp"
ExplosionOffset = "0.0 5.9058 0.1833"
DeathAnimationExplosion = "atat_explosion"
DeathAnimationExplosionTime = "1.5"
FinalExplosion = "imp_walk_atst_finalexp"
FinalExplosionOffset = "5.5808 1.9066 -0.8685"
FirstPerson = "IMP\ATST;imp_1st_cockpit_atst"
FirstPersonFOV = "52"

CockpitTension = 25

MapTexture = "atst_icon"
StatusTexture = "HUD_imp_atst_icon"
MapScale = "1.6"

TimeRequiredToEject = "10.0"
EjectResistance = "0.03"
TimeTilReboard = "5.0"

//***********************************************
//*********** MOVEMENT VALUES *****************
//***********************************************

MaxTerrainAngle = "30.0"

Acceleraton = "2.4"
MaxSpeed = "7.0"
MaxStrafeSpeed = "3.5"
//MaxTurnSpeed = "0.6"

StoppedTurnSpeed = "0.5"
ForwardTurnSpeed = "0.5"
BoostTurnSpeed = "0.3"
TurnThreshold = "0.6"

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

LegRayHitLength = "5"

EnergyBar = 80
EnergyAutoRestore = 9.0
EnergyBoostDrain = 20
BoostSpeed = 10
BoostAcceleration = 100.0
BoostFOV = 60

AIUseHoverPhysics = "1"

//***********************************************
//*********** CAMERA VALUES *******************
//***********************************************

EyePointOffset = "0.0 8.0 0.0"
TrackCenter = "0.0 9.25 -3.0"
TrackOffset = "0.0 0.0 13.0"
TiltValue = "6.0"

YawLimits = "-90 90"
PitchLimits = "-35 40"

MaxPitchSpeed = "0.4"
MaxYawSpeed = "0.7"
MaxTurnSpeed = "1.5"

PCMaxYawSpeed = 2.0
PCMaxTurnSpeed = 2.0
PCPitchRate = 1.6


//***********************************************
//*********** MAIN WEAPON VALUES **************
//***********************************************

WEAPONSECTION = 1

WeaponName = "imp_weap_walk_atst_cannon_chin"
WeaponAmmo = "0"

HierarchyLevel = "1"
AimerNodeName = "cube5"
AimerYawLimits = "-90 90"
AimerPitchLimits = "-5 20"

//NextAimer = "-"

//AimerNodeName = "aimer_mouthpivot"
//AimerYawLimits = "0 0"
//AimerPitchLimits = "-30 20"

BarrelNodeName = "barrel_lgun"
FirePointName = "hp_cannon_1"
BarrelRecoil = "0.3"

NextBarrel = "-"

BarrelNodeName = "barrel_rgun"
FirePointName = "hp_cannon_2"
BarrelRecoil = "0.3"

WEAPONSECTION = 2

WeaponName = "rep_weap_walk_oneman_atst_cannon"
WeaponAmmo = "0"

AimerYawLimits = "-90 25"
AimerPitchLimits = "-25 25"
AimerNodeName = "aimer_Reargun"
FirePointName = "hp_gun_2"

//***********************************************
//****** SECONDARY POSITION WEAPON VALUES *****
//***********************************************

WALKERSECTION = "TURRET1"

//FirstPerson = "IMP\IMPATSTG;imp_1st_cockpit_ATSTgnr"
FirstPersonFOV = "52"
MountPos = "0.0 8.0 0.0"
VehiclePosition = "common.vehiclepositions.copilot"

CockpitTension = 25

YawLimits = "-30 90"
PitchLimits = "-30 90"
//PCPitchTurnFactor = "20.0"
//PCYawTurnFactor = "20.0"
EyePointOffset = "0.0 0.0 0.0"
TrackOffset = "0.0 1.0 5.0"
TiltValue = "9.0"
//
//TurretYawSound = "turret_whir_yaw_lp_distant"
//TurretYawSoundPitch = "0.7"
//TurretPitchSound = "turret_whir_pitch_lp_distant"
//TurretPitchSoundPitch = "0.7"
//TurretAmbientSound = ""
//TurretActivateSound = "vehicle_equip"
//TurretDeactivateSound = ""
//TurretStartSound = ""
//TurretStopSound = ""
//CockpitChatterStream = "imp_off_atst_radiochatter"

WEAPONSECTION = 1

WeaponName = "imp_weap_walk_atst_cannon_head"
WeaponAmmo = "0"

AimerYawLimits = "-90 25"
AimerPitchLimits = "-25 25"
AimerNodeName = "aimer_Reargun"
FirePointName = "hp_gun_2"

//***********************************************
//*********** ANIMATION VALUES ****************
//***********************************************

TEMP_AnimationSpeed = "1.0"
TEMP_Type = "0"

TerrainCollision = "p_l_foot"
TerrainCollision = "p_r_foot"

BuildingCollision = "p_sphere_lfoot"
BuildingCollision = "p_sphere_rfoot"
BuildingCollisionPrim = "BldgCylinder aacylinder NULL 0.0 4.7 0.0 3.0 7.6 0.0"

SoldierCollision = "p_sphere_lfoot"
SoldierCollision = "p_sphere_rfoot"
SoldierCollision = "p_head"
SoldierCollision = "p_r_ankle"
SoldierCollision = "p_r_leg"
SoldierCollision = "p_r_thigh"
SoldierCollision = "p_l_ankle"
SoldierCollision = "p_l_leg"
SoldierCollision = "p_l_thigh"

TargetableCollision = "p_head"

//******************************************
//*********** EFFECT VALUES **************
//******************************************

StompEffect = "com_sfx_walkerstomp"
StompDecal = "decal_atst_footprint"

LegPairCount = "1"

WalkerLegPair = "LEGS"

LegBoneLeft = "bone_l_thigh"
LegBoneRight = "bone_r_thigh"

LegBoneTopLeft = "bone_l_thigh"
LegBoneTopRight = "bone_r_thigh"

TerrainLeft = "p_l_foot"
TerrainRight = "p_r_foot"

FootBoneLeft = "bone_l_toe"
FootBoneRight = "bone_r_toe"

AISizeType = "MEDIUM"

//***********************************************
//*********** DAMAGE VALUES *******************
//***********************************************

MaxHealth = "15000.0" //was 4600 changed 6/7/04, was 6600 changed 4/7/05
HitLocation = "p_crit_hit 4.0"

DamageStartPercent = 75.0
DamageStopPercent = 30.0
DamageEffect = "com_sfx_vehiclespark"
DamageAttachPoint = "bone_l_calf"

DamageStartPercent = 75.0
DamageStopPercent = 30.0
DamageEffect = "com_sfx_vehiclespark"
DamageAttachPoint = "bone_r_calf"

DamageStartPercent = 65.0
DamageStopPercent = 30.0
DamageEffect = "com_sfx_vehiclespark"
DamageAttachPoint = "bone_l_foot"

DamageStartPercent = 65.0
DamageStopPercent = 30.0
DamageEffect = "com_sfx_vehiclespark"
DamageAttachPoint = "bone_r_foot"

DamageStartPercent = 50.0
DamageStopPercent = 20.0
DamageEffect = "com_sfx_vehiclesmoke"
DamageEffectScale = 1.0
DamageInheritVelocity = 0.0
DamageAttachPoint = "hp_damage_1"

DamageStartPercent = 19.0
DamageStopPercent = 0.5
DamageEffect = "com_sfx_vehicleflame"
DamageEffectScale = 1.0
DamageInheritVelocity = 0.0
DamageAttachPoint = "hp_damage_2"

DamageStartPercent = 19.0
DamageStopPercent = 0.5
DamageEffect = "com_sfx_vehicleflame"
DamageEffectScale = 1.0
DamageInheritVelocity = 0.0
DamageAttachPoint = "hp_damage_3"

//***********************************************
//*********** DAMAGE EFFECT VALUES ************
//***********************************************


CHUNKSECTION = "CHUNK1"
ChunkGeometryName = "imp_walk_atst_chunk1"
ChunkNodeName = ""
ChunkTerrainCollisions = "2"
ChunkTerrainEffect = "dirtspray"
ChunkPhysics = "FULL"
ChunkOmega = "2.0 2.0 1.5"
ChunkBounciness = 0.65
ChunkStickiness = 0.25
ChunkSpeed = "10.0"
ChunkUpFactor = "6.00"
ChunkTrailEffect = "com_sfx_chunktrail_sm"

CHUNKSECTION = "CHUNK2"
ChunkGeometryName = "imp_walk_atst_chunk2"
ChunkNodeName = ""
ChunkTerrainCollisions = "2"
ChunkTerrainEffect = "com_sfx_explosion_lg"
ChunkPhysics = "FULL"
ChunkOmega = "2.0 1.0 1.0"
ChunkBounciness = 0.35
ChunkStickiness = 0.45
ChunkSpeed = "9.0"
ChunkUpFactor = "5.00"
ChunkTrailEffect = "com_sfx_chunktrail_sm"

CHUNKSECTION = "CHUNK3"
ChunkGeometryName = "imp_walk_atst_chunk3"
ChunkNodeName = ""
ChunkTerrainCollisions = "5"
ChunkTerrainEffect = "dirtspray"
ChunkTrailEffect = "com_sfx_chunktrail_sm"
ChunkPhysics = "FULL"
ChunkOmega = "1.0 1.0 1.0"
ChunkBounciness = 0.25
ChunkStickiness = 0.25
ChunkSpeed = "6.0"

ChunkSmokeEffect = "com_sfx_smokeplume"
ChunkSmokeNodeName = "hp_smoke2"

CHUNKSECTION = "CHUNK4"
ChunkGeometryName = "imp_walk_atst_chunk4"
ChunkNodeName = ""
ChunkTerrainCollisions = "2"
ChunkTerrainEffect = "dirtspray"
ChunkTrailEffect = "com_sfx_chunktrail_sm"
ChunkPhysics = "FULL"
ChunkOmega = "3.0 1.0 1.5"
ChunkBounciness = 0.55
ChunkStickiness = 0.25
ChunkSpeed = "5.0"

ChunkSmokeEffect = "com_sfx_smokeplume"
ChunkSmokeNodeName = "hp_smoke1"

//*****************************************
//*********** SOUND VALUES **************
//*****************************************

VOUnitType = 49
FootstepSound0 = "com_weap_layered_at_step"
FootstepSound1 = "com_weap_layered_at_step"
HydraulicSound = "atst_leg_up"
HydraulicSoundHeight = "0.2"
HydraulicLowerSound = ""
//HydraulicLowerHeight = "0.5"
HurtSound = ""
DeathSound = "imp_weap_ord_exp_lg"
VehicleCollisionSound ="com_veh_collision_lg"
AllMusic = "all_vehicle"
ImpMusic = "imp_vehicle"
CisMusic = "cis_vehicle"
MusicSpeed = "0.2"
MusicDelay = "4.0"
EngineSound = "atst_engine_parameterized"
TurnOnSound = ""
TurnOnTime = "1.0"
TurningOffSound = ""
TurnOffSound = ""
TurnOffTime = "5.0"
//FoleyFXClass = "imp_walk_atst"
FoleyFXGroup = "metal_foley"

Re: Evil AT-ST view problem

Posted: Wed Jul 02, 2008 12:32 pm
by Teancum
Are the camera values any different than the default AT-AT?

Re: Evil AT-ST view problem

Posted: Wed Jul 02, 2008 2:05 pm
by MercuryNoodles
Have you tried changing the y value for EyePointOffset, TrackCenter, or TrackOffset, yet? If not, see if changing it for any of those yields any results at all. From what I see, the odf appears as it should, but I don't think it'd hurt to see if you can move the camera a little and work from there.

Also, the gunner position has something the main section does not:

Code: Select all

MountPos = "0.0 8.0 0.0"



Oh, one other thing occurred to me. You could try replacing the main camera values with that of the gunner position to see if that makes it better. This is somewhat counter-intuitive to me, though, since the difference in the y values on the EyePointOffset line in each position would suggest a negative y value would raise the camera. Honestly, I'd say don't try a negative value, since I'm pretty sure it'd set the camera under the terrain, unless someone doesn't know how to graph. :P I'm guessing this difference has to do with the MountPos line being present. Changing the TrackOffset looks somewhat promising, though, from glancing at the numbers.


Granted, I'm speculating quite a bit, but you don't stand to lose much if I'm wrong.


..................................


*sighs* Excuse the rambling, if you could. I should be asleep by now. Here's the thing; the EyePointOffset looks like it's as it should be given the two different approaches, the TrackCenter is apparently the same for both, and TrackOffset appears to be the only real difference. Hopefully, if I've thought this through correctly, I have this narrowed down to changing the y value of TrackOffset for the pilot to something close to what the gunner uses.

Re: Evil AT-ST view problem

Posted: Mon Jul 07, 2008 11:01 am
by ARC_Commander
Okay, the problem is not resolved. But I have collected some more information about it.

1. Does not affect every AT-ST on the map. On Hoth, it only affects the one that spawned at the CP nearest to the AT-AT spawn point.

2. Does not have something to do with the view settings. It has something to do with the geometry, or how it's loaded into memory.

How do I know this? When I fired at an affected AT-ST's head, the shot went right through. Collision problem?

It also exhibits this problem:

Image

The head seems to be independent of the body - the weapons are poking right through, as if they are moving and the head isn't. Also, the AT-ST's legs will move up and down, but the head will hover in one place while walking.

Finally, the head hovers in mid-air after the AT-ST has been blown up. The legs fall down, but the head stays in the air and vanishes after a while.

Re: Evil AT-ST view problem [UNRESOLVED]

Posted: Mon Jul 07, 2008 10:41 pm
by RepSharpshooter
Do you have enough memory set for that walker type? Or probably some other random memory thing you need to set. The atst has bones and is enveloped like a unit, if that helps anything. Perhaps it's something in nature to the freecam glitch where the skeleton gets screwed up. it seems it is just something to do with bone_head or something. From the effects you describe, it's behaving as 1. either bone_head is detaching itself from the skeleton or 2. bone_head is ceasing to exist and the mesh has nothing to be enveloped to. Still quite a mystery.

Re: Evil AT-ST view problem [UNRESOLVED]

Posted: Wed Jul 09, 2008 10:56 pm
by ARC_Commander
Good news! I think I've found the source of the problem. I looked in BFront2.log, found two memory pools that needed raising - "WalkerBlend" and "WalkerUnitBlend." That last one caught my eye because of RepSharpshooter's explanation that the AT-ST is structured like a unit. It's munging as I write this. [fingers crossed]