Jump to content
Sign in to follow this  
scotg

Cars - multiple problems

Recommended Posts

Initial Overview:

- Arma 3 Mod Experience

- Texture UV problems

- Movement problems

- Instrument problems

 

Mod Experience
I have a few custom vehicles, of all types, which I am going to bring into a mod pack. I've had a moderate level of success with helicopters, but there is still much to fix. For example, I can get a heli to fly, use instruments, main and tail rotor blades spin, and flight stick movement, but I cannot get elevator wing and other code-based animations to work. The important part at this point is that it is flyable and readable. I've stepped away from that for a little while to try wheeled vehicles, starting with a basic civilian SUV, the LM002.

lm002__9__by_rooster3d-d9vb439.jpg

 

Texture Problems

Right off the bat, you can probably see some UV issues in the _ca textures above. That is, the texture containing alpha channels, which holds the glass and the grilles, is ignoring its UV coordinates. The result is we get white chunks of texture in unwanted places. You can see half of the grille is working fine, and the bottom half is crap. Also, on the windows we see white stripes. The headlights seem unaffected, but there could be unseen issues at another angle.

 

Below is the UV coordinates for my glass and grilles.
glass_uvs_by_rooster3d-d9vbgwv.jpg

 

The yellow lines are the UVs as seen in Object Builder. The red UVs are copied from the first row of shapes, and happen to be the outer windows; however I scaled them up to about where they seem to align in-game. Where yellow is in X, Y, the red turned out to be 2X and 2Y. I believe the whole UV layout is blown up 2X, 2Y in-game for some reason, apart from the headlights, which seem to look like they are in position.

 

Here's an interior look:
lm002__5__by_rooster3d-d9vb41q.jpg

 

The color of the grille is seen through the opacity of the window. In other words, the UV seems to be working for the ALPHA channel in this case, but not for the RGB - even though it's the same _ca.paa file.

 

Movement Problems

The vehicle won't budge at all. It turns on, but won't move. I can attach slings, but I cannot lift it. What happens is the slings stretch out to their max, and then it just breaks off. The overall "mass" of this vehicle is temporarily at about 2700. Seems feasible.

 

Memory Animation Problems

The steering wheel ("drivewheel") doesn't turn, nor do the front wheels. None of the instruments come on. Everything has proper memory points and axis to function, but nothing moves. This, combined with the vehicle's overall lack of movement, makes me think there's a skeleton problem, or naming problem in the model.cfg file. However, some things do work to some degree, such as the exhaust, entry points, and PIP for mirrors; I haven't bothered with lights yet.

 

I hope to get help on this and get it out to everyone soon. I have more vehicles in the works, as well. Aside from the UV problem, I need to fix my textures. Thankfully, that is within my control at this stage.

Share this post


Link to post
Share on other sites

At this point, I have solved some of the issues mentioned above. It turns out the glass' RVMAT had unusual scale parameters for the different stages. Setting everything to '1' was the key there. For propelling the car and instruments, it was a matter of name mismatch between the model and the class in the model.cfg. I had forgotten to add a version number to the P3D file; i.e: LM002.p3d should have been LM002_01.p3d since that is how I defined it in the CFG file.

 

The instruments are working, but they need to be corrected. The suspension is still not moving. I'm not sure if this is model.cfg or config.cpp editing, but it's sure not a modeling issue.

 

Is there a way to adjust the driver's hands' positions to fit a smaller steering wheel (drivewheel)?

Share this post


Link to post
Share on other sites

Hi, I have the same problems with my models. So far I've been able to import 2 cars into the game and drive them but the wheels and drivewheel have no animation. 

 

I think I might have something that may help you with your driver position problem HERE It's a driver model in a .p3d that I was able to pull out of another car. I believe you can use this as a proxy in order to get the positioning right on the player model.

 

Let me know if you come up with anything on the wheels. I'm not sure what my problem is. I've named everything correctly but still haven't been able to figure out the problem.

 

Here is some of my work: tmotQpC.png

Share this post


Link to post
Share on other sites

I've almost solved all the initial problems, except the visual suspension.

- The instruments are working, but they need adjustments.

- I used the animation from the SUV for seating; it helps a lot.

- Texture placement in RVMATs were scaled up because I started from the Offroad RVMATs, so the solution was to set them all to a 1 in scale.

- I also borrowed the performance parameters from the SUV, in place of the test_car parameters. The vehicle performs better on and off road, now.

- I even managed to get 8 paint jobs to choose at random.

The only thing still wrong is the visual suspension matching the performance.

 

One thing that I fixed to get animations working was in the model.cfg, under class CfgModels: after class Default section there should be class "whatever your p3d's filename is":Default - minus the quotes. Then your skeletonName WITH quotes should match whatever you named it at the top of the file, where the bone definitions are.

 

Only other thing I can think of is to check your non-visible LODs for consistency. Make sure your memory LOD has boneName_axis for rotational pieces. Make sure you have a land contact LOD with for points under the wheels, labled wheel_x_y_damper_land. The wheels in the geometry LOD should be wheel_x_y_damper, and give them each a mass of about 20-100 (I'd say about 70 for the Tumbler rear wheels, or 35 per tire x 4 tires).

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for your help :) I was able to successfully fix it. It was a model.cfg error with the names. Sorry I'm not able to help you, I'm just starting out. There are a couple articles out there on suspensions here is one that I can give to you but I think you might have already seen this. https://community.bistudio.com/wiki/Arma_3_Cars_Config_Guidelines

  • Like 1

Share this post


Link to post
Share on other sites

Here's something interesting: the SUV and Offroad (maybe others) have mismatch for damper_land_axis. The selection is actually named posun wheel_x_y, whereas in model.cfg it's trying to find wheel_x_y_damper_land_axis. How it's managing to work is one of those little annoying inconsistent mysteries. The Test_car model.cfg has it right, calling for posun*. SO...

 

Thank You, UrbanizedGamerz!! Although I have looked at that page several times, one more look allowed me to focus on that one section that was different from my own. I wouldn't have looked again so closely if you hadn't resurfaced it for me. Now, my model is working much better!!

Share this post


Link to post
Share on other sites

The LM002 is anything but a basic civilian SUV.  The US army used a LM002 that belonged to one of Saddam's brothers or sons for target practice not knowing what it was.

 

Can you post your model config?

  • Like 1

Share this post


Link to post
Share on other sites

The LM002 is anything but a basic civilian SUV.  The US army used a LM002 that belonged to one of Saddam's brothers or sons for target practice not knowing what it was.

 

Can you post your model config?

LOL

I get what you're saying... it can shift from 4x2 to 4x4 to 4x4 locked. I've got it set up more of a 4x4 limited... for now. I don't know how it should perform, but I figure a BMW-ish SUV is a better starting point than a weird Audi-looking pickup truck. Have a gander:

 

class cfgSkeletons
{
    class Default
    {
        isDiscrete = 1;
        skeletonInherit = "";
        skeletonBones[] = {};
    };
    class LM002 : default
    {
        SkeletonBones[]=
        {
            "drivewheel",    "",
            "wheel_1_1_damper_land",    "",
            "wheel_1_1_damper",    "wheel_1_1_damper_land",
            "wheel_1_1_steering",    "wheel_1_1_damper",
            "wheel_1_1",    "wheel_1_1_steering",
            "wheel_1_1_unhide",    "wheel_1_1",
            "wheel_1_1_hide",    "wheel_1_1",
            "wheel_1_2_damper_land",    "",
            "wheel_1_2_damper",    "wheel_1_2_damper_land",
            "wheel_1_2_steering",    "wheel_1_2_damper",
            "wheel_1_2",    "wheel_1_2_steering",
            "wheel_1_2_unhide",    "wheel_1_2",
            "wheel_1_2_hide",    "wheel_1_2",
            "wheel_2_1_damper_land",    "",
            "wheel_2_1_damper",    "wheel_2_1_damper_land",
            "wheel_2_1_steering",    "wheel_2_1_damper",
            "wheel_2_1",    "wheel_2_1_steering",
            "wheel_2_1_unhide",    "wheel_2_1",
            "wheel_2_1_hide",    "wheel_2_1",
            "wheel_2_2_damper_land",    "",
            "wheel_2_2_damper",    "wheel_2_2_damper_land",
            "wheel_2_2_steering",    "wheel_2_2_damper",
            "wheel_2_2",    "wheel_2_2_steering",
            "wheel_2_2_unhide",    "wheel_2_2",
            "wheel_2_2_hide",    "wheel_2_2",
            "otocvez",    "",
            "otochlaven",    "otocvez",
            "damagehlaven",    "otochlaven",
            "damagevez",    "otocvez",
            "damagehide",    "",
            "glass1",    "damagehide",
            "glass2",    "damagehide",
            "glass3",    "damagehide",
            "glass4",    "damagehide",
            "glass5",    "damagehide",
            "glass6",    "damagehide",
            "ukaz_rychlo",    "",
            "ukaz_rychlo2",    "",
            "ukaz_rpm",    "",
            "mph",    "",
            "rpm",    "",
            "fuel",    "",
            "temp",    "",
            "oil",    "",
            "volt",    "",
            "fuel_3",    "",
            "prop_01",    "",
            "prop_02",    "",
            "prop_2",    "",
            "prop_1",    "",
            "reverse_light",    "",
            "daylights",    "",
            "pedal_brake",    "",
            "pedal_thrust",    "",
            "door1",    "",
            "door2",    "",
            "door3",    "",
            "door4",    "",
            "door5",    "",
            "door6",    "",
            "display_off",    ""
        };
    };
};
class CfgModels
{
    class Default
    {
        sections[] = {};
        sectionsInherit="";
        skeletonName = "";
    };
    class LM002_Civ:Default
    {
        skeletonName="LM002";
        sections[]=
        {
            "glass1",
            "glass2",
            "glass3",
            "glass4",
            "glass5",
            "glass6",
            "zbytek",
            "light_r",
            "light_l",
            "camo1",
            "camo2",
            "zadni svetlo",
            "spz",
            "brzdove svetlo",
            "clan"
        };
/*potential axis=
wheel_1_2_hide
wheel_2_2_hide
wheel_2_1_hide
wheel_1_1_hide
glass1
glass2
glass3
glass4
wheel_1_1_unhide
wheel_1_2_unhide
wheel_2_1_unhide
wheel_2_2_unhide
glass5
glass6
zbytek
damagehide
wheel_2_2_steering
wheel_2_1_steering
wheel_1_2_steering
wheel_1_1_steering
palivo
light_r
light_l
karoserie
engine
wheel_2_1_damper_land
wheel_1_2_damper_land
wheel_2_2_damper_land
wheel_1_1_damper_land
light_r_end
drivewheel_axis
posun wheel_1_1
posun wheel_1_2
posun wheel_2_1
posun wheel_2_2
wheel_1_1_steering_axis
wheel_2_1_steering_axis
wheel_2_1_axis
wheel_2_2_axis
wheel_1_2_axis
wheel_1_1_axis
basic_damper_destruct_axis
pos cargo
pos cargo dir
pos driver
pos driver dir
circulumreference
zamerny
doplnovani
light_l_end
stopa pll
stopa plp
stopa ppl
stopa ppp
stopa zll
stopa zlp
stopa zpl
stopa zpp
exhaust_1_dir
exhaust_1
aimpoint
dustfrontright
dustfrontleft
dustbackleft
dustbackright
rpm_axis
mph_axis
fuel_axis
oil_axis
pip0_pos
pip0_dir
pip1_dir
pip1_pos
camo3
exhaust_2
exhaust_2_dir
wheel_1_1_bound
wheel_1_2_bound
wheel_2_1_bound
wheel_2_2_bound
pedal_thrust_axis
pedal_brake_axis
slingloadcargox
slingloadcargo1
slingloadcargo2
slingloadcargo3
slingloadcargo4
hud_top_left
hud_top_right
hud_bottom_left
hud_bottom_right
wheel_1_1_damper
wheel_1_2_damper
wheel_2_2_damper
wheel_2_1_damper
drivewheel
wheeled_1_1_damper
camo1
camo2
fuel
mph
rpm
tmp
zadni svetlo
pedal_thrust
spz
daylights
brzdove svetlo
reverse_light
clan
*/
        class Animations
        {
            class damageHide
            {
                type="hide";
                source="damage";
                selection="damagehide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class damageHideVez
            {
                type="hide";
                source="damage";
                selection="otocvez";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class damageHideHlaven
            {
                type="hide";
                source="damage";
                selection="otochlaven";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_1_destruct
            {
                type="hide";
                source="HitLFWheel";
                selection="wheel_1_1_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_2_destruct
            {
                type="hide";
                source="HitLBWheel";
                selection="wheel_1_2_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_3_destruct
            {
                type="hide";
                source="HitLMWheel";
                selection="wheel_1_3_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_4_destruct
            {
                type="hide";
                source="HitLF2Wheel";
                selection="wheel_1_4_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_1_destruct
            {
                type="hide";
                source="HitRFWheel";
                selection="wheel_2_1_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_2_destruct
            {
                type="hide";
                source="HitRBWheel";
                selection="wheel_2_2_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_3_destruct
            {
                type="hide";
                source="HitRMWheel";
                selection="wheel_2_3_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_4_destruct
            {
                type="hide";
                source="HitRF2Wheel";
                selection="wheel_2_4_hide";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_1_destruct_unhide
            {
                type="hide";
                source="HitLFWheel";
                selection="wheel_1_1_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_2_destruct_unhide
            {
                type="hide";
                source="HitLBWheel";
                selection="wheel_1_2_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_3_destruct_unhide
            {
                type="hide";
                source="HitLMWheel";
                selection="wheel_1_3_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_4_destruct_unhide
            {
                type="hide";
                source="HitLF2Wheel";
                selection="wheel_1_4_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_1_destruct_unhide
            {
                type="hide";
                source="HitRFWheel";
                selection="wheel_2_1_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_2_destruct_unhide
            {
                type="hide";
                source="HitRBWheel";
                selection="wheel_2_2_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_3_destruct_unhide
            {
                type="hide";
                source="HitRMWheel";
                selection="wheel_2_3_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_2_4_destruct_unhide
            {
                type="hide";
                source="HitRF2Wheel";
                selection="wheel_2_4_unhide";
                sourceAddress = mirror;
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 1e-005;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class wheel_1_3_Damage
            {
                type="translation";
                source="HitLMWheel";
                selection="wheel_1_3_damper";
                axis="wheel_1_3_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.2;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_4_Damage
            {
                type="translation";
                source="HitLF2Wheel";
                selection="wheel_1_4_damper";
                axis="wheel_1_4_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.2;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_3_Damage
            {
                type="translation";
                source="HitRMWheel";
                selection="wheel_2_3_damper";
                axis="wheel_2_3_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.2;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_4_Damage
            {
                type="translation";
                source="HitRF2Wheel";
                selection="wheel_2_4_damper";
                axis="wheel_2_4_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.2;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_3_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitLMWheel";
                selection="wheel_1_3_damper";
                axis="wheel_1_3_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.24000001;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_4_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitLF2Wheel";
                selection="wheel_1_4_damper";
                axis="wheel_1_4_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.24000001;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_3_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitRMWheel";
                selection="wheel_2_3_damper";
                axis="wheel_2_3_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.24000001;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_4_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitRF2Wheel";
                selection="wheel_2_4_damper";
                axis="wheel_2_4_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.24000001;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Glass1_destruct
            {
                type="hide";
                source="HitGlass1";
                selection="glass1";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Glass2_destruct
            {
                type="hide";
                source="HitGlass2";
                selection="glass2";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Glass3_destruct
            {
                type="hide";
                source="HitGlass3";
                selection="glass3";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Glass4_destruct
            {
                type="hide";
                source="HitGlass4";
                selection="glass4";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Glass5_destruct
            {
                type="hide";
                source="HitGlass5";
                selection="glass5";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Glass6_destruct
            {
                type="hide";
                source="HitGlass6";
                selection="glass6";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.99999;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Wheel_1_1
            {
                type="rotationX";
                source="wheel";
                selection="wheel_1_1";
                axis="wheel_1_1_axis";//*probably*
                sourceAddress = loop;
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -6.2831855;//rad -360.0;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_1
            {
                type="rotationX";
                source="wheel";
                selection="wheel_2_1";
                axis="wheel_2_1_axis";//*probably*
                sourceAddress = loop;
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -6.2831855;//rad -360.0;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_2
            {
                type="rotationX";
                source="wheel";
                selection="wheel_1_2";
                axis="wheel_1_2_axis";//*probably*
                sourceAddress = loop;
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -6.2831855;//rad -360.0;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Wheel_2_2
            {
                type="rotationX";
                source="wheel";
                selection="wheel_2_2";
                axis="wheel_2_2_axis";//*probably*
                sourceAddress = loop;
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -6.2831855;//rad -360.0;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class daylights
            {
                type="hide";
                source="rpm";
                selection="daylights";
//                sourceAddress = clamp;// (default)
                minValue = -0.8;//rad -45.836624
                maxValue = 0.2;//rad 11.459156
                hideValue = 0.2;
                unHideValue = 1.0;
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class reverse_light
            {
                type="hide";
                source="Gear";
                selection="reverse_light";
//                sourceAddress = clamp;// (default)
                minValue = -1.0;//rad -57.29578
                maxValue = 0.0;//rad 0.0
                hideValue = 0.2;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class pedal_thrust
            {
                type="rotation";
                source="Throttle";
                selection="pedal_thrust";
                axis="pedal_thrust_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = -0.5235988;//rad -30.0;
                animPeriod = 1.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class pedal_brake
            {
                type="rotation";
                source="Brake";
                selection="pedal_brake";
                axis="pedal_brake_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 0.5;//rad 28.64789
                angle0 = 0.0;//rad 0.0;
                angle1 = -0.5235988;//rad -30.0;
                animPeriod = 1.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_1_Damage
            {
                type="translation";
                source="HitLFWheel";
                selection="wheel_1_1_damper";
                axis="wheel_1_1_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_2_Damage
            {
                type="translation";
                source="HitLBWheel";
                selection="wheel_1_2_damper";
                axis="wheel_1_2_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_1_Damage
            {
                type="translation";
                source="HitRFWheel";
                selection="wheel_2_1_damper";
                axis="wheel_2_1_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_2_Damage
            {
                type="translation";
                source="HitRBWheel";
                selection="wheel_2_2_damper";
                axis="wheel_2_2_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = 0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_1_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitLFWheel";
                selection="wheel_1_1_damper";
                axis="wheel_1_1_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_2_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitLBWheel";
                selection="wheel_1_2_damper";
                axis="wheel_1_2_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_1_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitRFWheel";
                selection="wheel_2_1_damper";
                axis="wheel_2_1_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_2_Damper_Damage_BackAnim
            {
                type="translation";
                source="HitRBWheel";
                selection="wheel_2_2_damper";
                axis="wheel_2_2_damper_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = 0.0;
                offset1 = -0.18;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class DrivingWheel
            {
                type="rotation";
                source="drivingWheel";
                selection="drivewheel";
                axis="drivewheel_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = -1.0;//rad -57.29578
                maxValue = 1.0;//rad 57.29578
                angle0 = 1.3962635;//rad 80.00001;
                angle1 = -1.3962635;//rad -80.00001;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Steering_1_1
            {
                type="rotationY";
                source="drivingWheel";
                selection="wheel_1_1_steering";
                axis="wheel_1_1_steering_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = -1.5707964;//rad -90.0
                maxValue = 1.5707964;//rad 90.0
                angle0 = 1.047198;//rad 60.00003;
                angle1 = -1.047198;//rad -60.00003;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Steering_2_1
            {
                type="rotationY";
                source="drivingWheel";
                selection="wheel_2_1_steering";
                axis="wheel_2_1_steering_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = -1.5707964;//rad -90.0
                maxValue = 1.5707964;//rad 90.0
                angle0 = 1.047198;//rad 60.00003;
                angle1 = -1.047198;//rad -60.00003;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class IndicatorSpeed
            {
                type="rotation";
                source="speed";
                selection="mph";
                axis="mph_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 65.27;//rad 3739.6953
                angle0 = 0.174533;//rad 10.000004;
                angle1 = -3.975;//rad -227.75072;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class IndicatorRPM
            {
                type="rotation";
                source="rpm";
                selection="rpm";
                axis="rpm_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 6000.0;//rad 343774.7
                angle0 = 0.0;//rad 0.0;
                angle1 = -3.4906588;//rad -200.00002;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class fuel
            {
                type="rotation";
                source="fuel";
                selection="fuel";
                axis="fuel_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                angle0 = 0.0;//rad 0.0;
                angle1 = 1.5358899;//rad 88.00001;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Hidedoor1
            {
                type="hide";
                source="Hide";
                selection="door1";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Hidedoor2
            {
                type="hide";
                source="Hide";
                selection="door2";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Hidedoor3
            {
                type="hide";
                source="Hide";
                selection="door3";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Hidedoor4
            {
                type="hide";
                source="Hide";
                selection="door4";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Hidedoor5
            {
                type="hide";
                source="Hide";
                selection="door5";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Hidedoor6
            {
                type="hide";
                source="Hide";
                selection="door6";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 1.0;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
            class Wheel_1_1_Damper
            {
                type="translation";
                source="damper";
                selection="wheel_1_1_damper_land";
                axis="wheel_1_1_damper_land_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = -0.1;
                offset1 = 0.05;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_2_1_Damper
            {
                type="translation";
                source="damper";
                selection="wheel_2_1_damper_land";
                axis="wheel_2_1_damper_land_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = -0.1;
                offset1 = 0.05;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class wheel_1_2_Damper
            {
                type="translation";
                source="damper";
                selection="wheel_1_2_damper_land";
                axis="wheel_1_2_damper_land_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = -0.1;
                offset1 = 0.05;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Wheel_2_2_Damper
            {
                type="translation";
                source="damper";
                selection="wheel_2_2_damper_land";
                axis="wheel_2_2_damper_land_axis";//*probably*
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                offset0 = -0.1;
                offset1 = 0.05;
                animPeriod = 0.0;
                initPhase = 0.0;
//                memory = true;//(default assumed)
            };
            class Display_off_hide
            {
                type="hide";
                source="rpm";
                selection="display_off";
//                sourceAddress = clamp;// (default)
                minValue = 0.0;//rad 0.0
                maxValue = 1.0;//rad 57.29578
                hideValue = 0.001;
//                unHideValue = -1.0;//(default)
                animPeriod = 0.0;
                initPhase = 0.0;
            };
        };//Animations
    };//modelclass
};//CfgModels 

Share this post


Link to post
Share on other sites

Don't quote me since it's been awhile since I've opened a model.cfg but your dampers look out of place.

 

Let me look at some stuff on a truck I made and I'll get back to you later.

  • Like 1

Share this post


Link to post
Share on other sites

Well, I've got most of the initial issues... solved, I guess. The dampers are working, wheels touch the ground, textures in RVMAT are at the right scale.

Now it's on to some special problems, for those finer details.
- First, I've noticed there are light cones on the A3 vehicle headlights - a cone-shaped volume of light that extends from the headlight, outward. I wonder how to achieve this effect, and will I need to create new geometry, textures, rvmats, etc? Is it possible to also do this on the taillights? EDIT: I've included in my vehicle's .p3d a volumelightcar proxy. This makes the light cone thing, but it's hard to figure out its orientation. As is, it just faces straight up, and adjusting it to any other direction has unpredictable results, except that it never faces where it should. Also, the cones are ON all the time.

- Second, how do I get the actual lights to brighten? I considered that a new texture with brighter colors might do the trick, but how to implement that? It's not clear by looking at any of the sample model material, nor the A3 vehicle files. Whatever the solution, will it also work on the interior lights?

- Third is a modeling question. I feel like I may have asked this somewhere before, but how can I smooth out some surfaces where multiple polygons meet? I've got an area where I'd otherwise have used normal mapping to smooth out a surface, but it seems that a baked NOHQ map, where a low-poly model has the lighting information of a high-poly model, creates new problems. NOHQs created from grayscale height work fine. So, are there any tricks out there that get this to look a little better?

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  

×