Jump to content
Sign in to follow this  
Törni

bow machinegun

Recommended Posts

Has anyone come up with a solution of how to make WW2 tank hull machinegun to be manned and work properly?

I'm working on a Tiger atm. Useless to continue if it is impossible to setup due engine limitations.

An additional turret with a limited traverse perhaps?

Share this post


Link to post
Share on other sites
Has anyone come up with a solution of how to make WW2 tank hull machinegun to be manned and work properly?

I'm working on a Tiger atm. Useless to continue if it is impossible to setup due engine limitations.

An additional turret with a limited traverse perhaps?

Yepp, that is what I tried with my BMP-T proto.

I used RavenDK's multiple turret example as blueprint.

Works as long as you do not assign a waypoint... the new gunner leaves the vehicle and heads for the assigned waypoint... by foot  crazy_o.gif

Same behaviour on all tanks that include an additional gunner  banghead.gif

Share this post


Link to post
Share on other sites

-Add a selection for "bowmg" to your base LOD for the additional machine gun you want to show as a moving piece.

-Add a two point horizontal axis in your memory LOD for that gun called "mg_vertical_axis" on a horizontal plane where you want your bowmg to move up and down.

-Add a two point vertical axis in your memory LOD directly under it called "mg_horizontal_axis" where you want your bowmg to move left and right.

-Add two points along the barrel in the memory LOD. Call one "bowmg_start" & "bowmg_end".

-In the memory LOD Select the points for the "bowmg_start", "bowmg_end" & "mg_vertial_axis" and make a new selection called "otochHlaven1".

-In the memory LOD Select "otochHlaven1" and "mg_horizontal_axis" and make a new selection called "otocvez1".

-In the memory LOD make a new point for your new bowmg's gunner view. Call it "hull_gunner_view".

Save your model and move to the config.

-IF you use the BIS sample configs like I do: In your config.cpp under the turret section of cfgvehicles add a new turret sub class under the commandersoptics section if you are using a inheritable config ( this means you could possible use a base configuration and apply it to several models or tanks ):

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class CommanderOptics_1: NewTurret

{

proxyType="CPGunner";

proxyIndex=2;

gunnerName="hull gunner";

primaryGunner=0;

primaryObserver=0;

body="obsTurret_1";

gun="obsGun_1";

animationSourceBody="obsTurret_1";

animationSourceGun="obsGun_1";

soundServo[]=

{

"",

0.003162,

1.000000

};

gunBeg="";

gunEnd="";

minElev=-4;

maxElev=20;

initElev=0;

minTurn=-360;

maxTurn=360;

initTurn=0;

commanding=2;

outGunnerMayFire=1;

inGunnerMayFire=1;

viewGunnerInExternal=0;

gunnerOpticsModel="\ca\Tracked\optika_tank_driver";

gunnerOutOpticsModel="\ca\Weapons\optika_empty";

gunnerOutOpticsColor[]={0,0,0,1};

gunnerOutForceOptics=0;

gunnerOutOpticsShowCursor=0;

memoryPointGunnerOutOptics="hull_gunner_view";

memoryPointGunnerOptics="hull_gunner_view1";

memoryPointsGetInGunner="pos driver";

memoryPointsGetInGunnerDir="pos driver dir";

memoryPointGun="machinegun";

class ViewOptics

{

initAngleX=0;

minAngleX=-30;

maxAngleX=30;

initAngleY=0;

minAngleY=-100;

maxAngleY=100;

initFov=0.420000;

minFov=0.220000;

maxFov=0.640000;

};

class ViewGunner

{

initAngleX=5;

minAngleX=-30;

maxAngleX=30;

initAngleY=0;

minAngleY=0;

maxAngleY=0;

initFov=0.420000;

minFov=0.220000;

maxFov=0.640000;

};

};

IF you compare the BIS model of the T72, you will see all we did here was change a proxy number and appended "_1" to some of the info. Then the necessary changes were made in the new turret section with the new position "hull gunner view".

From there you will need to add the actual turret config under the model class in the turret class section. This is where you will define your movement limitiations for this new turret. The code is nearly the same as the above, but look at the minor changes.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class CommanderOptics_1: CommanderOptics_1

{

weapons[]=

{

"rip31st_m4a4_30_cal"

};

magazines[]=

{

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt",

"100Rnd_m4a4_30_belt"

};

gunBeg="bowmg_start";

gunEnd="bowmg_end";

body="ObsTurret_1";

gun="Obsgun_1";

gunnerAction="T72_CommanderOut";

gunnerInAction="T72_Commander";

forceHideGunner=1;

startEngine=0;

minElev=-5;

maxElev=5;

initElev=0;

minTurn=-12;

maxTurn=12;

initTurn=0;

gunnerOpticsModel="\rip31st_m4a4\optika_m4a4_commander";

soundServo[]=

{

"\ca\Weapons\Data\Sound\gun_elevate2",

0.000316,

1.000000

};

outGunnerMayFire=0;

inGunnerMayFire=1;

};

};

};

};

Don't copy my code verbatim as it contains custom gunner optics and weapons. You will have to replace those with your own. You can see maxturn and minturn=12 ( 12 degrees left and right for the bowmg ).

Now in your model.cfg if you do the skeletion and cfgmodels section separately like I do you will have to add the skeleton bones for your new moving part. Again I used the BIS sample model.cfg's add just changed the one for the T72 and added my own custom moving parts:

Under your skeleton section add this code with your own model info:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class rip31st_m4a4Skeleton: Tank

{

skeletonInherit="Tank";

skeletonBones[]=

{

"otocvez1",

"",

"bowmg",

"otocvez1",

"otochLhaven1",

"otocvez1"

};

};

In your cfgmodels section add this code for you new bowmg:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class ObsTurret_1

{

type="rotationY";

source="obsTurret_1";

selection="bowmg";

axis="mg_vertical_axis";

animPeriod=0;

memory=1;

minValue="rad -25";

maxValue="rad +25";

angle0="rad -25";

angle1="rad +25";

};

class ObsGun_1: ObsTurret_1

{

type="rotationX";

source="obsGun_1";

selection="bowmg";

axis="mg_horizontal_axis";

memory=1;

};

This should get it all working. Hope it helps. If you need further assistance P/M me.

*NOTE: I'm a noob at configs, but this is how I got it to work in Arma. I'm almost 100% sure there are more efficient ways to program it but it works very well for me. I try to share my info with all, so people can refer to it and have an less difficult time creating addons. There is somewhat of a top secret mentality floating behind some of the addon makers that keeps them from sharing. Sharing is caring.

Goodluck!

Share this post


Link to post
Share on other sites

Thanks for the examples. thumbs-up.gif

I've made several addons so far, but they have all fallen into category of doing about similar stuff that BIS has done with ArmA.

EDIT: A bit of tweaking and now Tiger has an additional crew member. Have to see if AI knows how to operate and actually also fire the weapon.

Share this post


Link to post
Share on other sites

I have re-uploaded the last prototype BMP-T proto 0.25 by zShare

Only difference to the config Rip31st showed, is that I "reused" the T-72 turret definition for the additional right and left grenadelauncher turrets by removing the commander's turret via an empty Turrets class in the turret:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class GunTurret1: MainTurret

{

class Turrets { };

...

I have stopped the project, because someone else implements the BMP-T for ArmA. If anybody else want to continue this addon, feel free. It is unbinarized.

@Rip31st: I agree, sharing is caring. But for this project I decided to share it at armed-assault.de forum and not in this forum here.

mike

Share this post


Link to post
Share on other sites

Yes it works and AI even knows how to fire the bow mg. There are small annoyances.

1) If you leave the vehicle via commander's place you cannot command the vehicle anymore. However if you change places with with other crew members and then exit you can command the vehicle normally.

2) If the vehicle gets damaged sometimes the bow machinegunner exits the tank and continues on foot. (Might be caused by the AI addons that I have installed).

But I can live with that.

Share this post


Link to post
Share on other sites

1) Each turret has tis own commanding value. The highest valued turret commands the vehicle. May be some turrets have the same commanding value and cause this effect  huh.gif

2) Additional turrets can have strange effects. Just like the mentioned waypoint assignment effect. But no one discovered a sollution yet. They tend to leave the vehicle more often than the standard positions (cargo, driver, gunner, commander) in a vehicle.  confused_o.gif

Share this post


Link to post
Share on other sites

look at my Alien APC config , there is  main turret and hull turret

3 turrets is possible to

Torni i can do a config for you for WW2 mod help, or look:

LETS CALL HULL TURRET SELECTION OTOCVEZ3

MAIN IS OTOCVEZ1

COMMANDER OTOCVEZ2

(dear moderator i must write in big letters for important things)

_

class CfgSkeletons  

there you define all selections but most important will be:

"otocvez","",

"otochlaven","otocvez",

"otocvez_2","otocvez",

"otochlaven_2","otocvez_2",

"otocvez_3","",

"otochlaven_3","otocvez_3",

!!!!!!!

MOST IMPORTANT

it causes that vez3 follows NOTHING, vez2 follows main turret

if you have it than turret 1 is main, turret 2 obey commander and turret 1 movement and turret 3 folows noone

=====================================

cfg models:

class otocvez

{

      type = "rotationY";

      source = "mainTurret";

selection = "otocvez";

axis = "OsaVeze";

memory = true;

sourceAddress = "loop";

minValue = rad -360;

                  maxValue = rad +360;

                    angle0 = rad -360;

      angle1 = "rad 360";

  };

class otochlaven

{

      type = "rotationX";

      source = "mainGun";

selection = "OtocHlaven";

axis = "OsaHlavne";

memory = true;

sourceAddress = "clamp";

minValue = "rad -8.5";

                  maxValue = "rad 50";

                    angle0 = "rad -8.5";

      angle1 = "rad 50";

  };

class otocvez_2

{

      type = "rotationY";

      source = "obsTurret";

selection = "otocvez_2";

axis = "OsaVeze_2";

memory = true;

sourceAddress = "loop";

minValue = rad -360;

                  maxValue = rad +360;

                    angle0 = rad -360;

      angle1 = "rad 360";

  };

class otochlaven_2

{

      type = "rotationX";

      source = "obsGun";

selection = "OtocHlaven_2";

axis = "OsaHlavne_2";

memory = true;

sourceAddress = "clamp";

minValue = "rad -8.5";

                  maxValue = "rad 50";

                    angle0 = "rad -8.5";

      angle1 = "rad 50";

  };

class otocvez_3

{

      type = "rotationY";

      source = "Turret_3";

selection = "otocvez_3";

axis = "OsaVeze";

memory = true;

sourceAddress = "loop";

minValue = rad -360;

                  maxValue = rad +360;

                    angle0 = rad -360;

      angle1 = "rad 360";

  };

class otochlaven_3

{

      type = "rotationX";

      source = "Gun_3";

selection = "OtocHlaven_3";

axis = "OsaHlavne_3";

memory = true;

sourceAddress = "clamp";

minValue = "rad -8.5";

                  maxValue = "rad 50";

                    angle0 = "rad -8.5";

      angle1 = "rad 50";

  };

=========================================

cfg vehicles :

class Turrets : Turrets {

class MainTurret : MainTurret {

body = "OtocVez";

gun = "OtocHlaven";

animationSourceBody = "mainTurret";

animationSourceGun = "mainGun";

animationSourceHatch = "hatchGunner";

weapons[] = {VIL_sher_cannon,VIL_m1919_tank};

magazines[] = {"1200Rnd_762x51_M240","VIL_sher_GUN1", "VIL_sher_GUN2"};

soundServo[] = {"\ca\Weapons\Data\Sound\gun_elevate", 0.001, 1.1};

minElev = -5;

maxElev = 20;

minTurn = -360;

maxTurn = 360;

memoryPointGun = "kulas";

memoryPointGunnerOptics = "gunnerview";

gunnerAction = "BMP2_Gunner";

gunnerInAction = "BMP2_Gunner";

gunBeg = "usti hlavne";

gunEnd = "konec hlavne";

forceHideGunner = 1;

gunnerOpticsModel = "\ca\Tracked\optika_M1A1_gunner";

gunnerOutOpticsModel = "";

class Turrets : Turrets {

class CommanderOptics : CommanderOptics {

weapons[] = {"M2"};

magazines[] = {"100Rnd_127x99_M2", "100Rnd_127x99_M2"};

gunnerOpticsModel = "-";

body = "OtocVez_2";

gun = "OtocHlaven_2";

animationSourceBody = "obsTurret";

animationSourceGun = "obsGun";

animationSourceHatch = "";

selectionFireAnim = "zasleh_2";

minElev = -10;

maxElev = 70;

minTurn = -360;

maxTurn = 360;

proxyIndex = 1;

gunnerName = commander;

commanding = 1;

gunBeg = "usti hlavne_2";

gunEnd = "konec hlavne_2";

primary = false;

memoryPointGun = "kulas_2";

memoryPointGunnerOptics = "gunnerview_2";

gunnerAction = "BMP2_Gunner";

gunnerInAction = "BMP2_Gunner";

};

};

};

class BackTurret : MainTurret {

body = "OtocVez_3";

gun = "OtocHlaven_3";

animationSourceBody = "Turret_3";

animationSourceGun = "Gun_3";

animationSourceHatch = "";

selectionFireAnim = "zasleh_3";

minElev = -10;

maxElev = 10;

minTurn = -20;

maxTurn = 20;

proxyIndex = 2;

gunnerName = codriver/ front gunner;

commanding = 0;

gunnerOpticsModel = "\ca\Tracked\optika_stryker_gunner";

gunnerForceOptics = true;

gunBeg = "usti hlavne_3";

gunEnd = "konec hlavne_3";

primary = false;

memoryPointGun = "kulas_3";

memoryPointGunnerOptics = "gunnerview_3";

gunnerAction = "BMP2_Gunner";

gunnerInAction = "BMP2_Gunner";

weapons[] = {VIL_m1919_tank};

magazines[] = {"1200Rnd_762x51_M240"};

};

IT IS EXAMPLE OF SHERMAN NEVER RELEASED BY ME, MADE OVER YEAR AGO

Share this post


Link to post
Share on other sites

Thanks for the examples Vilas smile_o.gif

The bone structure should be OK. It is the strange commanding values of the previous example that are propably causing the strange behavior.

I'll test it tonight.

Share this post


Link to post
Share on other sites
Quote[/b] ]Works as long as you do not assign a waypoint... the new gunner leaves the vehicle and heads for the assigned waypoint... by foot  crazy_o.gif

Same behaviour on all tanks that include an additional gunner  banghead.gif

I didn't read entire topic carefully so maybe this solution was already posted, but here is what fixed this problem for my M1A1 HA...

My M1A1 HA have 3 turrets: main gunner turret, loader turret, commander turret. Under each class I've added primaryGunner and primaryObserver entries to define which turret is main gunner turret and commander turret.

Main gunner turret:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">primaryGunner = 1;

primaryObserver = 0;

Commander turret:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">primaryGunner = 0;

primaryObserver = 1;

Loader turret that is not primary gunner turret and commander turret:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">primaryGunner = 0;

primaryObserver = 0;

Here is riped turret class for my M1A1 HA:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class Turrets: Turrets

{

  class MainTurret: MainTurret

  {

     primaryGunner = 1;

     primaryObserver = 0;

     commanding = 1;

     class Turrets: Turrets

     {

        class CommanderOptics: CommanderOptics

        {

           primaryGunner = 0;

           primaryObserver = 1;

           commanding = 2;

        };

        class LoaderTurret: NewTurret

        {

           primaryGunner = 0;

           primaryObserver = 0;

           commanding = 0;

        };

     };

  };

};

It seams that this fixed all problems with AI boarding new turret for M1A1 HA but I'm not 100% sure.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×