IPB

Welcome Guest ( Log In | Register )

Heli with new flight Dynamics, formerly "Any chance to improve flight dynamics realism in helos?&
bluehawk112
post Jul 8 2017, 06:27 PM
Post #1


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Hey there, any experienced coder out there who can help me?There are some funny effects in real life helo flying: to describe it easy:When you throttle up (which would be pulling the collective pitch lever), the helo should make a yaw movement (yaw momentum) to the right - at least during the phase of throttling up. Same vice versa: throttling down should give a yaw momentum to the left- at least during the phase of throttling down. This happens if the rotor blades are rotating counterclockwise (looking on top of the helicopter)- which is the case at nearly all US helicopters. Of course its possible to counteract with the pedals (rudder/yaw). Any ideas how to code this effect? Thanks guys


Edit: For downloading bluehawk112s improved helicopter scroll down to post no.13 or simply use this DL:
http://www.mediafire.com/file/00wgrm076jgu7yg/MW3_MH6.zip
credits to Clivewil for his coding ideas

Now, whoever does not like my additional effects but still enjoys this helicopter can delete the coding stuff that I added for more realistic flight dynamics. Its the stuff that you might want to use if youre planning to improve other helos as well.
Go the MW3_MH6.tweak file:
almost at the beginning of this tweak file delete this:


ObjectTemplate.addTemplate MW3_AH6_Rotorhead1L

ObjectTemplate.setPosition -5.4757/0.5947/-4.9587

ObjectTemplate.setRotation 0/0/-90


ObjectTemplate.addTemplate MW3_AH6_Rotorhead1R

ObjectTemplate.setPosition -5.5757/0.5947/-4.9587

ObjectTemplate.setRotation 0/0/-90



and scrolling down to the end of this tweak file delete this (its all in one block):



ObjectTemplate.create RotationalBundle MW3_AH6_Rotorhead1L

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate MW3_AH6_Rotorhead2L

ObjectTemplate.setPosition 0/-5/0

rem -------------------------------------


ObjectTemplate.create RotationalBundle MW3_AH6_Rotorhead2L

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate MW3_AH6L_MainEngine

ObjectTemplate.setRotation 0/0/-90

rem -------------------------------------


ObjectTemplate.create Engine MW3_AH6L_MainEngine

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

rem ---BeginComp:WindAffector ---

ObjectTemplate.createComponent WindAffector

ObjectTemplate.windType RadialDir

ObjectTemplate.windIsDynamic 1

ObjectTemplate.windDirection 0/0/-1

ObjectTemplate.windSpeed 20

ObjectTemplate.windBlowTime -1

ObjectTemplate.windFalloff 30

ObjectTemplate.windRadialFalloff 20

rem ---EndComp ---

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 1

ObjectTemplate.hasCollisionPhysics 1

ObjectTemplate.physicsType Mesh

rem -------------------------------------

rem -------------------------------------

ObjectTemplate.setMaxRotation 0/0/10

ObjectTemplate.setMaxSpeed 0/0/10

ObjectTemplate.setAcceleration 0/0/1000

ObjectTemplate.setInputToRoll PIThrottle

ObjectTemplate.setAutomaticReset 1

ObjectTemplate.setEngineType c_ETHelicopter

ObjectTemplate.setTorque 39.9

ObjectTemplate.setDifferential 100

ObjectTemplate.setGearUp 0.1

ObjectTemplate.setGearDown 0.7

ObjectTemplate.setGearChangeTime 0.1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

ObjectTemplate.horizontalSpeedMagnifier 1

ObjectTemplate.horizontalDampAngle 0.1

ObjectTemplate.horizontalDampAngleFactor 0.001

ObjectTemplate.defaultAngleOfAttack 1.5

ObjectTemplate.maxAngleOfAttack 15

ObjectTemplate.attackSpeed 6.5

ObjectTemplate.setAcceleration 0/0/100

ObjectTemplate.setDeAcceleration 0/0/8

ObjectTemplate.canReverse 1

ObjectTemplate.setAutomaticReset 0

ObjectTemplate.setUseDeAcceleration 1

beginrem

ObjectTemplate.decreaseAngleToZeroVerticalVel 0.5

ObjectTemplate.dampHorizontalVel 5

ObjectTemplate.dampHorizontalVelFactor -0.7

endrem

ObjectTemplate.canReverse 0

ObjectTemplate.audio.transformationRelativeRoot 1


ObjectTemplate.create RotationalBundle MW3_AH6_Rotorhead1R

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate MW3_AH6_Rotorhead2R

ObjectTemplate.setPosition 0/-5/0

rem -------------------------------------


ObjectTemplate.create RotationalBundle MW3_AH6_Rotorhead2R

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 0

rem -------------------------------------

ObjectTemplate.addTemplate MW3_AH6R_MainEngine

ObjectTemplate.setRotation 0/0/-90

rem -------------------------------------


ObjectTemplate.create Engine MW3_AH6R_MainEngine

ObjectTemplate.modifiedByUser "͇"

ObjectTemplate.setNetworkableInfo BasicInfo

ObjectTemplate.createdInEditor 1

rem ---BeginComp:WindAffector ---

ObjectTemplate.createComponent WindAffector

ObjectTemplate.windType RadialDir

ObjectTemplate.windIsDynamic 1

ObjectTemplate.windDirection 0/0/-1

ObjectTemplate.windSpeed 20

ObjectTemplate.windBlowTime -1

ObjectTemplate.windFalloff 30

ObjectTemplate.windRadialFalloff 20

rem ---EndComp ---

ObjectTemplate.floaterMod 0

ObjectTemplate.hasMobilePhysics 1

ObjectTemplate.hasCollisionPhysics 1

ObjectTemplate.physicsType Mesh

rem -------------------------------------

rem -------------------------------------

ObjectTemplate.setMaxRotation 0/0/10

ObjectTemplate.setMaxSpeed 0/0/10

ObjectTemplate.setAcceleration 0/0/1000

ObjectTemplate.setInputToRoll PIThrottle

ObjectTemplate.setAutomaticReset 1

ObjectTemplate.setEngineType c_ETHelicopter

ObjectTemplate.setTorque 39.9

ObjectTemplate.setDifferential 100

ObjectTemplate.setGearUp 0.1

ObjectTemplate.setGearDown 0.7

ObjectTemplate.setGearChangeTime 0.1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

rem ObjectTemplate.noPropellerEffectAtSpeed 1

ObjectTemplate.horizontalSpeedMagnifier 1

ObjectTemplate.horizontalDampAngle 0.1

ObjectTemplate.horizontalDampAngleFactor 0.001

ObjectTemplate.defaultAngleOfAttack -1.5

ObjectTemplate.maxAngleOfAttack -15

ObjectTemplate.attackSpeed 0.75

ObjectTemplate.setDeAcceleration 0/0/100

ObjectTemplate.setAcceleration 0/0/8

ObjectTemplate.canReverse 1

ObjectTemplate.setAutomaticReset 0

ObjectTemplate.setUseDeAcceleration 1

beginrem

ObjectTemplate.decreaseAngleToZeroVerticalVel 0.5

ObjectTemplate.dampHorizontalVel 5

ObjectTemplate.dampHorizontalVelFactor -0.7

endrem

rem ObjectTemplate.canReverse 0

ObjectTemplate.audio.transformationRelativeRoot 1


This post has been edited by bluehawk112: Today, 05:13 AM
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies (1 - 14)
clivewil
post Jul 8 2017, 10:09 PM
Post #2


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



there would be a way of doing it, but how complex do you want your heli to be?

just off the top of my head, you could have 2 extra yaw engines, acting in opposing directions, both with different power curves. during throttle up engine A has more authority than B and causes yaw, but at full throttle both A and B are producing the same force and cancel each other out

there may be side effects you'd need to work around and setting it up might take a while to fine tune it correctly, but there would be a way of doing what you want

bear in mind that engines need networkable components added to them, so you wouldn't want to go sticking too many of them all over the place

force-objects, wings, creative use of rotational-bundles... there could be several ways of achieving a similar result

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

one thing i've had on my mind re BF2 helis (unrelated to your issue) for a long time but never got around to playing with, is that engine-wise they behave more like a plane or a car, i.e. more engine revs equals more power, whereas in a real heli you'd keep the engines at full revs the whole time and feed in more rotor blade angle as needed to gain the required lift, sort of like letting the clutch out on a car with a manual trans.

with a lot of collective added, the engine revs would reduce slightly under the load but the sound of the rotor blades biting would be loudest, instead of the linear way that BF2 handles it, i.e. the more power you add the faster the engine runs. one day maybe i'll try to simulate it...


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 10 2017, 05:01 PM
Post #3


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



QUOTE (clivewil @ Jul 9 2017, 06:09 AM) *
there would be a way of doing it, but how complex do you want your heli to be?

just off the top of my head, you could have 2 extra yaw engines, acting in opposing directions, both with different power curves. during throttle up engine A has more authority than B and causes yaw, but at full throttle both A and B are producing the same force and cancel each other out

there may be side effects you'd need to work around and setting it up might take a while to fine tune it correctly, but there would be a way of doing what you want


Hmmm. Sounds like a nice idea but Ive never seen a yaw engine that pulls to one particular side, initiated by throttling up.
I have no idea how to code it. Sounds like a nice plan though happy.gif , I wish I still could get some more help on this wink.gif ...

I think, this (extra) flight behaviour belongs to every helicopter - no matter how big or small it is, how fast or how slow...-its a yaw momentum that can always be felt when moving the collective, especially at low airspeed. Thats why I think we should add this momentum to our awesome bf2 helicopter flight model. Of course, youre right with the constant engine speed thing and just altering the angle of attack, but I think there is no difference in flight behaviour bf2 vs. reality- once you pull the collective you will increase a lift vector that points perpendicular to the rotors rotational plane- thats all that matters.
Thanks for your thoughts, Clive
cheers
Go to the top of the page
 
+Quote Post
Fastj@ck
post Jul 15 2017, 10:49 AM
Post #4


Major
****

Group: Soldiers
Posts: 249
Joined: 24-August 08
From: Germany
Member No.: 5,523



QUOTE
just off the top of my head, you could have 2 extra yaw engines, acting in opposing directions, both with different power curves. during throttle up engine A has more authority than B and causes yaw, but at full throttle both A and B are producing the same force and cancel each other out


You can add additional engines??
Is it possible to add a AIRBRAKE to jets like when you throttle down to 0 an force-object is added that works in the opposite direction you fly and it works only for a short time like 2 seconds (quick drop of the force-objects power)???

Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 15 2017, 12:22 PM
Post #5


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Hi Fastj@ck,please dont hijack my thread. If you have a question, please be so kind and open up a new thread wink.gif , thank you
So please guys/ ( laugh.gif Clive...?),somebody tell me please how to code these 2 additional yaw engines that are controlled by throttling up and throttling down..- any ideas smile.gif ?

This post has been edited by bluehawk112: Jul 15 2017, 12:25 PM
Go to the top of the page
 
+Quote Post
clivewil
post Jul 16 2017, 09:45 PM
Post #6


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



QUOTE (bluehawk112 @ Jul 16 2017, 02:22 AM) *
( laugh.gif Clive...?)

i'll give you some more pointers but i won't actually code it for you, that could take hours i don't have spare, sorry - and the whole thing could turn out to be a bad idea or an anticlimax

for orientation and placement, look at a heli's tail rotor engine, and AIX has a Harrier and Forger with stand-alone yaw engines - you want two nearly identical ones but acting in opposite directions

input will be via PIThrottle

i have no idea exactly how it will pan out because i've never done what you're trying to do, but the first thing i'd try would be to give the engines slightly different acceleration values, i.e. they both produce the same power and run at the same speed but vary in how long they take to achieve that power.

remember that there's also a property called setDeAcceleration, so along with setAcceleration you should be able to adjust both ends of the power curve. my memory is a bit hazy but i think you might need to include ObjectTemplate.setUseDeAcceleration 1 (or something like that) in order to use deceleration (but maybe that's only for RotBundles? i dunno. experiment.)

start with one engine and gauge exactly how much effect it has and adjust it to be the bare minimum you can get away with - then clone it and flip it for the second engine. remember that even though the net effect is zero, these things are still producing power and sometimes that has side effects so watch your flight characteristics for anything weird

have fun


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 17 2017, 02:21 AM
Post #7


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Wow, thank you very much, Clive! Youre very helpful- as usual wink.gif ! Very intelligent thoughts. Gonna check it out tongue.gif ...will take a while, I guess. Ill report back



This post has been edited by bluehawk112: Jul 17 2017, 02:26 AM
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 18 2017, 06:30 PM
Post #8


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



QUOTE (bluehawk112 @ Jul 17 2017, 10:21 AM) *
Wow, thank you very much, Clive! Youre very helpful- as usual wink.gif ! Very intelligent thoughts. Gonna check it out tongue.gif ...will take a while, I guess. Ill report back


Okay, Ive got a problem now. Your idea seems to work, Clive, but only a certain amount of time. Its kind of strange: I think, the desired effect -which definitely can be produced- only appears during the spool up time of these extra yaw engines. I dont have a clue why this effect is over after all engines running. Thereafter, throttling up or down does not induce any yaw effects anymore, damn it! uhm.gif

I put the relevant section of the helicopters tweak below: - who can help?
I called the 2 extra yaw engines "MW3_MH6L_TailEngine" and "MW3_MH6R_TailEngine"



ObjectTemplate.addTemplate MW3_AH6_Rotorhead1
ObjectTemplate.setPosition 0/-20/0

ObjectTemplate.addTemplate MW3_AH6_TailRotor
ObjectTemplate.setPosition -0.2757/0.5947/-4.9587

ObjectTemplate.addTemplate MW3_AH6_TailEngine
ObjectTemplate.setPosition 0/0/-4.97495
ObjectTemplate.setRotation -90/0/0


ObjectTemplate.addTemplate MW3_MH6L_TailEngine
ObjectTemplate.setPosition -0.3757/0.5947/-4.9587
ObjectTemplate.setRotation -90/0/0

ObjectTemplate.addTemplate MW3_MH6R_TailEngine
ObjectTemplate.setPosition 0.3757/0.5947/-4.9587
ObjectTemplate.setRotation 90/0/0


rem -------------------------------------
ObjectTemplate.setSoldierExitLocation -2.5/0.5/2 0/0/0
ObjectTemplate.altSoldierExitPosition 2.5/0.5/2
ObjectTemplate.regulateYawInput PIYaw
ObjectTemplate.regulateYaw -0.2/0.2
ObjectTemplate.regulateVerticalPosInput PIThrottle
ObjectTemplate.regulateVerticalPos -0.5/2
ObjectTemplate.maxVertRegAngle 35
ObjectTemplate.noVertRegAngle 55
ObjectTemplate.seatInformation MW3_MH6 0.352862/0.768574/1.11861 0/0/0
ObjectTemplate.seatAnimationSystem Objects/Vehicles/Common/Animations/3p_aircraftPilot_A_animSys.inc
ObjectTemplate.soundFilter heli
ObjectTemplate.sprintFactor 0
ObjectTemplate.vehicleCategory VCHelicopter
ObjectTemplate.listenerObstruction 0.5
ObjectTemplate.damagedAmbientSoundLimit 0.15
ObjectTemplate.crewKitIndex 9
ObjectTemplate.autoUseAbility 1
ObjectTemplate.hasRestrictedExit 1
ObjectTemplate.isOpenVehicle 1



ObjectTemplate.create RotationalBundle MW3_AH6_Rotorhead1
ObjectTemplate.modifiedByUser ""
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.createdInEditor 1
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 0
rem -------------------------------------
ObjectTemplate.addTemplate S_MW3_AH6_Rotorhead1_RotationRpm
ObjectTemplate.addTemplate MW3_AH6_Rotorhead2
ObjectTemplate.setPosition 0/20/0
rem -------------------------------------
ObjectTemplate.setMinRotation 0/-5/-2.6
ObjectTemplate.setMaxRotation 0/5/2.6
ObjectTemplate.setMaxSpeed 0/100/100
ObjectTemplate.setAcceleration 0/-2000/2000
ObjectTemplate.setInputToPitch PIPitch
ObjectTemplate.setInputToRoll PIRoll
ObjectTemplate.setAutomaticReset 1

ObjectTemplate.activeSafe Sound S_MW3_AH6_Rotorhead1_RotationRpm
ObjectTemplate.modifiedByUser ""

ObjectTemplate.create RotationalBundle MW3_AH6_Rotorhead2
ObjectTemplate.modifiedByUser ""
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.createdInEditor 1
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 0
rem -------------------------------------
ObjectTemplate.addTemplate S_MW3_AH6_Rotorhead2_RotationRpm
ObjectTemplate.addTemplate MW3_AH6_MainEngine
ObjectTemplate.setRotation 0/-87/0
rem -------------------------------------
ObjectTemplate.setMinRotation 0/-5/-2.6
ObjectTemplate.setMaxRotation 0/5/2.6
ObjectTemplate.setMaxSpeed 0/100/100
ObjectTemplate.setAcceleration 0/2000/2000
ObjectTemplate.setInputToPitch PIPitch
ObjectTemplate.setInputToRoll PIRoll
ObjectTemplate.setAutomaticReset 1

ObjectTemplate.activeSafe Sound S_MW3_AH6_Rotorhead2_RotationRpm
ObjectTemplate.modifiedByUser ""

ObjectTemplate.create Engine MW3_AH6_MainEngine
ObjectTemplate.modifiedByUser ""
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.createdInEditor 1
rem ---BeginComp:WindAffector ---
ObjectTemplate.createComponent WindAffector
ObjectTemplate.windType RadialDir
ObjectTemplate.windIsDynamic 1
ObjectTemplate.windDirection 0/0/-1
ObjectTemplate.windSpeed 20
ObjectTemplate.windBlowTime -1
ObjectTemplate.windFalloff 30
ObjectTemplate.windRadialFalloff 20
rem ---EndComp ---
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
rem -------------------------------------
rem -------------------------------------
ObjectTemplate.setMaxRotation 0/0/220
ObjectTemplate.setMaxSpeed 0/0/1
ObjectTemplate.setAcceleration 0/0/30
ObjectTemplate.setInputToRoll PIThrottle
ObjectTemplate.setAutomaticReset 1
ObjectTemplate.setEngineType c_ETHelicopter
ObjectTemplate.setTorque 320
ObjectTemplate.setDifferential 290
ObjectTemplate.setGearUp 0.99
ObjectTemplate.setGearDown 0.01
ObjectTemplate.setGearChangeTime 0.1
ObjectTemplate.noPropellerEffectAtSpeed 1
ObjectTemplate.noPropellerEffectAtSpeed 1
ObjectTemplate.horizontalSpeedMagnifier 2
ObjectTemplate.horizontalDampAngle 0.1
ObjectTemplate.horizontalDampAngleFactor 0.001
ObjectTemplate.defaultAngleOfAttack 1
ObjectTemplate.maxAngleOfAttack 12
ObjectTemplate.attackSpeed 6.5
ObjectTemplate.decreaseAngleToZeroVerticalVel 0.5
ObjectTemplate.dampHorizontalVel 5
ObjectTemplate.dampHorizontalVelFactor -0.7
ObjectTemplate.canReverse 0
ObjectTemplate.audio.transformationRelativeRoot 1




ObjectTemplate.create Engine MW3_AH6_TailEngine
ObjectTemplate.modifiedByUser ""
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.createdInEditor 1
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
rem -------------------------------------

rem -------------------------------------
ObjectTemplate.setMinRotation 0/0/-100
ObjectTemplate.setMaxRotation 0/0/100
ObjectTemplate.setMaxSpeed 0/0/100
ObjectTemplate.setAcceleration 0/0/1000
ObjectTemplate.setInputToRoll PIYaw
ObjectTemplate.setAutomaticReset 1
ObjectTemplate.setEngineType c_ETHelicopter
ObjectTemplate.setTorque 70
ObjectTemplate.setDifferential 30
ObjectTemplate.setGearUp 0.7
ObjectTemplate.setGearDown 0.3
ObjectTemplate.setGearRatios 3.5 2.2 1.5 1.1 0.94
ObjectTemplate.noPropellerEffectAtSpeed 2.5
ObjectTemplate.noPropellerEffectAtSpeed 2.5
ObjectTemplate.pureRotational 1
ObjectTemplate.spinWhenNoEngineInAir 0.4
ObjectTemplate.noEffectAtPerpSpeed 110



ObjectTemplate.create Engine MW3_MH6L_TailEngine
ObjectTemplate.modifiedByUser "3DArtist"
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.createdInEditor 1
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setMinRotation 0/0/-100
ObjectTemplate.setMaxRotation 0/0/100
ObjectTemplate.setMaxSpeed 0/0/100
ObjectTemplate.setAcceleration 0/0/100
ObjectTemplate.setDeAcceleration 0/0/2
ObjectTemplate.setInputToRoll PIThrottle
ObjectTemplate.setAutomaticReset 1
ObjectTemplate.setUseDeAcceleration 1
ObjectTemplate.setEngineType c_ETHelicopter
ObjectTemplate.setTorque 70
ObjectTemplate.setDifferential 100
ObjectTemplate.setGearUp 0.1
ObjectTemplate.setGearDown 0.7
rem ObjectTemplate.noPropellerEffectAtSpeed 2.5
rem ObjectTemplate.noPropellerEffectAtSpeed 2.5
ObjectTemplate.decreaseAngleToZero 0
ObjectTemplate.pureRotational 1
rem ObjectTemplate.spinWhenNoEngineInAir 0.4
ObjectTemplate.noEffectAtPerpSpeed 100

rem -------------------------------------

rem -------------------------------------

ObjectTemplate.create Engine MW3_MH6R_TailEngine
ObjectTemplate.modifiedByUser "3DArtist"
ObjectTemplate.setNetworkableInfo BasicInfo
ObjectTemplate.createdInEditor 1
ObjectTemplate.floaterMod 0
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
ObjectTemplate.setMinRotation 0/0/-100
ObjectTemplate.setMaxRotation 0/0/100
ObjectTemplate.setMaxSpeed 0/0/100
ObjectTemplate.setAcceleration 0/0/2
ObjectTemplate.setDeAcceleration 0/0/100
ObjectTemplate.setInputToRoll PIThrottle
ObjectTemplate.setAutomaticReset 1
ObjectTemplate.setUseDeAcceleration 1
ObjectTemplate.setEngineType c_ETHelicopter
ObjectTemplate.setTorque 70
ObjectTemplate.setDifferential 100
ObjectTemplate.setGearUp 0.7
ObjectTemplate.setGearDown 0.1
rem ObjectTemplate.noPropellerEffectAtSpeed 2.5
rem ObjectTemplate.noPropellerEffectAtSpeed 2.5
ObjectTemplate.decreaseAngleToZero 0
ObjectTemplate.pureRotational 1
rem ObjectTemplate.spinWhenNoEngineInAir 0.4
ObjectTemplate.noEffectAtPerpSpeed 100
Go to the top of the page
 
+Quote Post
clivewil
post Jul 18 2017, 07:13 PM
Post #9


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



QUOTE
only appears during the spool up time of these extra yaw engines.

i thought that was what you wanted. do you want it to occur constantly? e.g. slowly yawing while hovering?

---> i went back and read your OP again, ok my bad. i saw 'throttle up' and only focused on that. keep the same setup but with PIPitch as the input. you might need an additional pair of engines, one pair for pitch up, one pair for pitch down IF you can't make it work properly with a single pair - but with ObjectTemplate.canReverse 1 working, you *should* be able to get by with just a single pair. pitch up, they push one way, pitch down, they push the other way

oops, etc.


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 19 2017, 04:02 AM
Post #10


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



QUOTE (clivewil @ Jul 19 2017, 03:13 AM) *
QUOTE
only appears during the spool up time of these extra yaw engines.
i thought that was what you wanted. do you want it to occur constantly? e.g. slowly yawing while hovering? ---> i went back and read your OP again, ok my bad. i saw 'throttle up' and only focused on that. keep the same setup but with PIPitch as the input. you might need an additional pair of engines, one pair for pitch up, one pair for pitch down IF you can't make it work properly with a single pair - but with ObjectTemplate.canReverse 1 working, you *should* be able to get by with just a single pair. pitch up, they push one way, pitch down, they push the other way oops, etc.

Hey Clive, thank you so much for standing by me happy.gif . Perhaps we have a little misunderstanding: the additional yaw momentum that I need actually results from any main rotor torque increase/decrease (in reality: controlled by collective pitch lever) - which is basically the same like throttling up or down in BF2.
So, it doesnt have to do anything with Cyclic stick control inputs/movements -like pitching up or pitching down.

What I wanted to explain is: there seems to be the problem that these yaw engines will wind up by themselves (having used the throttle first time) until they have their final rev/min. During their spool up time, its possible to obtain additional, opposite yaw effects by throttling up and down- as it always should be. Once they are fully wound up, these additional effects disappear and never come back. Now throttling up or down is not accompanied by these additional effects any longer.
So, for me it looks like we always have to reset the engines to zero revolutions everytime they are fully wound up.
Its not "ObjectTemplate.setAutomaticReset 1", though.But "ObjectTemplate.canReverse 1" might be a solution, too - if it prevents the yaw engines to be stuck at their maximum wound up (max revolutions/min) final state...Ill report back wink.gif



-edit-
Okay, heres my report: "ObjectTemplate.canReverse 1" unfortunately did not change anything crybaby.gif
What a bitter pill!
Still, Im convinced if it was somehow possible to automatically reset the additional 2 yaw engines to zero revolutions everytime they are fully wound up, the work is done rolleyes.gif
Basically there must be a way to automatically switch them off once theyre spooled up and then, switch them on again (fully automatically).
Ive seen a mi24s landing gear automatically extending and retracting again - so I dont lose hope that this kind of automatism can be coded in BF2, too.
Any ideas, guys (Clive tongue.gif )?

This post has been edited by bluehawk112: Jul 19 2017, 06:07 AM
Go to the top of the page
 
+Quote Post
clivewil
post Jul 19 2017, 09:50 AM
Post #11


meh.
Group Icon

Group: Mr. Admin
Posts: 2,008,251
Joined: 24-July 07
From: Perth, Western Australia
Member No.: 3,545



i just had a horrible thought... what do you use to control your heli? my setup probably won't work with anything other than a joystick, i.e. mouse+keys won't give the correct input to the engines


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 19 2017, 01:15 PM
Post #12


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



QUOTE (clivewil @ Jul 19 2017, 05:50 PM) *
i just had a horrible thought... what do you use to control your heli? my setup probably won't work with anything other than a joystick, i.e. mouse+keys won't give the correct input to the engines


Thats a wise question, Clive happy.gif . For experimental purposes I used mouse+keys.I thought, when everything is set up, Ill use my joystick+separate throttle+saitek pedals.But youre right, the default hover engine setting could become an issue when testing the settings with keyboard and mouse. When using a throttle (hardware) theres no automatic hover (-throttle setting) as it exists when using the keys (W and S) - you have to find the correct power setting for hovering with your hardware.

But still, thats not the key problem in my point of view.I also realized, when time passes by the yaw effects are getting weaker and weaker (in terms of throttle movement vs yaw output) - basically theyre fading out during the spool up time of the yaw engines. So, its not an abrupt stop...Thats why I will code the spool up time pretty short (timewise). Once both yaw engines are spooled up, they must be shut down and restarted automatically. But I dont know how...

But its a progress. At least, the first flying minute the helicopter behaves like it should be...

This post has been edited by bluehawk112: Jul 19 2017, 04:03 PM
Go to the top of the page
 
+Quote Post
bluehawk112
post Jul 19 2017, 06:10 PM
Post #13


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



Okay, now here we go tongue.gif !
I tried something else: instead of using the coding structure of the tail engine for my yaw engines I used the coding structure of
main engines.
Furthermore, I did not put the 2 yaw engines in opposite directions but in the same direction. One of them has negative angle of attack, though.

Thank you very much, Clive laugh.gif !! As usual, you supported me with your brilliant idea!
I uploaded my favourite helicopter that Im using for flying in the Oculus Rift (in BF2).
The helicopter has improved flight physics now. Its the best I could do.
According this page here

http://www.dodosim.com/fsx206dynamics.html

it has now (roughly, not too realistic though..):
-Torque-Induced Yaw (our topic here!)
-Loss of Tail Rotor Effectiveness when flying fast (weather vane effect)
-Dissymmetry of Lift (at very high speed helo tends to bank to the left)
-Flap Back ( weak, but existent cool.gif )
Here it is for download:

http://www.mediafire.com/file/00wgrm076jgu7yg/MW3_MH6.zip

Have fun, any improvements are welcome!

This post has been edited by bluehawk112: Today, 04:19 AM
Go to the top of the page
 
+Quote Post
MasterChiefRulZ
post Yesterday, 08:01 PM
Post #14


You know the drill...
Group Icon

Group: Mr. Admin
Posts: 10,332
Joined: 31-December 03
From: Home
Member No.: 48



Topic moved and renamed per poster's request.


--------------------
Go to the top of the page
 
+Quote Post
bluehawk112
post Today, 04:13 AM
Post #15


Major
****

Group: Soldiers
Posts: 191
Joined: 5-February 14
From: Planet Mars
Member No.: 10,005



QUOTE (MasterChiefRulZ @ Jul 21 2017, 04:01 AM) *
Topic moved and renamed per poster's request.

Thank you, MCR! happy.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 21st July 2017 - 12:50 PM