Page 1 of 1

Observer / Replay function

Posted: Sun Sep 23, 2012 4:09 am
by Feldheld
Wouldnt it be mega cool if you could join a human strat as observer, able to watch from sattelite, or switch to 1st person view of any player, and fraps it? I like to watch strat videos but there are so little of them and only from a single pilots/commanders perspective.

edit: even cooler would be a replay function like in starcraft.

Re: Observer

Posted: Sun Sep 23, 2012 9:30 am
by Zero Angel
Replay function would be awesome, for sure.

VSR has a camera pod unit that can be enabled in the vehicle lists whenever VSR modes are activated. The camera pod can fly around cloaked and observe the action from first-person without interfering (it cannot be targeted, cannot steal missile locks, cant run over pilots and when morphed is invisible even to AI). I tested and the only ways which you could possibly interfere while in a camera pod are (1) stealing AI attention (only when unmorphed/visible) (2) Blocking shots by getting in the way of them, or (3) classic cheating by painting targets and managing units while in a camerapod. Most strat players will avoid resorting to these kinds of cheats and you pretty much have to intentionally cheat in order to affect games if you are a camera pod.

VSR also has a comm vehicle selectable as a starting unit that can deploy into commbunker view and observe from a top-down perspective (if you have arrow keys set up for camera pitch and yaw controls you can capture some pretty dynamic angles), though it's much more fun to fly around in a camera pod.

VSR modes and vehicle lists cannot yet be enabled for FFA or MPI without running console commands (namely 'exec vsr12smart') but it will be available for these modes in the next release (although the Hadean and Icecream races will not work well in MPI due to AIPs not being written for them).

Re: Observer

Posted: Sun Sep 23, 2012 10:15 am
by Feldheld
I read about your camera pods on bzmaps.us. Nice effort there. Whats the movement physics of this thing? Like a scout? Or do you just float to wherever you point?

Looking forward to some 1vs1 tournament videos.

Re: Observer

Posted: Sun Sep 23, 2012 5:34 pm
by S.cavA.rmyG.en
can't you limet it even more then that with odf tags?
I think it could but I mite be wrong.
here is me trying to make a ghost ship.

Code: Select all

[GameObjectClass]
classLabel = "morphtank"
DeployOnBuild = 1
geometryName = "null"
allowMDMCollisionDetonation = 0
CanAcceptPowerups = 0
ScanTeamLimit = 3 
isStealth = 1
candetect = 0
cancollide = 0
canselect = 0
isgrouped = 0
cantarget = 0
needgroup = 0
heatSignature = 0.0
imageSignature = 0.0
radarSignature = 0.0
collisionRadius = -5e6
maxHealth = 1200
maxAmmo = 2000
addAmmo = 0.0
addHealth = 1200
[CraftClass]
CanInteractWithTerminal = 0
CanUserBailout = 0
CanUserHopout = 0
CanBailout = 0
braccelFactor = 0.05f;
strafeFactor = 0.1f;
steerFactor = 1.5f;
omegaFactor = 0.28f;
velFactor = 0.2f;
avoidSpeed = 20;
topSpeed = 30;
[HoverCraftClass]
OverLandVelocFrontMult = 1.0
OverLandVelocSideMult = 1.0
OverLandThrottleMult = 1.0
OverWaterVelocFrontMult = 0.75
OverWaterVelocSideMult = 0.75
OverWaterThrottleMult = 0.8
airborneVelocFrontMult = 1.1 // *1.0
airborneVelocSideMult = 1.1 // *1.0
airborneThrottleMult = 1.5 // *1.0
airborneMinHeightRatio = 1.5 // *2.0
airborneMaxHeightRatio = 4.0 // *5.0
velocForward = 40.0 // [40]
velocReverse = 10.0 // [20]
velocStrafe = 15.0 // [20]
accelThrust = 30.0 //acceleration [50]
accelDragStop = 11.0 //how fast it stops once hands are off controls [13]
accelJump = 20.0 // [20]
setAltitude = 1.5 // how high off the ground
alphaTrack = 21.0 //springs speed it rights itself [21]
alphaDamp = 7.0 //shocks [7]
pitchPitch = 0.12 //nose up [.25]
pitchThrust = 0.12 //nose down [.1]
rollStrafe = 0.085 //rolls while strafing [.2]
omegaSpin = 3.5 //spinning in place speed [4.0]
omegaTurn = 3.0 //turning while moving speed [4.5]
alphaSteer = 4.0 //how fast it speeds up and slows down to steering [3.9]
rollSteer = 0.07 //rolls while steering [.25]
[MorphTankClass]
candetect = 0
cancollide = 0
canselect = 0
isgrouped = 0
cantarget = 0
needgroup = 0
heatSignature = 0.0
imageSignature = 0.0
radarSignature = 0.0
collisionRadius = -5e6
maxHealth = 1200
maxAmmo = 2000
addAmmo = 0.0
addHealth = 1200
CanScoutObjectifyWhenHidden = false
HiddenWhenMorphed = 1
CanUserDeploy = 0
[DeployableClass]
ScanTeamLimitDeployed =3
isStealthDeployed = 1
canAttackWhenUndeployed = 0
canAttackWhenDeployed = 0

Re: Observer

Posted: Sun Sep 23, 2012 8:56 pm
by Zero Angel
Camera pods have scout-like movement characteristics. This is partially because at kind of movement can capture the most action-packed views as well as only the morphTank class can become totally invisible to AI due to hiddenWhenMorphed=true.

SAG, your ODF resembles mine for the most part (though you have a lot of redundant entries, for example some of the stuff from [MorphTankClass] is already inherited from [GameObjectClass] so you don't need to set those ODF flags again). I've allowed camera pods to be 'blown' (ctrl+b) but you can't hop out of them. When they are blown they become a scout. This is so that players who would normally join and sit (ie: due to an uneven amount of players) can CTRL+B and enter the game as a normal player at some point.

Re: Observer / Replay function

Posted: Mon Sep 24, 2012 12:05 am
by Red Devil
i could tweak things to add a bona fide spectator function

Re: Observer

Posted: Mon Sep 24, 2012 12:35 am
by S.cavA.rmyG.en
Zero Angel wrote:Camera pods have scout-like movement characteristics. This is partially because at kind of movement can capture the most action-packed views as well as only the morphTank class can become totally invisible to AI due to hiddenWhenMorphed=true.

SAG, your ODF resembles mine for the most part (though you have a lot of redundant entries, for example some of the stuff from [MorphTankClass] is already inherited from [GameObjectClass] so you don't need to set those ODF flags again). I've allowed camera pods to be 'blown' (ctrl+b) but you can't hop out of them. When they are blown they become a scout. This is so that players who would normally join and sit (ie: due to an uneven amount of players) can CTRL+B and enter the game as a normal player at some point.
the redundant entries are there becose I don't use morphtanks that much my self and as far as diing in to a scout that some thing I did not think of adding so I locked it.
the main thing is this.

Code: Select all

ScanTeamLimit = 3
allowMDMCollisionDetonation = 0
CanAcceptPowerups = 0
ScanTeamLimit = 3 
candetect = 0
cancollide = 0
canselect = 0
cantarget = 0
collisionRadius = -5e6

Re: Observer / Replay function

Posted: Mon Sep 24, 2012 1:00 am
by Zero Angel
collisionRadius is an AI-only value, for example units with a bigger collisionRadius will be avoided more. Better to have an extremely small collision radius (like 0.1) than a negative one as a negative value may cause an undesired effect. Also since the cameraPods are equipped with a SITE camera only, I have set switchmask to 00000 to prevent the SITE camera from being greyed out during morphing.

Camera pod ODF looks like this

Code: Select all

// VSR Project
// Camera Pod (Spectator Vehicle)

[GameObjectClass]
classLabel = "morphtank"
baseName = "ivscout"
unitInfo = "ivcamrvsr.inf"
pilotConfig = "ivscout12vsr" // If blank, uses [if]spilo/[if]suser. Otherwise, pilot for craft
geometryName = "camerapodvsr00.xsi" // Model by General Blackdragon
geometryScale = 0.25

unitName = "Camera Pod"

aiName = "MorphTankFriend"
aiName2 = "MorphTankEnemy"

maxHealth = 1000
addHealth = 20
maxAmmo = 100
addAmmo = 100

armorClass = H

scrapValue = 0
// canSnipe = 0
// canCollide = 0

canSelect = 0
canDetect = 0
canInteract = 0
isStealth = 1

canAcceptPowerups = false // reject powerups (such as mines)

heatSignature = 0.0
imageSignature = 0.0
radarSignature = 0.0

Mass = 1 // If <= 0, uses default of Sphere(Width*Height*Breadth) * 800.0

provideCount = 0

UseVehicleCrashOnDeath = 0

NumChunks = 0
NumChunks1 = 0
NumChunks2 = 0
NumChunks3 = 0
NumChunks4 = 0
NumChunks5 = 0

scanTeamLimit = 3

/////// WEAPONS ////////////////////

weaponMask = 00001
weaponHard1 = "HP_SPECIAL_1"
weaponName1 = "gsitecam"
weaponAssault1 = 0
weaponHard2 = ""
weaponName2 = ""
weaponAssault2 = 0
weaponHard3 = ""
weaponName3 = ""
weaponAssault3 = 0
weaponHard4 = ""
weaponName4 = ""
weaponAssault4 = 0

////////////////////////////////////

lightHard1 = "hp_emit_1"
lightName1 = ""

[CraftClass]
/////// AI SETTINGS      ////////////
blastDist = 80
/////// GENERAL SETTINGS ////////////
CanInteractWithTerminal = true // default = true for all pilots/persons.
DoIdleDispatch = false
CanUserBailout = true // Human can exit craft w/ Ctrl-B if true
CanUserHopout = false
collideTerrainSound = "silence.wav" // Sound on collision w/ terrain
isFlying = 1 // probably does nothing

/////// PHYSICS SETTINGS ////////////
GROUND_ELASTICITY = -0.07 // -0.7 // -0.2
DAMAGE_SCALE = 0.0 // Scale in turning velocity into damage, on craft:ground or craft:building collisions
 // MIN_BOUNCE_VEL = 2.0 // 0.5
 // OBJECT_ELASTICITY = 0.0125


[HoverCraftClass]
setAltitude = 2.0
velocForward = 50
velocStrafe = 35

MoreLike12Physics = true

alphaTrack = 21.0 // *21 springs speed it rights itself 
alphaDamp = 12.0 // *8 +6 resists forces that change the pitch (and roll?) orientation of the craft, including terrain and pitchPitch

accelDragFull = 40

pitchPitch = 0.6 // +.3 Nose up/down speed
pitchThrust = 0.0 // Nose changes when craft is moving forward and backing up

accelJump = 18 // *18 Provides additional thrust to the upwards vector relative to the craft orientation.

rollStrafe = 0.04 // 0.14 // Rolls while strafing. Rolling combined with accelJump can increase single directional strafing speed.

omegaSpin = 4.5 // Turn speed when not thrusting 
omegaTurn = 3.5 // Turn speed while thrusting
alphaSteer = 8.5 // 10.5 // Turning responsiveness

OverWaterVelocFrontMult = 1.0 // *.75
OverWaterVelocSideMult = 1.0 // *.75
OverWaterThrottleMult = 0.8
airborneVelocFrontMult = 1.2 // *1.0
airborneVelocSideMult = 1.05 // *1.0
airborneThrottleMult = 1.2 // *1.0
airborneMinHeightRatio = 1.6 // *2.0
airborneMaxHeightRatio = 3.0 // *5.0

LIFT_SPRING = 2.5 // 6 // *25.0 Increases 
LIFT_DAMP = 0.1 // 0.1 // 5.75 // *6.25

// LIFT_SPRING = 6 // *25.0 Increases 
// LIFT_DAMP = 0.1 // 5.75 // *6.25

soundThrust = "silence.wav"
soundTurbo = "silence.wav"

[MorphTankClass]
HiddenWhenMorphed = true // if true, Vir+Red turned on when morphed
switchMask = 00000

LIFT_SPRING = 2.5 // 6 // *25.0 Increases 
LIFT_DAMP = 0.1 // 0.1 // 5.75 // *6.25

soundThrust = "silence.wav"
soundTurbo = "silence.wav"


[Lod1]

[Lod2]

Re: Observer / Replay function

Posted: Mon Sep 24, 2012 1:48 pm
by S.cavA.rmyG.en
collisionRadius is an AI-only value
you sure?
I still don't see why you did not add

Code: Select all

ScanTeamLimit = 3 // nether player nor ai can see it on radar or see its name and ai will over look it till it attack them.
cancollide = 0 //ordence pass though
allowMDMCollisionDetonation = 0 //can't get hit by some ordence
cantarget = 0 //object can't be targeted

Re: Observer / Replay function

Posted: Mon Sep 24, 2012 3:06 pm
by Red Devil
there is already a spectator ship in g66, but i commented it out until i round up another model to use.

Re: Observer / Replay function

Posted: Mon Sep 24, 2012 7:23 pm
by General BlackDragon
CollisionRadius is an AI only function. It tells other ships how "big" this unit is in the 2d collision planner, so they try to stay X meters from the ship.

Set CollisionRadius on a turret to 25, then build several from your recy. Watch how they spread out.

Basically, it's a way to control unit spacing in formation and how far away a unit will go around something. (a building with a radius of 25 appears bigger then a building with a radius of 10) Use Shift+F9 to view the effects.

Re: Observer / Replay function

Posted: Mon Sep 24, 2012 9:19 pm
by Ded10c
If canCollide = 0, allowMDMCollisionDetonation can be left as default.