Jump to content
reyhard

Tank porting tutorial

Recommended Posts

East Tank Pack 1.00

East Tank Pack 1.00 - Sample

Note to BIS: In test_tank_01 AnimationSources class is inside turret class, therefore, animations are not working correctly. Are you willing to move it to main body of class and release fix so other people will not be confused by that fact?

First of all, you need to correctly setup Arma 3 Tools. Personally, I used this

http://ohplz.ca/tuts/00/ splendid tutorial with some tweaks (i.e. I dont use P drive thing and I changed list of files to be copied directly to - added rvmat & xml

*.pac;*.paa;*.rtm;*.sqf;*.sqs;*.bikb;*.fsm;*.wss;*  .ogg;*.wav;*.fxy;*.csv;*.html;*.lip;*.txt;*.bisur

f;*.shp;*.rvmat;*.xml; )

The other thing you might need are Sample Models and Textures for them

https://community.bistudio.com/wiki/Arma_2_Sample_Models - Models, rvmats, configs, etc.

https://community.bistudio.com/wiki/Arma_Licensed_Data_Pack - Textures, binarized models & other stuff

Grab that package and extract

*from A2_SM_Data_APL.zip:

Tracked_E - unbinarized models & other rvmats - those are more important because they have TI included

Tracked - crew anims

Weapons - rvmat for dshkm & optics models

Weapons_E - rvmat for dshkm & optics models

RootCfg\Data\ - misc rvmats

ca_e - rvmats

*from ALDP_A2_PBOs_APL

Ca.pbo - extract it to the your p drive or whatever locations used o2 textures

tracked.pbo, tracked_e.pbo, weapons.pbo, weapons_e.pbo - move those extracted files to ca dir, this

will allow you to see all the textures in buldozer right after loading model in oxygen

After that, locate your sample models included with A3 tools (it should be something like C:\Program Files (x86)\Steam\SteamApps\common\Arma 3 Tools\Samples_F\Test_Tank_01 )

13028938915_4265c7ce10_o.jpg

Try to read comments in its config to understand a little bit, what is going inside. We will use

Test_Tank_01.p3d and it's files for our base for t72 port.

Open T72.p3d located in tracked_e\t72 and then test_tank_01.p3d, as you can see, test_tank_01 is basically t72 without res lod 1-5, so it seems to be easy job. But there is one problem ahead - those two models are in different positions. It's possible to copy, paste and then move them manually but there is easier way.

In t72 model, select all point (ctrl+a), create new selection, name it i.e. Whole_Model, redefine and then copy test_tank res lod to t72 model. Select selection you previously made and use Move tool (Points->Transform 3d) and try to find right value so both models are overlaping. After finding right values (in this case they are -0.18, 1.85, -1.25) write them down, reverse t72 to state without test tank model and move your model ticking option "Apply to all lods" in Move tool.

http://farm4.staticflickr.com/3743/13029091243_96f8398d9e_o.jpg

http://farm3.staticflickr.com/2379/13029323044_3e96b6c5b0_o.jpg

13029090833_7006870ccd_o.jpg

So now, you have centred your model, next thing is to move those res lods to your test tank. Create new res lods from 1 to 7 and copy to them t72 model.

After you have your test tank with correct res lods you will have to replace old proxy with those original found in test_tank_01. Delete old selections and proxy itself from model and then copy paste fresh ones in all res lods. You can now delete those ugly standard test_tank res lod without textures, view gunner and shadow volume lod and replace it with appropriate lod from t72. Don't forget to change again proxies on them!

When you will finish that, you can use mass texture & material renaming tool, to change path of texture to your model. Remember to edit rvmats too - their unbinarized version should be easily opened by notepad. Also, don't forget to take a look at that https://dev.withsix.com/projects/cup/wiki/Common_Files_between_A3_and_CA

13029090473_f79aabdd80_z.jpg

Redefine Commander_Gun selection with OtocHlavenVelitele and Commander_Turret with otocvelitele

Rename in memory lod vyfuk start & vyfuk konec to exhaust & exhaust_dir

Copy from t72 memory lod to test_tank commander_weapon_view and change in config Commanderoptics class to

memoryPointGunnerOutOptics = "commander_weapon_view";
gunnerOutOpticsModel = "\A3\weapons_f\reticle\optics_empty";

As far as I remember now, those are only two selections, which has changed it names.

Now we can move to model.cfg

add in cfgSkeletons to Test_Tank_01 skeleton bones those entries

"tanks_holdr","",
"tanks","tanks_holdr",
"ammo_belt","commander_gun",
"OtocHlavenVelitele_Shake","commander_gun",
"magazine","commander_gun",
"feedtray_cover","commander_gun",
"bullet001","bullet002",
"bullet002","bullet003",
"bullet003","bullet004",
"bullet004","ammo_belt"

They are handling extra animations required for dshkm gun.

put that at the beginning of models.cfg

#define BULLET_HIDE(x,from,count) class Bullet##x\
		{\
			type="hide";\
			source="revolving";\
			sourceAddress="mirror";\
			selection=bullet##x;\
			minValue=-1.000000;\
			maxValue= 0.000000;\
			hideValue=((count+x-from-2)/count)+0.00001;\
		};
#define BULLET_HIDE_2nd(x,from,count) class Bullet_2##x\
		{\
			type="hide";\
			source="revolving_2";\
			sourceAddress="mirror";\
			selection=bullet##x##_2;\
			minValue=-1.000000;\
			maxValue= 0.000000;\
			hideValue=((count+x-from-2)/count)+0.00001;\
		};

Add to cfgModels test_tank_01 Animations

		class ammo_belt_rotation
		{
			type="rotationZ";
			source="ReloadAnim";
			selection="ammo_belt";
			axis="ammo_belt_axis";
			memory=1;
			sourceAddress="loop";
			minValue=0.000000;
			maxValue=1.0000;
			angle0=0.000000;
			angle1=-0.209440;
		};
		class Turret_shake:ammo_belt_rotation
		{
			type="translation";
			selection="commander_gun";
			axis="Commander_Turret_Axis";
			sourceAddress="mirror";
			offset0=0;
			offset1=-0.01;
			minValue=0.0;
			maxValue=0.05;
		};
		class Turret_shake_aside:Turret_shake
		{
			axis="Commander_Gun_Axis";
			maxValue=0.05*1.3;
		};
		class Feedtray_cover_up
		{
			type="rotation";
			source="reloadMagazine";
			selection="feedtray_cover";
			axis="feedtray_cover_axis";
			memory=0;
			minValue=0.1000000;
			maxValue=0.130000;
			angle0=0.000000;
			angle1=-1.570796;
		};
		class Feedtray_cover_down:feedtray_cover_up
		{
			minValue=0.860000;
			maxValue=0.900000;
			angle0=0.000000;
			angle1=1.570796;
		};
		class Magazine_hide
		{
			type="hide";
			source="reloadMagazine";
			sourceAddress="mirror";
			selection="magazine";
			minValue=0.0;
			maxValue=0.5;
			hideValue=0.56;
		};
		BULLET_HIDE(001,4,100)
		BULLET_HIDE(002,4,100)
		BULLET_HIDE(003,4,100)
		BULLET_HIDE(004,4,100)

You can remove wreck lod from you test tank, as It will be working without it (handled by hide animations in cfgModels). However, you will need correct damage rvmats to have nice look on them when they are burning ;)

I skipped part with config work like adding custom crew anims, changing sounds, etc. as I think it's covered by other tutorials and you easily see how I did that all looking at sample model I provided. Ah, don't forget to add

attenuationEffectType = "TankAttenuation"; 

to your vehicle config as it will fix echo bug inside turret

cheers!

Share this post


Link to post
Share on other sites
On 25.05.2017 at 3:30 PM, bhcluster said:

Hi, great work. Any chance of a video tutorial for this?

I'm afraid I don't have time for something like that anytime soon

Share this post


Link to post
Share on other sites

hi, is this tutorial sill up to date?

 

ps: what is the best tutorial to set up the 3Dmodel (vertex groups, UV mapping, shadow, geometry.. etc) in blender before export to object builder please?

Share this post


Link to post
Share on other sites

@RedScares check: 

 

what do you intend to port?

Share this post


Link to post
Share on other sites

Thanks i'll ckeck that, i'm working on a amx 56 french tank(1st part of a french pack project), but i don't know what is the best between blender or 3dsmax for arma 3 models

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

×