Author |
Message |
Darlos9D
Joined: Mon Jul 16, 2007 9:50 am Posts: 1512 Location: Tallahassee, FL
|
Resisting gravity/GlobalAccel
So obviously one can access the global acceleration (which usually just means gravity) by using the SceneManager property GlobalAcc. Thing is, it doesn't seem to be stored in a "per frame" value. How would I calculate it out to figure out the vector needed to let an object counteract gravity on every frame/update?
... or can I change an object's GlobalAccScalar through lua?
|
Fri Sep 02, 2011 12:54 am |
|
|
Grif
REAL AMERICAN HERO
Joined: Sat Jan 27, 2007 10:25 pm Posts: 5655
|
Re: Resisting gravity/GlobalAccel
GlobalAccSalar. It's misspelled. No, really.
But the property is modifiable through Lua.
|
Fri Sep 02, 2011 1:25 am |
|
|
TheLastBanana
DRL Developer
Joined: Wed Dec 13, 2006 5:27 am Posts: 3138 Location: A little south and a lot west of Moscow
|
Re: Resisting gravity/GlobalAccel
Actually, isn't it "GlocalAccScalar"?
|
Fri Sep 02, 2011 2:24 am |
|
|
zalo
Joined: Sat Feb 03, 2007 7:11 pm Posts: 1496
|
Re: Resisting gravity/GlobalAccel
TLB, didn't you do a thing in one of your scenes or something that could create true 0-gravity for an object by giving it a velocity according to the delta time?
|
Fri Sep 02, 2011 2:54 am |
|
|
Azukki
Joined: Sat Nov 03, 2007 9:44 pm Posts: 1916 Location: Flint Hills
|
Re: Resisting gravity/GlobalAccel
There was a zero-g bunker system in the mercenaries ballistics weapons mod, and I think it did use deltatime and reference the global accelleration. I don't know if it ever got perfect performance for varying fps levels, though. Here's some discussion on the matter, amidst the drama. viewtopic.php?f=61&t=14783&hilit=gravity&start=120
|
Fri Sep 02, 2011 3:05 am |
|
|
TheLastBanana
DRL Developer
Joined: Wed Dec 13, 2006 5:27 am Posts: 3138 Location: A little south and a lot west of Moscow
|
Re: Resisting gravity/GlobalAccel
Zalo, the stuff Azukki linked to may actually have been what you're thinking of, although I honestly can't remember which of the bunkers I made for that mod (and numgun removed the credits, so I guess we'll never know). I can't think of anything else I did for zero-gravity, but I could be wrong.
|
Fri Sep 02, 2011 3:55 am |
|
|
Darlos9D
Joined: Mon Jul 16, 2007 9:50 am Posts: 1512 Location: Tallahassee, FL
|
Re: Resisting gravity/GlobalAccel
Grif wrote: GlobalAccSalar. It's misspelled. No, really.
But the property is modifiable through Lua. Well, I guess I'll just use GlobalAccSailor then.
|
Fri Sep 02, 2011 3:30 pm |
|
|
Mehman
Joined: Tue Nov 17, 2009 7:38 pm Posts: 909 Location: France
|
Re: Resisting gravity/GlobalAccel
I don't think GlobalAccScalar can be modified by a script(if it can tell me how), but this can be used to counteract gravity: Code: self.ZeroGVector = Vector(); self.ZeroGVector.Y = SceneMan.GlobalAcc.Y*TimerMan.DeltaTimeSecs; self.ZeroGVector.X = SceneMan.GlobalAcc.X*TimerMan.DeltaTimeSecs;
Then just substract self.ZeroGVector from the velocity of the object you want 0 gravity for.
|
Fri Sep 02, 2011 6:04 pm |
|
|
Darlos9D
Joined: Mon Jul 16, 2007 9:50 am Posts: 1512 Location: Tallahassee, FL
|
Re: Resisting gravity/GlobalAccel
That method seems to work, numerically. Something I did in the past was just create an invisible "gravity test" particle that hits nothing when the actor is created, and then just look at its velocity one frame later to get the global accel. It's how I made my flying drone work. That method seems to get a very similar value to what just multiplying by delta time seems to get.
Weird thing is, now my actors are STILL sinking down slowly.
I really wish globalAcc was applied BEFORE lua gets run, so just setting velocity to zero would effectively pin an actor. Sigh...
|
Fri Sep 02, 2011 7:07 pm |
|
|
Mehman
Joined: Tue Nov 17, 2009 7:38 pm Posts: 909 Location: France
|
Re: Resisting gravity/GlobalAccel
Darlos9D wrote: Weird thing is, now my actors are STILL sinking down slowly. That can be solved by giving the actor a very small upwards acceleration, that's what I did for my heavy UAV and it works perfectly.
|
Fri Sep 02, 2011 7:11 pm |
|
|
Darlos9D
Joined: Mon Jul 16, 2007 9:50 am Posts: 1512 Location: Tallahassee, FL
|
Re: Resisting gravity/GlobalAccel
Uhm... what amount would you suggest for that acceleration?
|
Fri Sep 02, 2011 8:16 pm |
|
|
Mehman
Joined: Tue Nov 17, 2009 7:38 pm Posts: 909 Location: France
|
Re: Resisting gravity/GlobalAccel
After some experiments I fund out that this works perfectly: Code: self.ZeroGVector = Vector(); self.ZeroGVector.Y = SceneMan.GlobalAcc.Y*TimerMan.DeltaTimeSecs; self.ZeroGVector.X = SceneMan.GlobalAcc.X*TimerMan.DeltaTimeSecs; self.Vel = self.Vel - self.ZeroGVector; self.Pos.Y = self.Pos.Y-((SceneMan.GlobalAcc.Y*TimerMan.DeltaTimeSecs)/3);
|
Sat Sep 03, 2011 1:36 am |
|
|
|