1: wheels. my space fighter wont have any. is the hovering effect created by invisible wheels or is there a better way to do this.
Not a better way I know. Just stick to invisiwheels.
2: script. Right now i am planning to look at some plane scripts i have, but i was wondering if it is possible to counteract gravity to give the vehicle a lovely maneuverable nonatmospheric feel.
Wat :/ Do you mean not have gravity affect it when going in any direction such as up?
3: particles. i could not find a tutorial which had a particle node description. it would be nice to know if there is a required way of creating or naming particle emitter bones.
On a Vehicle?
The Emitter joints should be the same as the mount joints. Since it might have one seat used, You might name them mount1,mount2,mount3, and so on.
You must edit the colors and such to be the one you want.
datablock ParticleData(VehicleNameExhaustParticle)
{
textureName = "base/data/particles/cloud";
dragCoefficient = 0.0;
windCoefficient = 0.5;
gravityCoefficient = -0.5;
inheritedVelFactor = 0.2;
lifetimeMS = 300;
lifetimeVarianceMS = 0;
useInvAlpha = true;
spinRandomMin = 0.0;
spinRandomMax = 0.0;
colors[0] = "0.7 0.5 0.2 0.7";
colors[1] = "0.7 0.7 0.7 0.07";
colors[2] = "0.75 0.75 0.75 0.0";
sizes[0] = 0.20;
sizes[1] = 0.25;
sizes[2] = 3;
times[0] = 0;
times[1] = 0.1;
times[2] = 1;
};
datablock ParticleEmitterData(VehicleNameExhaustEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 0;
ejectionVelocity = 0.5;
velocityVariance = 0.0;
ejectionOffset = 0.1;
thetaMin = 0;
thetaMax = 180;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = "VehicleNameExhaustParticle";
};
datablock ParticleData(VehicleNameExhaustTireParticle)
{
dragCoefficient = 3;
windCoefficient = 0;
gravityCoefficient = 1;
inheritedVelFactor = 0.0;
constantAcceleration = 0.0;
spinRandomMin = -90;
spinRandomMax = 90;
lifetimeMS = 900;
lifetimeVarianceMS = 0;
textureName = "base/data/particles/chunk";
colors[0] = "0.1 0.1 0.1 1";
colors[1] = "0.1 0.1 0.1 0";
sizes[0] = 0.4;
sizes[1] = 0.05;
};
datablock ParticleEmitterData(VehicleNameExhaustTireEmitter)
{
ejectionPeriodMS = 2;
periodVarianceMS = 0;
ejectionVelocity = 0.5;
velocityVariance = 0.0;
ejectionOffset = 0.1;
thetaMin = 0;
thetaMax = 180;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = "VehicleNameExhaustTireParticle";
};
datablock ShapeBaseImageData(VehicleNameExhaustImage1)
{
shapeFile = "base/data/shapes/empty.dts";
emap = false;
mountPoint = 3;
rotation = "1 0 0 -90";
stateName[0] = "Ready";
stateTransitionOnTimeout[0] = "FireA";
stateTimeoutValue[0] = 0.01;
stateName[1] = "FireA";
stateEmitter[1] = VehicleNameExhaustEmitter;
stateEmitterTime[1] = 10000;
};
function VehicleNameSmokeCheck(%obj)
{
%obj.mountImage(VehicleNameExhaustImage1,2);
}