Previous Blog Next Blog
Prev/Next Blog
by date

Illumina + Helicopters

Illumina + Helicopters
Name:Ian Roach 
Date Posted:Nov 16, 2006
Rating:Not Rated
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Ian Roach

Blog post
Time for my weekly .plan update.

This week ive been working on the 3rd person camera and also implementing my flying vehicles.

Third Person Camera

Ive been tweaking back and forth on where my camera will position when moving, still not quiet there yet, but i do have it in a pretty good over the shoulder location. My next trick is to use it across all things (vehicles/turrets e.t.c)

Not related to the camera, but ive also now been able to get multiple crosshairs for different occasions, so a smaller/less visible crosshair is used when not using the iron sights, but it switches to a larger/more focused crosshair when using the iron sights.

Helicopters

I took the excellent helicopter resource available here, and adapted it to work with my assualt helis. It currently flies well, but still feels too "Floaty" and can basically stop dead in midair, with no affect to my gravity or no inertia, so it kind of feels like a hovervehicle atm. If anyone knows how to give it a more "heavier" feel please let me know.

As part of implementing helicopters, ive been trying to use the "playThread" commands to plan multiple animations.

My vehicle currently has 4 animations, all of which i want to trigger when i mount. However using playThread multiple times on different thread numbers doesnt seem to work. Likewise using setThreadDir to reverse the animation when i dismount doesnt work either.

If anyone is familiar with playThread,setThreadDir and stopThread i would love your help :)

Here is a movie of my helicopter in action

www.singlecellgames.com/helis.avi <- 21 meg, xvid

----------------

My task for the next week is to cleanup the camera, tweak my player movement settings, fixup animation issues and look into general interface/cleanup.

If all goes well, expect a new demo in a few weeks :)

Recent Blog Posts
List:09/20/08 - Its a good time to be a tgea owner
06/13/08 - 2008 and Prototypes WITH PICS
01/09/08 - Homeworld in torque
12/30/07 - Illumina in 2008
07/29/07 - Illumina TGEA progress and screens
04/23/07 - What a Year its been
12/24/06 - Illumina Demo Just in time for Christmas.
12/18/06 - New Game Ideas

Submit ResourceSubmit your own resources!

Tim Heldna   (Nov 17, 2006 at 00:41 GMT)
At the top of the class file, just after all the includes:

static F32 sheliVehicleGravity = -20;

Play around with that number to adjust gravity.

Check out the updateForces function if you want to modify maneuvering.


//-------------------------------------------------------------
//Thread Animation Commands
//-------------------------------------------------------------
%obj.playThread(0,"Anim"); //play the animation
%obj.stopThread(0,"Anim"); //stop the animation
%obj.pauseThread(0,"Anim"); //pause the animation
%obj.setThreadDir("Anim",1); //set animation direction forward
%obj.setThreadDir("Anim",0); //set animation direction backward

%obj = shape to play animation on
Anim = name of the animation

Ian Roach   (Nov 17, 2006 at 01:52 GMT)
Thanks Tim, ill definetely adjust gravity, i assume the lower the negative the number the higher the gravity ?

Heres my mount dismount functions for playthread

function AssaultFighter1::playermounted(%data, %obj, %player)
{
%obj.schedule(500, "playThread", 0, "Lgear_Lower/Raise");
%obj.schedule(500, "playThread", 1, "Missile Bay");
%obj.schedule(500, "playThread", 2, "cotpit");
%obj.schedule(500, "playThread", 3, "Thrusters_Pitch");
}

function AssaultFighter1::playerDismounted(%data, %obj, %player)
{
//set all threads to play in reverse

%obj.setThreadDir(0, false);
%obj.setThreadDir(1, false);
%obj.setThreadDir(2, false);
%obj.setThreadDir(3, false);

//play in reverse

%obj.schedule(500, "playThread", 0, "Lgear_Lower/Raise");
%obj.schedule(500, "playThread", 1, "Missile Bay");
%obj.schedule(500, "playThread", 2, "cotpit");
%obj.schedule(500, "playThread", 3, "Thrusters_Pitch");
}

Problem is , it doesnt work :( animation names are correct, sometimes some of the animations play, sometimes they dont.

J Sears   (Nov 17, 2006 at 02:58 GMT)
Well your game takes place a bit in the future right? maybe helicopters will hover so perfectly then :-)

Ian Roach   (Nov 17, 2006 at 03:22 GMT)
J Sears : True . they are more hover vehicles then helis anyway, but it still seems abit too easy to control :)

Sean H.   (Nov 17, 2006 at 16:16 GMT)
Ian, are you sure vehicles support animations?

Im not sure if this has anything to do with your problem, but one thing Ive noticed about setThreadDir() is that it does not kick in until the animation is restarted. in other words, you cant change the direction while a thread is running, and you can't pause and change the direction either. you have to completely stop the animation first, then you can setThreadDir() and play it in reverse.

also, did you make sure you exported the animations as blend animations? they need to be since you're playing more than one simultaneously.

Stefan Lundmark   (Nov 17, 2006 at 16:27 GMT)
Vehicles (to my knowledge) does not support blended animations.

Phil Carlisle   (Nov 17, 2006 at 17:16 GMT)
Ian, I'd recommend simply writing the animation stuff in C++. I did that for the planes in air ace and multiple threads definitely DOES work ok.

It could be that the animation thread is being re-used for something else, causing your threads to fail (the default thread id's my already be in use).

Andy Hawkins   (Nov 19, 2006 at 15:25 GMT)
@Ian - this looks awesome. Great explosions, and cool texturing of the landscape. The design of the buildings is spot on too - nice work!

You must be a member and be logged in to either append comments or rate this resource.