scotg 204 Posted March 15, 2016 Initial Overview: - Arma 3 Mod Experience - Texture UV problems - Movement problems - Instrument problems Mod ExperienceI 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. 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. 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: 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
scotg 204 Posted March 17, 2016 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
UrbanizedGamerz 3 Posted March 28, 2016 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: Share this post Link to post Share on other sites
scotg 204 Posted March 29, 2016 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). 1 Share this post Link to post Share on other sites
UrbanizedGamerz 3 Posted March 29, 2016 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 1 Share this post Link to post Share on other sites
scotg 204 Posted March 30, 2016 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
Delta Hawk 1829 Posted March 30, 2016 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? 1 Share this post Link to post Share on other sites
scotg 204 Posted March 31, 2016 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
Delta Hawk 1829 Posted March 31, 2016 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. 1 Share this post Link to post Share on other sites
scotg 204 Posted May 18, 2016 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