ADuke 1 Posted September 6, 2010 Hi, I have a problem... I was translating the model.cfg for my new addon from Czech to English because it will help me when I am editing because I don't have to go to google translate every time I try to edit the file. First off, here is the model.cfg as it stands right now... class Rotation; class CfgSkeletons { class Car { skeletonInherit=""; skeletonBones[]= { "steering_wheel","", "left front damper","", "right front damper","", "left rear damper","", "right rear damper","", "wheel_front_right","right front damper", "wheel_front_left","left front damper", "wheel_rear_right","left rear damper", "wheel_rear_left","right rear damper", "ukaz_rychlo","", "ukaz_rychlo2","", "ukaz_rpm","", "turret","", "gun","turret", "fuel_01","", "fuel_1","", "prop_01","", "prop_02","", "prop_2","", "prop_1","", "damageHide","damageVez", "turret","damageHlaven", "gun" }; }; class ad_hmmwv_bones: Car { isDiscrete=1; skeletonInherit = "Car"; skeletonBones[]= { "ammo_belt","gun", "gun","turret", "obsTurret","", "obsGun","obsTurret", "reTurret","", "reGun","reTurret", "gatling_1","gun", }; }; }; class CfgModels { class Default { sections[] = {}; sectionsInherit=""; skeletonName = ""; }; class Vehicle : Default { sections[] = { "clan", "clan_sign", "zasleh" }; }; class Car: Vehicle { sectionsInherit="Vehicle"; sections[] = { "sklo predni p", "sklo predni l", "zadni svetlo", "brzdove svetlo", "spz", "karoserie", "motor", "zbran", "vez", "zbytek", "wheel_front_right", "levy prostredni", "wheel_rear_right", "wheel_front_left", "pravy prostredni", "wheel_rear_left", "clan", "clan_sign", "zasleh", "P svetlo", "L svetlo", "palivo" }; skeletonName = "Car"; }; class ad_HMMWV: Car { sectionsInherit = ""; sections[] = { "wheel_front_left", "wheel_rear_left", "wheel_front_right", "wheel_rear_right", "L svetlo", "P svetlo", "turret", "gun", "door1", "zasleh", "zbytek", "brake light", "light_Front_Left", "light_Front_Right", "rear light", "Light_1_1", "Light_1_2", "clan_sign", "clan", "zadni svetlo", "brzdove svetlo", "palivo", "obsTurret", "obsGun", "reTurret", "reGun", "turret glass 1" }; skeletonName = "ad_hmmwv_bones"; selectionFireAnim = "zasleh"; class Animations { class TurnFrontWheelR { type="rotationY"; source="drivingWheel"; selection="pravy predni zatoc"; axis="wheel_front_left"; memory="false"; animPeriod=0; sourceAddress="loop"; minValue="rad -180"; maxValue="rad +180"; angle0="rad +90"; angle1="rad -90"; }; class TurnFrontWheelL: TurnFrontWheelR { selection="levy predni zatoc"; axis="wheel_front_right"; }; class TurnFrontWheelR2: TurnFrontWheelR { selection="pravy dalsi zatoc "; axis="pravy dalsi"; }; class TurnFrontWheelL2: TurnFrontWheelR { selection="levy dalsi zatoc "; axis="levy dalsi"; }; class FrontWheelR { type="rotationX"; source="wheel"; selection="wheel_front_left"; axis=""; memory="true"; animPeriod=0; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad -360"; }; class FrontWheel2R: FrontWheelR { selection="pravy dalsi"; }; class BackWheelR: FrontWheelR { selection="wheel_rear_left"; }; class BackWheel2R: FrontWheelR { selection="pravy prostredni"; }; class FrontWheelL: FrontWheelR { selection="wheel_front_right"; }; class FrontWheel2L: FrontWheelR { selection="levy dalsi"; }; class BackWheelL: FrontWheelR { selection="wheel_rear_right"; }; class BackWheel2L: FrontWheelR { selection="levy prostredni"; }; class FrontWheelDamperR { type="translationY"; source="damper"; selection="right front damper"; axis=""; animPeriod=0; minValue=-1000; maxValue=1000; }; class FrontWheelDamper2R: FrontWheelDamperR { selection="pravy dalsi tlumic"; }; class BackWheelDamperR: FrontWheelDamperR { selection="right rear damper"; }; class BackWheelDamper2R: FrontWheelDamperR { selection="pravy prostredni tlumic"; }; class FrontWheelDamperL: FrontWheelDamperR { selection="left front damper"; }; class FrontWheelDamper2L: FrontWheelDamperR { selection="levy dalsi tlumic"; }; class BackWheelDamperL: FrontWheelDamperR { selection="left rear damper"; }; class BackWheelDamper2L: FrontWheelDamperR { selection="levy prostredni tlumic"; }; class damagehide { type="hide"; source="damage"; selection="damagehide"; }; class gatling_1 { type="rotation"; source="gatling_1"; selection="gatling_1"; begin="usti hlavne"; end="konec hlavne"; angle0="+600 * 3.141592654"; angle1="-600 * 3.141592654"; }; class IndicatorSpeed { type="rotation"; source="speed"; selection="ukaz_rychlo"; axis="osa_rychlo"; memory=0; maxValue=35.52; angle0=1.832596; angle1=-1.832596; }; class IndicatorRPM { type="rotation"; source="rpm"; selection="ukaz_rpm"; axis="osa_rpm"; memory=0; angle0=1.658063; angle1=-1.396263; }; class fuel { type="rotation"; source="fuel"; selection="fuel_1"; axis="fuel_1_axis"; memory=0; minValue=0.000000; maxValue=1.000000; angle0=-0.087266; angle1=-1.658063; }; class DrivingWheel { type="rotation"; source="drivingWheel"; selection="steering_wheel"; begin="steering_wheel_begin"; end="steering_wheel_end"; memory="false"; animPeriod=0; minValue=-1; maxValue=1; angle0=-8; angle1=8; }; class MainTurret { type="rotationY"; source="mainTurret"; selection="turret"; axis="OsaVeze"; animPeriod=0; minValue="rad -360"; maxValue="rad +360"; angle0="rad -360"; angle1="rad +360"; }; class MainGun: MainTurret { type="rotationX"; source="mainGun"; selection="gun"; axis="OsaHlavne"; }; class obsTurret: mainTurret { type = "rotationY"; source = "obsTurret"; selection = "obsTurret"; axis = "obsTurret"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class obsGun: mainGun { type = "rotationX"; source = "obsGun"; selection = "obsGun"; axis = "obsGunAx"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class reTurret: mainTurret { type = "rotationY"; source = "Turret_2"; selection = "reTurret"; axis = "reTurret"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class reGun: mainGun { type = "rotationX"; source = "Gun_2"; selection = "reGun"; axis = "reGunAx"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class ammo_belt_rotation { type="rotationZ"; source="belt_rotation"; selection="ammo_belt"; axis="ammo_belt_axis"; memory=1; sourceAddress="loop"; minValue=0.000000; maxValue=0.010000; angle0=0.000000; angle1=-0.209440; }; }; }; class ad_m1151_m2: ad_HMMWV{}; class ad_matv_m2: ad_HMMWV{}; }; }; What I did was... Changed: "pravy predni" to "wheel_front_left" "pravy zadni" to "wheel_rear_left" "levy predni" to "wheel_front_right" "levy zadni" to "wheel_rear_right" "volant" to "steering_wheel" "osavolantzac" to "steering_wheel_begin" "osavolatkon" to "steering_wheel_end" ALL OF THOSE ANIMATIONS WERE WORKING JUST FINE UNTIL.... I changed.... "OtocHlaven" to "Gun" and... OtocVez to "Turret" Now my turret and gun will not turn :confused: Do these HAVE to be named in Czech? Any help is appreciated. Thanks, -AD Share this post Link to post Share on other sites
JDog 11 Posted September 6, 2010 Sorry can't say I know the answer but I'll throw this out there. You posted this: skeletonBones[]= { "ammo_belt","gun", "gun","turret", "obsTurret","", "obsGun","obsTurret", "reTurret","", "reGun","reTurret", "gatling_1","gun", }; It seems like "turret" is the only "parent" I'll call it, that you don't have linked to "nothing". I probably said that wrong so here's what I mean, do you need this?: "turret","", Also, you have it in your cfgSkeletons but not in your ad_hmmwv_bones. Again, just taking a guess. Share this post Link to post Share on other sites
ADuke 1 Posted September 6, 2010 Thanks for your reply JDog, I seem to have fixed the turret issues (there was a conflicting definition in another model.cfg of mine). I have a new problem, my stupid wheels won't turn left or right when I turn the steering wheel. Here's my new model.cfg... class Rotation; class CfgSkeletons { class Car { skeletonInherit=""; skeletonBones[]= { "steering_wheel","", "left front damper","", "right front damper","", "left rear damper","", "right rear damper","", "wheel_front_right","right front damper", "wheel_front_left","left front damper", "wheel_rear_right","left rear damper", "wheel_rear_left","right rear damper", "ukaz_rychlo","", "ukaz_rychlo2","", "ukaz_rpm","", "turret","", "gun","turret", "fuel_01","", "fuel_1","", "prop_01","", "prop_02","", "prop_2","", "prop_1","", "damageHide","damageVez", "turret","damageHlaven", "gun" }; }; class ad_hmmwv_bones: Car { isDiscrete=1; skeletonInherit = "Car"; skeletonBones[]= { "ammo_belt","gun", "gun","turret", "obsTurret","", "obsGun","obsTurret", "reTurret","", "reGun","reTurret", "gatling_1","gun", }; }; }; class CfgModels { class Default { sections[] = {}; sectionsInherit=""; skeletonName = ""; }; class Vehicle : Default { sections[] = { "clan", "clan_sign", "zasleh" }; }; class Car: Vehicle { sectionsInherit="Vehicle"; sections[] = { "sklo predni p", "sklo predni l", "zadni svetlo", "brzdove svetlo", "spz", "karoserie", "motor", "zbran", "vez", "zbytek", "wheel_front_right", "levy prostredni", "wheel_rear_right", "wheel_front_left", "pravy prostredni", "wheel_rear_left", "clan", "clan_sign", "zasleh", "P svetlo", "L svetlo", "palivo" }; skeletonName = "Car"; }; class ad_HMMWV: Car { sectionsInherit = ""; sections[] = { "wheel_front_left", "wheel_rear_left", "wheel_front_right", "wheel_rear_right", "L svetlo", "P svetlo", "turret", "gun", "door1", "zasleh", "zbytek", "brake light", "light_Front_Left", "light_Front_Right", "rear light", "Light_1_1", "Light_1_2", "clan_sign", "clan", "zadni svetlo", "brzdove svetlo", "palivo", "obsTurret", "obsGun", "reTurret", "reGun", "turret glass 1" }; skeletonName = "ad_hmmwv_bones"; selectionFireAnim = "zasleh"; class Animations { class TurnFrontWheelR { type="rotationY"; source="drivingWheel"; selection="pravy predni zatoc"; axis="wheel_front_left"; memory="false"; animPeriod=0; sourceAddress="loop"; minValue="rad -180"; maxValue="rad +180"; angle0="rad +90"; angle1="rad -90"; }; class TurnFrontWheelL: TurnFrontWheelR { selection="levy predni zatoc"; axis="wheel_front_right"; }; class TurnFrontWheelR2: TurnFrontWheelR { selection="pravy dalsi zatoc "; axis="pravy dalsi"; }; class TurnFrontWheelL2: TurnFrontWheelR { selection="levy dalsi zatoc "; axis="levy dalsi"; }; class FrontWheelR { type="rotationX"; source="wheel"; selection="wheel_front_left"; axis=""; memory="true"; animPeriod=0; sourceAddress="loop"; minValue=0; maxValue=1; angle0=0; angle1="rad -360"; }; class FrontWheel2R: FrontWheelR { selection="pravy dalsi"; }; class BackWheelR: FrontWheelR { selection="wheel_rear_left"; }; class BackWheel2R: FrontWheelR { selection="pravy prostredni"; }; class FrontWheelL: FrontWheelR { selection="wheel_front_right"; }; class FrontWheel2L: FrontWheelR { selection="levy dalsi"; }; class BackWheelL: FrontWheelR { selection="wheel_rear_right"; }; class BackWheel2L: FrontWheelR { selection="levy prostredni"; }; class FrontWheelDamperR { type="translationY"; source="damper"; selection="right front damper"; axis=""; animPeriod=0; minValue=-1000; maxValue=1000; }; class FrontWheelDamper2R: FrontWheelDamperR { selection="pravy dalsi tlumic"; }; class BackWheelDamperR: FrontWheelDamperR { selection="right rear damper"; }; class BackWheelDamper2R: FrontWheelDamperR { selection="pravy prostredni tlumic"; }; class FrontWheelDamperL: FrontWheelDamperR { selection="left front damper"; }; class FrontWheelDamper2L: FrontWheelDamperR { selection="levy dalsi tlumic"; }; class BackWheelDamperL: FrontWheelDamperR { selection="left rear damper"; }; class BackWheelDamper2L: FrontWheelDamperR { selection="levy prostredni tlumic"; }; class damagehide { type="hide"; source="damage"; selection="damagehide"; }; class gatling_1 { type="rotation"; source="gatling_1"; selection="gatling_1"; begin="usti hlavne"; end="konec hlavne"; angle0="+600 * 3.141592654"; angle1="-600 * 3.141592654"; }; class IndicatorSpeed { type="rotation"; source="speed"; selection="ukaz_rychlo"; axis="osa_rychlo"; memory=0; maxValue=35.52; angle0=1.832596; angle1=-1.832596; }; class IndicatorRPM { type="rotation"; source="rpm"; selection="ukaz_rpm"; axis="osa_rpm"; memory=0; angle0=1.658063; angle1=-1.396263; }; class fuel { type="rotation"; source="fuel"; selection="fuel_1"; axis="fuel_1_axis"; memory=0; minValue=0.000000; maxValue=1.000000; angle0=-0.087266; angle1=-1.658063; }; class DrivingWheel { type="rotation"; source="drivingWheel"; selection="steering_wheel"; begin="steering_wheel_begin"; end="steering_wheel_end"; memory="false"; animPeriod=0; minValue=-1; maxValue=1; angle0=-8; angle1=8; }; class MainTurret { type="rotationY"; source="mainTurret"; selection="turret"; axis="OsaVeze"; animPeriod=0; minValue="rad -360"; maxValue="rad +360"; angle0="rad -360"; angle1="rad +360"; }; class MainGun: MainTurret { type="rotationX"; source="mainGun"; selection="gun"; axis="OsaHlavne"; }; class obsTurret: mainTurret { type = "rotationY"; source = "obsTurret"; selection = "obsTurret"; axis = "obsTurret"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class obsGun: mainGun { type = "rotationX"; source = "obsGun"; selection = "obsGun"; axis = "obsGunAx"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class reTurret: mainTurret { type = "rotationY"; source = "Turret_2"; selection = "reTurret"; axis = "reTurret"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class reGun: mainGun { type = "rotationX"; source = "Gun_2"; selection = "reGun"; axis = "reGunAx"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class ammo_belt_rotation { type="rotationZ"; source="belt_rotation"; selection="ammo_belt"; axis="ammo_belt_axis"; memory=1; sourceAddress="loop"; minValue=0.000000; maxValue=0.010000; angle0=0.000000; angle1=-0.209440; }; }; }; class ad_m1151_m2: ad_HMMWV{}; class ad_matv_m2: ad_HMMWV{}; }; }; You can see in the turn animation that the axis for the animation ends in "zatoc". I checked the ArmA1 sample models for any selections or memory points with the word "zatoc" in them, and that word doesn't appear ANYWHERE in any of the models, so how do the wheels turn if there's no axis? I just want the damn things to turn, any help is welcomed, very much so. Thanks, -AD Share this post Link to post Share on other sites
STALKERGB 6 Posted September 6, 2010 (edited) I checked the ArmA1 sample models for any selections or memory points with the word "zatoc" in them, and that word doesn't appear ANYWHERE in any of the models, so how do the wheels turn if there's no axis? I'm not the best at vehicle model.cfg's but from how I understand it, the axis is the wheel itself. So when it spins it just uses the centre point of the wheel model. Hopefully my "excellent" drawing below helps a bit, its a top down view: Using your model.cfg as an example for this: class TurnFrontWheelR { type="rotationY"; source="drivingWheel"; selection="pravy predni zatoc"; - You will need to change this to whatever you translated it to I think. Maybe wheel_front_right/left axis="wheel_front_left"; - change this to whatever the wheel is named in your 1.000 lod memory="false"; animPeriod=0; sourceAddress="loop"; minValue="rad -180"; maxValue="rad +180"; angle0="rad +90"; angle1="rad -90"; }; Hopefully that helps a bit, below is the same part on the truck I worked on if its any help: class TurnFrontWheelR { type="rotationY"; source="drivingWheel"; selection="pravy predni zatoc"; - found in skeletonBones section of cfg. axis="pravy predni"; - found on 1.000 LOD memory="false"; animPeriod=0; minValue="rad -25"; maxValue="rad +25"; angle0="rad +25"; angle1="rad -25"; }; And the skeleton bones, if it helps: skeletonBones[]= { "volant", "", "levy predni tlumic", "", "pravy predni tlumic", "", "levy dalsi tlumic", "", "pravy dalsi tlumic", "", "levy predni zatoc", "levy predni tlumic", "pravy predni zatoc", "pravy predni tlumic", "levy dalsi zatoc", "levy dalsi tlumic", "pravy dalsi zatoc", "pravy dalsi tlumic", "levy prostredni tlumic", "", "pravy prostredni tlumic", "", "levy zadni tlumic", "", "pravy zadni tlumic", "", "levy predni", "levy predni zatoc", "pravy predni", "pravy predni zatoc", "levy dalsi", "levy dalsi zatoc", "pravy dalsi", "pravy dalsi zatoc", "levy prostredni", "levy prostredni tlumic", "pravy prostredni", "pravy prostredni tlumic", "levy zadni", "levy zadni tlumic", "pravy zadni", "pravy zadni tlumic", "ukaz_rychlo", "", "ukaz_rychlo2", "", "ukaz_rpm", "", "OtocVez", "", "OtocHlaven", "OtocVez", "fuel_01", "", "fuel_1", "", "prop_01", "", "prop_02", "", "prop_2", "", "prop_1", "", "damageHide", "", "damageVez", "OtocVez", "damageHlaven", "OtocHlaven" }; }; Sorry I can't be much more helpful... Edited September 6, 2010 by STALKERGB Share this post Link to post Share on other sites
ADuke 1 Posted September 6, 2010 OK, thanks for your reply. It seems that the "zatoc" portion of the bones, use the dampers (tlumic) as parent bones, I hope I am right in assuming that. Thanks again, going to keep messing with it. -AD Share this post Link to post Share on other sites
STALKERGB 6 Posted September 6, 2010 OK, thanks for your reply.It seems that the "zatoc" portion of the bones, use the dampers (tlumic) as parent bones, I hope I am right in assuming that. Thanks again, going to keep messing with it. -AD Yeah I would have assumed something similar, by using the dampers as parents it would mean the wheel moves up and down as the vehicles moves over rough terrain so it seems logical to assume thats the way round the parent/child bone is. Share this post Link to post Share on other sites