ROTAHOE 3 Posted June 5, 2018 And here is my config.cpp #include "basicdefines_A3.hpp" class DefaultEventhandlers; #include "CfgPatches.hpp" class WeaponFireGun; class WeaponCloudsGun; class WeaponFireMGun; class WeaponCloudsMGun; class CfgVehicles { class Car; class Car_F: Car { class HitPoints /// we want to use hitpoints predefined for all cars { class HitEngine; class HitGlass1; }; class EventHandlers; class CargoTurret; }; class WWM_SnowDoo: Car_F { cargoProxyIndexes[] = {1}; driverCompartments = "Compartment1"; cargoCompartments[] = {"Compartment2"}; class Turrets { class CargoTurret_01: CargoTurret { gunnerGetInAction = "GetInLOW"; gunnerGetOutAction = "GetOutLOW"; gunnerAction = "passenger_inside_1"; gunnerCompartments = "Compartment2"; memoryPointsGetInGunner = "pos cargo"; memoryPointsGetInGunnerDir = "pos cargo dir"; gunnerName = "Gunner (Passenger)"; proxyIndex = 1; initElev = 0; maxElev = 15; minElev = -5; initTurn = 0; maxTurn = 360; minTurn = 0; isPersonTurret = 1; ejectDeadGunner = 1; }; }; author = "BlackOps & Duck"; model = "\WWM_SnowDoo\objects\SkiDoo.p3d"; picture = "\A3\Weapons_F\Data\placeholder_co.paa"; Icon = "\A3\Weapons_F\Data\placeholder_co.paa"; displayName = "Skidoo"; /// displayed in Editor hiddenSelections[] = {"camo1"}; ///we want to allow changing the color of this selection terrainCoef = 0; /// different surface affects this car more, stick to tarmac turnCoef = 2.5; /// should match the wheel turn radius precision = 10; /// how much freedom has the AI for its internal waypoints - lower number means more precise but slower approach to way brakeDistance = 3.0; /// how many internal waypoints should the AI plan braking in advance acceleration = 15; /// how fast acceleration does the AI think the car has fireResistance = 5; /// lesser protection against fire than tanks armor = 32; /// just some protection against missiles, collisions and explosions cost = 50000; /// how likely is the enemy going to target this vehicle transportMaxBackpacks = 3; /// just some backpacks fit the trunk by default transportSoldier = 1; /// number of cargo except driver /// some values from parent class to show how to set them up wheelDamageRadiusCoef = 0.9; /// for precision tweaking of damaged wheel size wheelDestroyRadiusCoef = 0.4; /// for tweaking of rims size to fit ground maxFordingDepth = 0.5; /// how high water would damage the engine of the car waterResistance = 1; /// if the depth of water is bigger than maxFordingDepth it starts to damage the engine after this time crewCrashProtection = 0.25; /// multiplier of damage to crew of the vehicle => low number means better protection driverLeftHandAnimName = "drivewheel"; /// according to what bone in model of car does hand move driverRightHandAnimName = "drivewheel"; /// beware, non-existent bones may cause game crashes (even if the bones are hidden during play) class TransportItems /// some first aid kits in trunk according to safety regulations { item_xx(FirstAidKit,1); }; class HitPoints: HitPoints { class HitEngine {armor=0.50; material=-1; name="engine"; visual=""; passThrough=0.2;}; class HitGlass1: HitGlass1 {armor=0.25;}; /// it is pretty easy to puncture the glass but not so easy to remove it }; driverAction = "driver_quadbike"; getInAction = "GetInQuadbike"; getOutAction = "GetOutLow"; //cargoAction[] = {"passenger_quadbike"}; //cargoGetInAction[] = {"GetInQuadbike_cargo"}; //cargoGetOutAction[] = {"GetOutLow"}; #include "sounds.hpp" /// sounds are in a separate file to make this one simple #include "physx.hpp" /// PhysX settings are in a separate file to make this one simple class PlayerSteeringCoefficients /// steering sensitivity configuration { turnIncreaseConst = 0.3; // basic sensitivity value, higher value = faster steering turnIncreaseLinear = 1.0; // higher value means less sensitive steering in higher speed, more sensitive in lower speeds turnIncreaseTime = 1.0; // higher value means smoother steering around the center and more sensitive when the actual steering angle gets closer to the max. steering angle turnDecreaseConst = 5.0; // basic caster effect value, higher value = the faster the wheels align in the direction of travel turnDecreaseLinear = 3.0; // higher value means faster wheel re-centering in higher speed, slower in lower speeds turnDecreaseTime = 0.0; // higher value means stronger caster effect at the max. steering angle and weaker once the wheels are closer to centered position maxTurnHundred = 0.7; // coefficient of the maximum turning angle @ 100km/h; limit goes linearly to the default max. turn. angle @ 0km/h }; /// memory points where do tracks of the wheel appear // front left track, left offset memoryPointTrackFLL = "TrackFLL"; // front left track, right offset memoryPointTrackFLR = "TrackFLR"; // back left track, left offset memoryPointTrackBLL = "TrackBLL"; // back left track, right offset memoryPointTrackBLR = "TrackBLR"; // front right track, left offset memoryPointTrackFRL = "TrackFRL"; // front right track, right offset memoryPointTrackFRR = "TrackFRR"; // back right track, left offset memoryPointTrackBRL = "TrackBRL"; // back right track, right offset memoryPointTrackBRR = "TrackBRR"; class Damage /// damage changes material in specific places (visual in hitPoint) { tex[]={}; mat[]= { "A3\data_f\glass_veh_int.rvmat", /// material mapped in model "A3\data_f\Glass_veh_damage.rvmat", /// changes to this one once damage of the part reaches 0.5 "A3\data_f\Glass_veh_damage.rvmat", /// changes to this one once damage of the part reaches 1 "A3\data_f\glass_veh.rvmat", /// another material "A3\data_f\Glass_veh_damage.rvmat", /// changes into different ones "A3\data_f\Glass_veh_damage.rvmat" }; }; class Exhausts /// specific exhaust effects for the car { class Exhaust1 /// the car has two exhausts - each on one side { position = "exhaust"; /// name of initial memory point direction = "exhaust_dir"; /// name of memory point for exhaust direction effect = "ExhaustsEffect"; /// what particle effect is it going to use }; }; class Reflectors /// only front lights are considered to be reflectors to save CPU { class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares { color[] = {1900, 1800, 1700}; /// approximate colour of standard lights ambient[] = {5, 5, 5}; /// nearly a white one position = "LightCarHeadL01"; /// memory point for start of the light and flare direction = "LightCarHeadL01_end"; /// memory point for the light direction hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine) selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more size = 1; /// size of the light point seen from distance innerAngle = 100; /// angle of full light outerAngle = 179; /// angle of some light coneFadeCoef = 10; /// attenuation of light between the above angles intensity = 1; /// strength of the light useFlare = true; /// does the light use flare? dayLight = false; /// switching light off during day saves CPU a lot flareSize = 1.0; /// how big is the flare class Attenuation { start = 1.0; constant = 0; linear = 0; quadratic = 0.25; hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance hardLimitEnd = 60; /// this allows adding more lights into scene }; }; class LightCarHeadL02: LightCarHeadL01 { position = "LightCarHeadL02"; direction = "LightCarHeadL02_end"; FlareSize = 0.5; /// side bulbs aren't that strong }; class LightCarHeadR01: LightCarHeadL01 { position = "LightCarHeadR01"; direction = "LightCarHeadR01_end"; hitpoint = "Light_R"; selection = "Light_R"; }; class LightCarHeadR02: LightCarHeadR01 { position = "LightCarHeadR02"; direction = "LightCarHeadR02_end"; FlareSize = 0.5; }; }; aggregateReflectors[] = {{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; class EventHandlers {}; class textureSources {}; }; class cfgSkeletons { class WWM_SnowDoo_Skeleton { isDiscrete=1; skeletonInherit=""; skeletonBones[]= { "drivewheel","", "wheelL","wheelR" }; }; }; class cfgModels { class WWM_SnowDoo { sectionsInherit=""; sections[]= { "drivewheel","", "wheelL","wheelR" }; skeletonName="WWM_SnowDoo_Skeleton"; class Animations { class DriveWheel { type="rotationY"; source="drivingWheel"; selection="drivewheel"; axis="drivewheel_axis"; memory=1; minValue="rad -90"; maxValue="rad +90"; angle0=1.047198; angle1=-1.047198; }; class wheelL { type="rotationY"; source="drivingWheel"; selection="wheel_1_1"; axis="wheel_1_1_axis"; memory=1; minValue="rad -90"; maxValue="rad +90"; angle0=1.047198; angle1=-1.047198; }; class wheelR: wheelL { selection="wheel_2_1"; axis="wheel_2_1_axis"; angle0=1.047198; angle1=-1.047198; }; }; }; }; class WWM_SnowDoo_White: WWM_SnowDoo { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_Driver_3_F"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "WWM SnowDoo (White)"; hiddenSelectionsTextures[] = {}; }; }; currently running this in config.cpp for testing Is there a simple issue here to why my wheels wont turn? any help would be amazing. First model so once I got this sorted I'm away in the future ;) Cheers Share this post Link to post Share on other sites
ROTAHOE 3 Posted June 8, 2018 Updated once more. No errors but no animation is working. Any help will be amazing ! Here's my config.cpp: #include "basicdefines_A3.hpp" class DefaultEventhandlers; #include "CfgPatches.hpp" class cfgSkeletons { class Default { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class Vehicle : Default {}; class WWM_SnowDoo_Skeleton : Vehicle { isDiscrete=1; skeletonInherit=""; skeletonBones[]= { "drivewheel", "wheelL","wheelR" }; }; }; class cfgModels { class Default { sectionsInherit = ""; sections[] = {}; skeletonName = ""; }; class Vehicle: Default { sections[] = { "drivewheel", "wheelL","wheelR" }; }; class WWM_SnowDoo : Vehicle { sectionsInherit=""; sections[]= { "drivewheel", "wheelL","wheelR" }; skeletonName="WWM_SnowDoo_Skeleton"; class Animations { class DriveWheel { type="rotationY"; source="drivingWheel"; selection="drivewheel"; axis="drivewheel_axis"; memory=1; minValue="rad -90"; maxValue="rad +90"; angle0=1.047198; angle1=-1.047198; }; class wheelL { type="rotationY"; source="drivingWheel"; selection="wheel_1_1"; axis="wheel_1_1_axis"; memory=1; minValue="rad -90"; maxValue="rad +90"; angle0=1.047198; angle1=-1.047198; }; class wheelR : wheelL { selection="wheel_2_1"; axis="wheel_2_1_axis"; angle0=1.047198; angle1=-1.047198; }; }; }; }; class WeaponFireGun; class WeaponCloudsGun; class WeaponFireMGun; class WeaponCloudsMGun; class CfgVehicles { class Car; class Car_F: Car { class HitPoints /// we want to use hitpoints predefined for all cars { class HitEngine; class HitGlass1; }; class EventHandlers; class CargoTurret; }; class WWM_SnowDoo: Car_F { cargoProxyIndexes[] = {1}; driverCompartments = "Compartment1"; cargoCompartments[] = {"Compartment2"}; class Turrets { class CargoTurret_01: CargoTurret { gunnerGetInAction = "GetInLOW"; gunnerGetOutAction = "GetOutLOW"; gunnerAction = "passenger_inside_1"; gunnerCompartments = "Compartment2"; memoryPointsGetInGunner = "pos cargo"; memoryPointsGetInGunnerDir = "pos cargo dir"; gunnerName = "Gunner (Passenger)"; proxyIndex = 1; initElev = 0; maxElev = 15; minElev = -5; initTurn = 0; maxTurn = 360; minTurn = 0; isPersonTurret = 1; ejectDeadGunner = 1; }; }; author = "BlackOps & Duck"; model = "\WWM_SnowDoo\objects\SkiDoo.p3d"; picture = "\A3\Weapons_F\Data\placeholder_co.paa"; Icon = "\A3\Weapons_F\Data\placeholder_co.paa"; displayName = "Skidoo"; /// displayed in Editor hiddenSelections[] = {"camo1"}; ///we want to allow changing the color of this selection terrainCoef = 0; /// different surface affects this car more, stick to tarmac turnCoef = 2.5; /// should match the wheel turn radius precision = 10; /// how much freedom has the AI for its internal waypoints - lower number means more precise but slower approach to way brakeDistance = 3.0; /// how many internal waypoints should the AI plan braking in advance acceleration = 15; /// how fast acceleration does the AI think the car has fireResistance = 5; /// lesser protection against fire than tanks armor = 32; /// just some protection against missiles, collisions and explosions cost = 50000; /// how likely is the enemy going to target this vehicle transportMaxBackpacks = 3; /// just some backpacks fit the trunk by default transportSoldier = 1; /// number of cargo except driver /// some values from parent class to show how to set them up wheelDamageRadiusCoef = 0.9; /// for precision tweaking of damaged wheel size wheelDestroyRadiusCoef = 0.4; /// for tweaking of rims size to fit ground maxFordingDepth = 0.5; /// how high water would damage the engine of the car waterResistance = 1; /// if the depth of water is bigger than maxFordingDepth it starts to damage the engine after this time crewCrashProtection = 0.25; /// multiplier of damage to crew of the vehicle => low number means better protection driverLeftHandAnimName = "drivewheel"; /// according to what bone in model of car does hand move driverRightHandAnimName = "drivewheel"; /// beware, non-existent bones may cause game crashes (even if the bones are hidden during play) class TransportItems /// some first aid kits in trunk according to safety regulations { item_xx(FirstAidKit,1); }; class HitPoints: HitPoints { class HitEngine {armor=0.50; material=-1; name="engine"; visual=""; passThrough=0.2;}; class HitGlass1: HitGlass1 {armor=0.25;}; /// it is pretty easy to puncture the glass but not so easy to remove it }; driverAction = "driver_quadbike"; getInAction = "GetInQuadbike"; getOutAction = "GetOutLow"; //cargoAction[] = {"passenger_quadbike"}; //cargoGetInAction[] = {"GetInQuadbike_cargo"}; //cargoGetOutAction[] = {"GetOutLow"}; #include "sounds.hpp" /// sounds are in a separate file to make this one simple #include "physx.hpp" /// PhysX settings are in a separate file to make this one simple class PlayerSteeringCoefficients /// steering sensitivity configuration { turnIncreaseConst = 0.3; // basic sensitivity value, higher value = faster steering turnIncreaseLinear = 1.0; // higher value means less sensitive steering in higher speed, more sensitive in lower speeds turnIncreaseTime = 1.0; // higher value means smoother steering around the center and more sensitive when the actual steering angle gets closer to the max. steering angle turnDecreaseConst = 5.0; // basic caster effect value, higher value = the faster the wheels align in the direction of travel turnDecreaseLinear = 3.0; // higher value means faster wheel re-centering in higher speed, slower in lower speeds turnDecreaseTime = 0.0; // higher value means stronger caster effect at the max. steering angle and weaker once the wheels are closer to centered position maxTurnHundred = 0.7; // coefficient of the maximum turning angle @ 100km/h; limit goes linearly to the default max. turn. angle @ 0km/h }; /// memory points where do tracks of the wheel appear // front left track, left offset memoryPointTrackFLL = "TrackFLL"; // front left track, right offset memoryPointTrackFLR = "TrackFLR"; // back left track, left offset memoryPointTrackBLL = "TrackBLL"; // back left track, right offset memoryPointTrackBLR = "TrackBLR"; // front right track, left offset memoryPointTrackFRL = "TrackFRL"; // front right track, right offset memoryPointTrackFRR = "TrackFRR"; // back right track, left offset memoryPointTrackBRL = "TrackBRL"; // back right track, right offset memoryPointTrackBRR = "TrackBRR"; class Damage /// damage changes material in specific places (visual in hitPoint) { tex[]={}; mat[]= { "A3\data_f\glass_veh_int.rvmat", /// material mapped in model "A3\data_f\Glass_veh_damage.rvmat", /// changes to this one once damage of the part reaches 0.5 "A3\data_f\Glass_veh_damage.rvmat", /// changes to this one once damage of the part reaches 1 "A3\data_f\glass_veh.rvmat", /// another material "A3\data_f\Glass_veh_damage.rvmat", /// changes into different ones "A3\data_f\Glass_veh_damage.rvmat" }; }; class Exhausts /// specific exhaust effects for the car { class Exhaust1 /// the car has two exhausts - each on one side { position = "exhaust"; /// name of initial memory point direction = "exhaust_dir"; /// name of memory point for exhaust direction effect = "ExhaustsEffect"; /// what particle effect is it going to use }; }; class Reflectors /// only front lights are considered to be reflectors to save CPU { class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares { color[] = {1900, 1800, 1700}; /// approximate colour of standard lights ambient[] = {5, 5, 5}; /// nearly a white one position = "LightCarHeadL01"; /// memory point for start of the light and flare direction = "LightCarHeadL01_end"; /// memory point for the light direction hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine) selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more size = 1; /// size of the light point seen from distance innerAngle = 100; /// angle of full light outerAngle = 179; /// angle of some light coneFadeCoef = 10; /// attenuation of light between the above angles intensity = 1; /// strength of the light useFlare = true; /// does the light use flare? dayLight = false; /// switching light off during day saves CPU a lot flareSize = 1.0; /// how big is the flare class Attenuation { start = 1.0; constant = 0; linear = 0; quadratic = 0.25; hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance hardLimitEnd = 60; /// this allows adding more lights into scene }; }; class LightCarHeadL02: LightCarHeadL01 { position = "LightCarHeadL02"; direction = "LightCarHeadL02_end"; FlareSize = 0.5; /// side bulbs aren't that strong }; class LightCarHeadR01: LightCarHeadL01 { position = "LightCarHeadR01"; direction = "LightCarHeadR01_end"; hitpoint = "Light_R"; selection = "Light_R"; }; class LightCarHeadR02: LightCarHeadR01 { position = "LightCarHeadR02"; direction = "LightCarHeadR02_end"; FlareSize = 0.5; }; }; aggregateReflectors[] = {{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; class EventHandlers {}; class textureSources {}; }; class WWM_SnowDoo_White: WWM_SnowDoo { scope = 2; /// makes the car visible in editor scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden) crew = "C_Driver_3_F"; /// we need someone to fit into the car side = 3; /// civilian car should be on civilian side faction = CIV_F; /// and with civilian faction displayName = "WWM SnowDoo (White)"; hiddenSelectionsTextures[] = {}; }; }; Cheers Share this post Link to post Share on other sites
martinezfg11 334 Posted June 14, 2018 https://community.bistudio.com/wiki/Model_Config Animation source "Wheel" is used to animate the wheels on the bus to go round and round. 1 Share this post Link to post Share on other sites
ROTAHOE 3 Posted June 15, 2018 cheers for the reply mate Share this post Link to post Share on other sites