IPB


Welcome Guest ( Log In | Register )

 Forum Rules ArmedAssault.info Forum Rules
 
Reply to this topicStart new topic
> Rigging tank models for ArmA 2
Carnaxus
post Mar 29 2014, 00:32
Post #1


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



I have searched no less than six forums, Google, and Youtube for nearly a week now with no success. I am trying to add some new tanks to ArmA 2. I cannot find any information anywhere about how to set up the bones and/or attachment points. Does anyone here know of a tutorial that will explain this?
 
Quote Post
D@V£
post Mar 29 2014, 14:52
Post #2


Gee, I wish we had one of them doomsday machines.
Group Icon

Group: Moderators
Posts: 2,037
Joined: 13-November 06
From: Wales
Member No.: 155



Download one of the sample model packages (click here) and look at the tanks in that. It's probably easiest to name the selections in Oxygen.

If you're not familar with the idea of naming selections, have a read of this - it's for OFP, but the basic idea is the same. You'll also need to define the axis for moving parts in the memory LOD (again, if you're confused, look at the sample models - they explain it better than I ever could tongue.gif )

For a basic tank, you'll want a model.cfg that looks like this:
CODE
class CfgSkeletons
{
    class Vehicle;
    class TankBase: Vehicle
    {
        skeletonInherit="Vehicle";
        skeletonBones[]=
        {
            "kolL1","",
            "kolL2","",
            "kolL3","",
            "kolL4","",
            "kolL5","",
            "kolL6","",
            "kolL7","",
            "kolL8","",
            "kolP1","",
            "kolP2","",
            "kolP3","",
            "kolP4","",
            "kolP5","",
            "kolP6","",
            "kolP7","",
            "kolP8","",
            "podkoloL1","",
            "podkoloL2","",
            "podkoloL3","",
            "podkoloL4","",
            "podkoloL5","",
            "podkoloL6","",
            "podkoloL7","",
            "podkoloL8","",
            "podkoloP1","",
            "podkoloP2","",
            "podkoloP3","",
            "podkoloP4","",
            "podkoloP5","",
            "podkoloP6","",
            "podkoloP7","",
            "podkoloP8","",
            "koloL1","podkoloL1",
            "koloL2","podkoloL2",
            "koloL3","podkoloL3",
            "koloL4","podkoloL4",
            "koloL5","podkoloL5",
            "koloL6","podkoloL6",
            "koloL7","podkoloL7",
            "koloL8","podkoloL8",
            "koloP1","podkoloP1",
            "koloP2","podkoloP2",
            "koloP3","podkoloP3",
            "koloP4","podkoloP4",
            "koloP5","podkoloP5",
            "koloP6","podkoloP6",
            "koloP7","podkoloP7",
            "koloP8","podkoloP8",
            "ukaz_rychlo","",
            "ukaz_rychlo2","",
            "ukaz_rpm","",
            "ukaz_radar","",
            "hodinova","",
            "minutova","",
            "kompas","",
            "ukazsmer","",
            "damageHide","",
            "podkoloL1_hide","podkoloL1",
            "podkoloL2_hide","podkoloL2",
            "podkoloL3_hide","podkoloL3",
            "podkoloL4_hide","podkoloL4",
            "podkoloL5_hide","podkoloL5",
            "podkoloL6_hide","podkoloL6",
            "podkoloL7_hide","podkoloL7",
            "podkoloL8_hide","podkoloL8",
            "podkoloP1_hide","podkoloP1",
            "podkoloP2_hide","podkoloP2",
            "podkoloP3_hide","podkoloP3",
            "podkoloP4_hide","podkoloP4",
            "podkoloP5_hide","podkoloP5",
            "podkoloP6_hide","podkoloP6",
            "podkoloP7_hide","podkoloP7",
            "podkoloP8_hide","podkoloP8"
        };
    };
    class Tank: TankBase
    {
        skeletonInherit="TankBase";
        skeletonBones[]=
        {
            "OtocVez","",
            "OtocHlaven","OtocVez",
            "OtocVelitele","OtocVez",
            "OtocHlavenVelitele","OtocVelitele",
            "poklop_driver","",
            "poklop_commander","OtocVelitele",
            "poklop_gunner","OtocVez",
            "damageVez","OtocVez"
        };
    };
};
class Rotation;
class CfgModels
{
    class Vehicle;
    class Tank: Vehicle
    {
        sectionsInherit="Vehicle";
        sections[]=
        {
            "zadni svetlo",
            "brzdove svetlo",
            "PasOffsetP",
            "PasOffsetL",
            "telo",
            "pas_L",
            "pas_P",
            "motor",
            "vez",
            "zbran",
            "clan",
            "clan_sign",
            "loader_turret"
        };
        skeletonName="Tank";
        class Animations
        {
            // destruct BASE START
            class MainTurret_destructY
            {
                type="rotationY";
                source="damage"; //damage //test
                selection="OtocVez";
                axis="osaveze";
                animPeriod=0;
                minValue=0.99;
                maxValue=1;
                angle0=0;
                angle1="rad 15";
            };

            class MainGun_destructX:MainTurret_destructY
            {
                type="rotationX";
                selection="OtocHlaven";
                axis="osahlavne";
                angle1="rad -10";
            };
            class MainGun_destructY:MainGun_destructX
            {
                type="rotationY";
                angle1="rad +5";
            };
            class MainGun_destructZ:MainGun_destructX
            {
                type="rotationZ";
                angle1="rad +5";
            };

            class OtocVelitele_destruct:MainTurret_destructY
            {
                selection="OtocVelitele";
                type="rotation";
                axis="osavelitele";
                angle1="rad -25";
            };

            class OtocHlavenVelitele_destructX:MainTurret_destructY
            {
                selection="OtocHlavenVelitele";
                type="rotation";
                axis="OsaHlavneVelitele";
                angle1="rad -20";
            };

            class OtocHlavenVelitele_destructY:OtocHlavenVelitele_destructX
            {
                type="rotationY";
                angle1="rad +5";
            };
            class OtocHlavenVelitele_destructZ:OtocHlavenVelitele_destructX
            {
                type="rotationZ";
                angle1="rad -3";
            };


            // destruct BASE END

            class damageHide
            {
                type="hide";
                source="damage";
                selection="damageHide";
            };
            class HatchDriver
            {
                type="rotation";
                source="hatchDriver";
                selection="poklop_driver";
                axis="osa_poklop_driver";
                animPeriod=0;
                angle0=0;
                angle1="rad -100";
            };
            class IndicatorSpeed
            {
                type="rotation";
                source="speed";
                selection="ukaz_rychlo";
                axis="osa_rychlo";
                memory=1;
                animPeriod=0;
                minValue=0;
                maxValue=16.670000;
                angle0=0;
                angle1="rad -240";
            };
            class IndicatorSpeed2
            {
                type="rotation";
                source="speed";
                selection="ukaz_rychlo2";
                axis="osa_rychlo2";
                memory=1;
                animPeriod=0;
                minValue=0;
                maxValue=16.670000;
                angle0=0;
                angle1="rad -240";
            };
            class IndicatorRPM
            {
                type="rotation";
                source="rpm";
                selection="ukaz_rpm";
                axis="osa_rpm";
                memory=1;
                animPeriod=0;
                minValue=0;
                maxValue=1;
                angle0=0;
                angle1="rad -340";
            };
            class Radar
            {
                type="rotation";
                source="time";
                selection="ukaz_radar";
                axis="osa_radar";
                memory=1;
                minValue=0;
                maxValue=2;
                sourceAddress="loop";
                angle0=0;
                angle1="rad 360";
            };
            class IndicatorTurret
            {
                type="rotation";
                source="turretDir";
                selection="ukazsmer";
                axis="osa_ukazsmer";
                memory=1;
                animPeriod=0;
                minValue=0;
                maxValue=6.283185;
                angle0=0;
                angle1="rad 360";
            };
            class WatchHour
            {
                type="rotation";
                source="clockHour";
                selection="hodinova";
                axis="osa_time";
                memory=1;
                animPeriod=0;
                angle0=0;
                angle1="rad 360";
            };
            class WatchMinute
            {
                type="rotation";
                source="clockMinute";
                selection="minutova";
                axis="osa_time";
                memory=1;
                animPeriod=0;
                angle0=0;
                angle1="rad 360";
            };
            class Wheel_kolL1
            {
                type="rotationX";
                source="wheelL";
                selection="kolL1";
                axis="";
                memory=1;
                animPeriod=0;
                angle0=0;
                angle1="rad -360";
                sourceAddress="loop";
            };
            class Wheel_koloL1: Wheel_kolL1
            {
                selection="koloL1";
            };
            class Wheel_podkoloL1
            {
                type="translationY";
                source="damper";
                selection="podkoloL1";
                axis="";
                memory=1;
                animPeriod=0;
                minValue=-1000;
                maxValue=1000;
            };
            class Wheel_kolP1: Wheel_kolL1
            {
                source="wheelR";
                selection="kolP1";
            };
            class Wheel_koloP1: Wheel_koloL1
            {
                source="wheelR";
                selection="koloP1";
            };
            class Wheel_podkoloP1: Wheel_podkoloL1
            {
                selection="podkoloP1";
            };
            class Wheel_kolL2: Wheel_kolL1
            {
                selection="kolL2";
            };
            class Wheel_kolL3: Wheel_kolL1
            {
                selection="kolL3";
            };
            class Wheel_kolL4: Wheel_kolL1
            {
                selection="kolL4";
            };
            class Wheel_kolL5: Wheel_kolL1
            {
                selection="kolL5";
            };
            class Wheel_kolL6: Wheel_kolL1
            {
                selection="kolL6";
            };
            class Wheel_kolL7: Wheel_kolL1
            {
                selection="kolL7";
            };
            class Wheel_kolL8: Wheel_kolL1
            {
                selection="kolL8";
            };
            class Wheel_kolP2: Wheel_kolP1
            {
                selection="kolP2";
            };
            class Wheel_kolP3: Wheel_kolP1
            {
                selection="kolP3";
            };
            class Wheel_kolP4: Wheel_kolP1
            {
                selection="kolP4";
            };
            class Wheel_kolP5: Wheel_kolP1
            {
                selection="kolP5";
            };
            class Wheel_kolP6: Wheel_kolP1
            {
                selection="kolP6";
            };
            class Wheel_kolP7: Wheel_kolP1
            {
                selection="kolP7";
            };
            class Wheel_kolP8: Wheel_kolP1
            {
                selection="kolP8";
            };
            class Wheel_koloL2: Wheel_koloL1
            {
                selection="koloL2";
            };
            class Wheel_koloL3: Wheel_koloL1
            {
                selection="koloL3";
            };
            class Wheel_koloL4: Wheel_koloL1
            {
                selection="koloL4";
            };
            class Wheel_koloL5: Wheel_koloL1
            {
                selection="koloL5";
            };
            class Wheel_koloL6: Wheel_koloL1
            {
                selection="koloL6";
            };
            class Wheel_koloL7: Wheel_koloL1
            {
                selection="koloL7";
            };
            class Wheel_koloL8: Wheel_koloL1
            {
                selection="koloL8";
            };
            class Wheel_koloP2: Wheel_koloP1
            {
                selection="koloP2";
            };
            class Wheel_koloP3: Wheel_koloP1
            {
                selection="koloP3";
            };
            class Wheel_koloP4: Wheel_koloP1
            {
                selection="koloP4";
            };
            class Wheel_koloP5: Wheel_koloP1
            {
                selection="koloP5";
            };
            class Wheel_koloP6: Wheel_koloP1
            {
                selection="koloP6";
            };
            class Wheel_koloP7: Wheel_koloP1
            {
                selection="koloP7";
            };
            class Wheel_koloP8: Wheel_koloP1
            {
                selection="koloP8";
            };
            class Wheel_podkoloL2: Wheel_podkoloL1
            {
                selection="podkoloL2";
            };
            class Wheel_podkoloL3: Wheel_podkoloL1
            {
                selection="podkoloL3";
            };
            class Wheel_podkoloL4: Wheel_podkoloL1
            {
                selection="podkoloL4";
            };
            class Wheel_podkoloL5: Wheel_podkoloL1
            {
                selection="podkoloL5";
            };
            class Wheel_podkoloL6: Wheel_podkoloL1
            {
                selection="podkoloL6";
            };
            class Wheel_podkoloL7: Wheel_podkoloL1
            {
                selection="podkoloL7";
            };
            class Wheel_podkoloL8: Wheel_podkoloL1
            {
                selection="podkoloL8";
            };
            class Wheel_podkoloP2: Wheel_podkoloP1
            {
                selection="podkoloP2";
            };
            class Wheel_podkoloP3: Wheel_podkoloP1
            {
                selection="podkoloP3";
            };
            class Wheel_podkoloP4: Wheel_podkoloP1
            {
                selection="podkoloP4";
            };
            class Wheel_podkoloP5: Wheel_podkoloP1
            {
                selection="podkoloP5";
            };
            class Wheel_podkoloP6: Wheel_podkoloP1
            {
                selection="podkoloP6";
            };
            class Wheel_podkoloP7: Wheel_podkoloP1
            {
                selection="podkoloP7";
            };
            class Wheel_podkoloP8: Wheel_podkoloP1
            {
                selection="podkoloP8";
            };
            class podkoloL1_hide_damage: damageHide
            {
                selection="podkoloL1_hide";
            };
            class podkoloL2_hide_damage: damageHide
            {
                selection="podkoloL2_hide";
            };
            class podkoloL3_hide_damage: damageHide
            {
                selection="podkoloL3_hide";
            };
            class podkoloL4_hide_damage: damageHide
            {
                selection="podkoloL4_hide";
            };
            class podkoloL5_hide_damage: damageHide
            {
                selection="podkoloL5_hide";
            };
            class podkoloL6_hide_damage: damageHide
            {
                selection="podkoloL6_hide";
            };
            class podkoloL7_hide_damage: damageHide
            {
                selection="podkoloL7_hide";
            };
            class podkoloL8_hide_damage: damageHide
            {
                selection="podkoloL8_hide";
            };
            class podkoloP1_hide_damage: damageHide
            {
                selection="podkoloP1_hide";
            };
            class podkoloP2_hide_damage: damageHide
            {
                selection="podkoloP2_hide";
            };
            class podkoloP3_hide_damage: damageHide
            {
                selection="podkoloP3_hide";
            };
            class podkoloP4_hide_damage: damageHide
            {
                selection="podkoloP4_hide";
            };
            class podkoloP5_hide_damage: damageHide
            {
                selection="podkoloP5_hide";
            };
            class podkoloP6_hide_damage: damageHide
            {
                selection="podkoloP6_hide";
            };
            class podkoloP7_hide_damage: damageHide
            {
                selection="podkoloP7_hide";
            };
            class podkoloP8_hide_damage: damageHide
            {
                selection="podkoloP8_hide";
            };
            class damageVez: damageHide
            {
                selection="damageVez";
            };
        };
    };
    class mymodelname: Tank {};
};


(Obviously, change "mymodelname" to the name of your model. Ie, if you're named your model "Mytank.p3d", you'll want to have "class Mytank: Tank {};" for that line)


--------------------
The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you hate me love me secretly fear that Mark is watching you while you sleep. secretly wish that Mark is watching you while you sleep.
Site Issues Thread - Complain about site issues here. We might even fix them!
Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly".

QUOTE(Major Mike Shearer)
We can categorically state that we have not released man-eating badgers into the area.
QUOTE(Brace Belden)
A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one.
 
Quote Post
Carnaxus
post Apr 1 2014, 03:41
Post #3


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



So I don't have to add a crapton of bones in 3Ds Max?
 
Quote Post
D@V£
post Apr 1 2014, 10:24
Post #4


Gee, I wish we had one of them doomsday machines.
Group Icon

Group: Moderators
Posts: 2,037
Joined: 13-November 06
From: Wales
Member No.: 155



There's probably is a way you can do it in 3Ds Max, but Oxygen's made to do this sort of thing, so... tongue.gif


--------------------
The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you hate me love me secretly fear that Mark is watching you while you sleep. secretly wish that Mark is watching you while you sleep.
Site Issues Thread - Complain about site issues here. We might even fix them!
Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly".

QUOTE(Major Mike Shearer)
We can categorically state that we have not released man-eating badgers into the area.
QUOTE(Brace Belden)
A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one.
 
Quote Post
Carnaxus
post Apr 8 2014, 02:16
Post #5


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



Good. That's all I really needed to know. Thanks!
 
Quote Post
Carnaxus
post Apr 11 2014, 01:15
Post #6


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



Actually. Is there any way to make an ArmA 2 tank not able to neutral steer? Like instead of spinning in place it skid-steers?
 
Quote Post
D@V£
post Apr 11 2014, 11:44
Post #7


Gee, I wish we had one of them doomsday machines.
Group Icon

Group: Moderators
Posts: 2,037
Joined: 13-November 06
From: Wales
Member No.: 155



I don't think so. I'm pretty sure that sort of thing is hardcoded.

(You might be able to emulate the effect by using the wheeled base class and having a very tight turning circle, but IIRC you can't get track textures working then. Though I may be thinking of ArmA.1, there. Iron Front has working half-tracks using the wheeled model, and I don't think they changed the engine that much from ArmA.2)


--------------------
The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you hate me love me secretly fear that Mark is watching you while you sleep. secretly wish that Mark is watching you while you sleep.
Site Issues Thread - Complain about site issues here. We might even fix them!
Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly".

QUOTE(Major Mike Shearer)
We can categorically state that we have not released man-eating badgers into the area.
QUOTE(Brace Belden)
A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one.
 
Quote Post
Carnaxus
post Apr 13 2014, 05:12
Post #8


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



QUOTE(D@V£ @ Apr 11 2014, 02:44) *
I don't think so. I'm pretty sure that sort of thing is hardcoded.

(You might be able to emulate the effect by using the wheeled base class and having a very tight turning circle, but IIRC you can't get track textures working then. Though I may be thinking of ArmA.1, there. Iron Front has working half-tracks using the wheeled model, and I don't think they changed the engine that much from ArmA.2)


Either I44 or Hell in the Pacific also have working halftracks that drive as "trucks." I'm trying to bring over a bunch of tanks from the game World of Tanks. My intention was to convert every single one (eventually), but I want them to drive correctly. I wonder if I can trick the game engine into putting forward drive onto the track that would normally be going "backwards" during a neutral steer, thereby countering the reverse drive, for those tanks that aren't supposed to have that ability?

Also, something else I just thought of. How hard is it to set up a non-missile-based artillery unit to use the artillery computer system?

This post has been edited by Carnaxus: Apr 13 2014, 05:13
 
Quote Post
Carnaxus
post Apr 19 2014, 00:08
Post #9


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



*nudge*
 
Quote Post
D@V£
post Apr 19 2014, 11:40
Post #10


Gee, I wish we had one of them doomsday machines.
Group Icon

Group: Moderators
Posts: 2,037
Joined: 13-November 06
From: Wales
Member No.: 155



Please don't bump threads. If people don't know the answer, asking repeatedly isn't going to help.


--------------------
The Rules - Nothing too complicated, follow these and we'll have no problems.
Moderation Feedback Thread - Tell everyone how much you hate me love me secretly fear that Mark is watching you while you sleep. secretly wish that Mark is watching you while you sleep.
Site Issues Thread - Complain about site issues here. We might even fix them!
Community Chatter Thread - Furthest Mud-sling gets a free subscription to "JdB Monthly".

QUOTE(Major Mike Shearer)
We can categorically state that we have not released man-eating badgers into the area.
QUOTE(Brace Belden)
A machine gun is like a woman, I don’t understand it, I’m afraid of it, and one day I’ll accidentally be killed by one.
 
Quote Post
Carnaxus
post Apr 26 2014, 07:24
Post #11


New Member
*

Group: Members
Posts: 7
Joined: 29-March 14
Member No.: 10,416



Probably should have mentioned I was only doing one bump then was gonna let it die, though I really really do hope someone out there has an answer. Last post barring anyone knowing the answer.
 
Quote Post

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

 



Lo-Fi Version Time is now: 28th March 2024 - 23:08