Ex3B 267 Posted March 1, 2019 So far I've made 1 successful port of the F35. Initially I could not get it working, I played around with the config and model files, and somehow got it working... although I don't know what I changed. Now I'm trying to port the AH-64D, and I can't get the animation working either. Here's what I've got for the config file: Spoiler class CfgPatches { class AH96 { //addonRootClass="A3_Air_F_Exp"; requiredAddons[]= { "A3_Air_F_Beta" }; requiredVersion=0.1; units[]= { "B_AH96_F" }; weapons[]={}; }; }; class SensorTemplatePassiveRadar; class SensorTemplateAntiRadiation; class SensorTemplateActiveRadar; class SensorTemplateIR; class SensorTemplateVisual; class SensorTemplateMan; class SensorTemplateLaser; class SensorTemplateNV; class SensorTemplateDataLink; class DefaultVehicleSystemsDisplayManagerLeft { class components; }; class DefaultVehicleSystemsDisplayManagerRight { class components; }; class CfgVehicles { class Heli_Attack_01_dynamicLoadout_base_F; class B_Heli_Attack_01_dynamicLoadout_F: Heli_Attack_01_dynamicLoadout_base_F { class Components; class Turrets; class AnimationSources; class EventHandlers; class ViewOptics; class ViewPilot; class Components; class HitPoints; }; class B_Heli_Attack_01_dynamicLoadout_F; class B_AH96_base_F: B_Heli_Attack_01_dynamicLoadout_F { scope = 0; class Turrets: Turrets { class MainTurret; }; class HitPoints: HitPoints { class HitHull; class HitFuel; class HitAvionics; class HitMissiles; class HitEngine; class HitHRotor; class HitVRotor; class HitGlass1; class HitGlass2; class HitGlass3; class HitGlass4; class HitGlass5; class HitGlass6; class HitWinch; }; }; class B_AH96_F: B_AH96_base_F { scope = 2; displayname = "AH-96 Cheyenne"; model="\HeloRebalance\AH96\Ah64D.p3d"; maxSpeed=325; armor=60; radarTargetSize=1; irTargetSize=1; // from old config, mutatis mutandis selectionFireAnim = "zasleh"; class HitPoints:HitPoints { class HitGlass1:HitGlass1 {armor=0.5;}; class HitGlass2:HitGlass2 {armor=0.5;}; class HitGlass3:HitGlass3 {armor=0.5;}; class HitGlass4:HitGlass4 {armor=0.5;}; class HitGlass5:HitGlass5 {armor=0.5;}; }; dammageHalf[]= { \HeloRebalance\AH96\data\AH64D_mfd_normal_co.paa, \HeloRebalance\AH96\data\AH64D_mfd_malfc_co.paa }; dammageFull[]= { \HeloRebalance\AH96\data\AH64D_mfd_normal_co.paa, \HeloRebalance\AH96\data\AH64D_mfd_malfc_co.paa }; class Damage { tex[]={}; mat[]={ "HeloRebalance\AH96\Data\AH64D_body.rvmat", "HeloRebalance\AH96\Data\AH64D_body_damage.rvmat", "HeloRebalance\AH96\Data\AH64D_body_destruct.rvmat", "HeloRebalance\AH96\Data\AH64D_details.rvmat", "HeloRebalance\AH96\Data\AH64D_details_damage.rvmat", "HeloRebalance\AH96\Data\AH64D_details_destruct.rvmat", "HeloRebalance\AH96\Data\AH64D_inter.rvmat", "HeloRebalance\AH96\Data\AH64D_inter_damage.rvmat", "HeloRebalance\AH96\Data\AH64D_inter_destruct.rvmat", "HeloRebalance\AH96\Data\AH64D_glass.rvmat", "HeloRebalance\AH96\Data\AH64D_glass_damage.rvmat", "HeloRebalance\AH96\Data\AH64D_glass_damage.rvmat", "HeloRebalance\AH96\Data\AH64D_glass_in.rvmat", "HeloRebalance\AH96\Data\AH64D_glass_in_damage.rvmat", "HeloRebalance\AH96\Data\AH64D_glass_in_damage.rvmat", }; }; //class MFD //{ // class AirplaneHUD // { // #define NO_RADAR // // #define PosY0Center 0.27+0.23 // #define PosYCenterHorizont 0.34+0.23 // #define PosX0Center 0.50 // #define SizeX10deg 0.35 // #define SizeY10deg 0.35 // #include "cfgAH64_HUD.hpp" // // helmetMountedDisplay = true; // helmetPosition[] = {-0.025, 0.025, 0.1}; // helmetRight[] = {0.05, 0.0, 0.0}; // helmetDown[] = {-0.0, -0.05, 0.0}; // }; //}; // end from old config class Components: Components { class SensorsManagerComponent { class Components { class IRSensorComponent: SensorTemplateIR { class AirTarget { minRange=500; maxRange=4000; objectDistanceLimitCoef=-1; viewDistanceLimitCoef=-1; }; class GroundTarget { minRange=500; maxRange=3000; objectDistanceLimitCoef=1; viewDistanceLimitCoef=1; }; angleRangeHorizontal=56; angleRangeVertical=34; maxTrackableSpeed=75; aimdown=-0.25; }; class VisualSensorComponent: SensorTemplateVisual { class AirTarget { minRange=500; maxRange=2500; objectDistanceLimitCoef=-1; viewDistanceLimitCoef=1; }; class GroundTarget { minRange=500; maxRange=2000; objectDistanceLimitCoef=1; viewDistanceLimitCoef=1; }; maxTrackableSpeed=70; animDirection="mainGun"; angleRangeHorizontal=46; angleRangeVertical=34; aimdown=-0.25; }; class ActiveRadarSensorComponent: SensorTemplateActiveRadar { class AirTarget { minRange=5000; maxRange=5000; objectDistanceLimitCoef=-1; viewDistanceLimitCoef=-1; }; class GroundTarget { minRange=4000; maxRange=4000; objectDistanceLimitCoef=-1; viewDistanceLimitCoef=-1; }; maxTrackableSpeed=125; angleRangeHorizontal=180; angleRangeVertical=90; groundNoiseDistanceCoef=-1; maxGroundNoiseDistance=-1; minSpeedThreshold=0; maxSpeedThreshold=0; aimDown=30; }; class PassiveRadarSensorComponent: SensorTemplatePassiveRadar { }; class LaserSensorComponent: SensorTemplateLaser { }; class NVSensorComponent: SensorTemplateNV { }; }; }; class TransportPylonsComponent { uiPicture="\A3\Air_F_Beta\Heli_Attack_01\Data\UI\Heli_Attack_01_EDEN_CA.paa"; class Pylons { class RightInner // PylonLeft1 { attachment="PylonRack_4Rnd_LG_scalpel"; priority=1; hardpoints[]= { "SCALPEL_4RND", "19xDAR", "12xDAR" }; turret[]={0}; UIposition[]={0.059999999,0.40000001}; mirroredMissilePos=2; }; class LeftInner: RightInner // was left2 { UIposition[]={0.079999998,0.34999999}; mirroredMissilePos=1; }; class RightOuter: RightInner //was left3 { attachment="PylonRack_19Rnd_Rocket_Skyfire"; priority=2; mirroredMissilePos=4; UIposition[]={0.1,0.30000001}; }; class LeftOuter: RightInner // was right 3 { priority=1; mirroredMissilePos=3; UIposition[]={0.55000001,0.30000001}; }; class LeftTip: RightInner // was right2 { hardpoints[]= { "B_BIM9X_RAIL", "B_ASRRAM_EJECTOR", "SCALPEL_1RND_EJECTOR" }; mirroredMissilePos=6; UIposition[]={0.56999999,0.34999999}; attachment="PylonRack_Missile_BIM9X_x1"; }; class RightTip: LeftTip // was right1 { mirroredMissilePos=5; UIposition[]={0.58999997,0.40000001}; }; }; class presets { class Empty { displayName="$STR_empty"; attachment[]={}; }; }; }; }; class Turrets: Turrets { class MainTurret: MainTurret { magazines[]= { "250Rnd_30mm_HE_shells_Tracer_Red", "250Rnd_30mm_APDS_shells_Tracer_Red", "Laserbatteries" }; weapons[]= { "gatling_30mm", "Laserdesignator_mounted" }; memoryPointGun = "machinegun"; // from old config }; }; // new animations class AnimationSources: AnimationSources /// custom made animation sources, takes most parameters from parent { class Proxy; class Missiles_revolving; class HideWeapon; class Gatling; class Gatling_flash; }; }; }; and the model file: Spoiler class CfgSkeletons { class Default // begin new { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class Vehicle : Default {};// end new class Helicopter: Vehicle { skeletonInherit="Vehicle"; skeletonBones[]= { "velka vrtule dive", "", "mala vrtule dive", "", "main rotor", "velka vrtule dive", // new "tail rotor", "mala vrtule dive", // also new "velka vrtule", "velka vrtule dive", "mala vrtule", "mala vrtule dive", "otocvez", "", "otochlaven", "otocvez", "alt", "", "alt2", "", "nm_alt", "", "nm_alt2", "", "mph", "", "mph2", "", "vert_speed", "", "vert_speed2", "", "rpm", "", "rpm2", "", "horizont", "", "horizont2", "", "kompas", "", "kompas2", "", "compas", "", // new "compas2", "", // new "hodinova", "", "hodinova2", "", "minutova", "", "minutova2", "", "damageHide", "" }; }; class AH64 : Helicopter { skeletonInherit = ""; skeletonBones[] = { "main_trav","", "main_elev","main_trav", "tads_trav","", "tads_elev","tads_trav", "pnvs_trav","", "damper_left","", "damper_right","", "damper_rear","", "elevator","", "display_off","", "ins_ai_1","", "ins_ai_2","", "ins_asi_1","", "ins_alt_1","", "ins_alt_2","", "ins_compass_1","", "dg_bank","", "dg_compas","", "dg_pitch","", "dg_rpm","", "dg_vertspeed","", }; }; class AH96 : AH64 }; class Rotation { type = "rotation"; memory = 1; minValue = 0; maxValue = 1; angle0 = 0; angle1 = 1; }; class CfgModels { class Default // begin new { sectionsInherit=""; sections[] = {}; skeletonName = ""; }; class Vehicle: Default { sections[] = { "cislo", "grupa", "side", "sektor", "clan", "clan_sign", "podsvit pristroju", "poskozeni", "L svetlo", "P svetlo", "zasleh" }; }; // end new class Helicopter: Vehicle { htMin = 60; // Minimum half-cooling time (in seconds) - start new htMax = 1800; // Maximum half-cooling time (in seconds) afMax = 200; // Maximum temperature in case the model is alive (in celsius) mfMax = 100; // Maximum temperature when the model is moving (in celsius) mFact = 0; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)). tBody = 0; // Metabolism temperature of the model (in celsius) - end new sectionsInherit="Vehicle"; sections[]= { "sklo predni p", "sklo predni l", "velka vrtule staticka", "velka vrtule blur", "mala vrtule staticka", "mala vrtule blur", "main rotor blur", // start new "main rotor static", "tail rotor blur", "tail rotor static", // end new "zasleh_1", "motor", "elektronika", "munice", "zbran", "vez", "trup", "clan", "clan_sign", "glass1", "glass2", "glass3", "glass4", "glass5", "glass6", "podsvit pristroju" }; skeletonName="Helicopter"; class Animations { // destruct BASE START // rotor static dive // rotordive // rotorShaft // velka vrtule // mala vrtule class Rotor_destructX { type="rotationX"; source="damage";//damage selection="velka vrtule"; // in the model axis="velka osa"; //in the model memmory section animPeriod=0; minValue=0.99; maxValue=1; angle0=0; angle1="rad -20"; }; class Rotor_destructY:Rotor_destructX { type="rotationY"; angle1="rad +40"; }; class rotordive_destructX:Rotor_destructX { selection="rotordive"; // selection doesn't exist? angle1="rad -5"; }; class rotordive_destructY:rotordive_destructX { type="rotationY"; angle1="rad -15"; }; class rotordive_destructZ:rotordive_destructX { type="rotationZ"; angle1="rad -5"; }; class rotor_static_dive_destructX:Rotor_destructX { selection="rotor static dive"; // selection doesn't exist? angle1="rad 5"; }; class rotor_static_dive_destructY:rotor_static_dive_destructX { type="rotationY"; angle1="rad -15"; }; class rotor_static_dive_destructZ:rotor_static_dive_destructX { type="rotationZ"; angle1="rad -5"; }; class mala_vrtule_destructY:Rotor_destructX { type="rotationY"; axis="mala osa"; selection="mala vrtule"; angle1="rad 10"; }; class mala_vrtule_destructZ:mala_vrtule_destructY { type="rotationZ"; angle1="rad 25"; }; // destruct BASE END class damageHide { type="hide"; source="damage"; selection="damageHide"; }; class IndicatorAltBaro: Rotation { source="altBaro"; sourceAddress="loop"; selection="alt"; axis="osa_alt"; memory=0; maxValue=304; angle1="rad -360"; }; class IndicatorAltBaro2: IndicatorAltBaro { selection="alt2"; axis="osa_alt2"; }; class IndicatorAltRadar: Rotation { source="altRadar"; selection="nm_alt"; axis="osa_nm_alt"; memory="false"; maxValue=61; angle1="rad -180"; }; class IndicatorAltRadar2: IndicatorAltRadar { selection="nm_alt2"; axis="osa_nm_alt2"; }; class IndicatorSpeed: Rotation { source="speed"; selection="mph"; axis="osa_mph"; memory="false"; maxValue=125; angle1="rad -320"; }; class IndicatorSpeed2: IndicatorSpeed { selection="mph2"; axis="osa_mph2"; }; class IndicatorVertSpeed: Rotation { source="vertSpeed"; selection="vert_speed"; axis="osa_vert_speed"; minValue=-30; maxValue=30; angle1="rad -300"; }; class IndicatorVertSpeed2: IndicatorVertSpeed { selection="vert_speed2"; axis="osa_vert_speed2"; }; class IndicatorRPM: Rotation { source="rpm"; selection="rpm"; axis="osa_rpm"; memory="false"; maxValue=12; angle1="rad -320"; }; class IndicatorRPM2: IndicatorRPM { selection="rpm2"; axis="osa_rpm2"; }; class IndicatorCompass: Rotation { source="direction"; selection="kompas"; axis="osa_kompas"; memory="false"; minValue=-3.141593; maxValue=3.141593; angle1="rad -360"; }; class IndicatorCompass2: IndicatorCompass { selection="kompas2"; axis="osa_kompas2"; }; class WatchHour: Rotation { source="clockHour"; selection="hodinova"; axis="osa_time"; memory="false"; angle1="rad -360"; }; class WatchHour2: WatchHour { selection="hodinova2"; axis="osa_time2"; }; class WatchMinute: Rotation { source="clockMinute"; selection="minutova"; axis="osa_time"; memory="false"; angle1="rad -360"; }; class WatchMinute2: WatchMinute { selection="minutova2"; axis="osa_time2"; }; class HRotor: Rotation { source="rotorH"; selection="velka vrtule"; axis="velka osa"; angle1="2 * 3.1415926536"; }; class VRotor: Rotation { source="rotorV"; selection="mala vrtule"; axis="mala osa"; angle1="2 * 3.1415926536"; }; class HorizonBank { type="rotationZ"; source="horizonBank"; selection="horizont"; axis="osa_horizont"; minValue="rad -360"; maxValue="rad +360"; angle0="rad -360"; angle1="rad +360"; }; class HorizonDive { type="rotationX"; source="horizonDive"; selection="horizont"; axis="osa_horizont"; minValue=-6.283190; maxValue=6.283190; angle0=-0.314159; angle1=0.314159; }; class Horizon2Bank: HorizonBank { selection="horizont2"; axis="osa_horizont2"; }; class Horizon2Dive: HorizonDive { selection="horizont2"; axis="osa_horizont2"; }; }; }; class AH64D: Helicopter { skeletonName = "AH64"; sectionsInherit="Helicopter"; class Animations : Animations { class MainTurret { type = "rotation"; source = "mainTurret"; selection = "main_trav"; axis = "main_trav_axis"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class MainGun { type = "rotation"; source = "mainGun"; selection = "main_elev"; axis = "main_elev_axis"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class TADSTurret { type = "rotation"; source = "mainTurret"; selection = "tads_trav"; axis = "tads_trav_axis"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class TADSElev { type = "rotation"; source = "mainGun"; selection = "tads_elev"; axis = "tads_elev_axis"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class PNVSTurret { type = "rotation"; source = "mainTurret"; selection = "pnvs_trav"; axis = "pnvs_trav_axis"; animPeriod = 0; memory = 1; minValue = "rad -360"; maxValue = "rad +360"; angle0 = "rad -360"; angle1 = "rad +360"; }; class ArtificialHorizon_1_Pitch { type = "rotationX"; source = "horizondive"; selection = "ins_ai_1"; axis = "ins_ai_1_pitch_axis"; minValue = "rad -45"; maxValue = "rad 45"; angle0 = "rad -45"; angle1 = "rad 45"; }; class ArtificialHorizon_1_Roll { type = "rotation"; source = "horizonBank"; selection = "ins_ai_1"; axis = "ins_ai_1_roll_axis"; minValue = "rad -360"; maxValue = "rad 360"; angle0 = "rad -360"; angle1 = "rad 360"; }; class AirSpeedIndicator_1: Rotation { source = "speed"; selection = "ins_asi_1"; axis = "ins_asi_1_axis"; minValue = 0.000000; maxValue = 110.000000; angle0 = "rad 130"; angle1 = "rad -200"; }; class Altimiter_1: Rotation { source = "altBaro"; selection = "ins_alt_1"; axis = "ins_alt_1_axis"; sourceAddress = "loop"; maxValue = 100; angle1 = "rad -360"; }; class Altimiter_2: Rotation { source = "altBaro"; selection = "ins_alt_2"; axis = "ins_alt_2_axis"; sourceAddress = "loop"; maxValue = 1000; angle1 = "rad -360"; }; class Compass_1: Rotation { source = "direction"; selection = "ins_compass_1"; axis = "ins_compass_1_axis"; minvalue = "rad -180"; maxvalue = "rad 180"; angle0 = "rad 70"; angle1 = "rad -290"; }; class display_on { type="hide"; source="rpm"; selection="display_off"; minValue=-0.8; maxValue=0.2; hidevalue=0.9; sourceAddress="clamp"; }; class dg_rpm { type="translation"; source="rpm"; selection="dg_rpm"; axis="dg_rpm_axis"; memory=1; minValue=0; maxValue=1; offset0=1; offset1=0; sourceAddress="clamp"; }; class dg_vertspeed { type="translation"; source="vertSpeed"; selection="dg_vertspeed"; axis="dg_vertspeed_axis"; memory=1; minValue=-15; maxValue=15; offset0=-0.5; offset1=0.5; }; class dg_compas: Compass_1 { selection = "dg_compas"; axis = "dg_compas_axis"; angle0 = "rad 0"; angle1 = "rad 36"; sourceaddress = "loop"; }; class dg_pitch: ArtificialHorizon_1_Pitch { selection = "dg_pitch"; axis = "dg_pitch_axis"; minValue = "rad -90"; maxValue = "rad 90"; angle0 = "rad -34"; angle1 = "rad 34"; }; class dg_bank: ArtificialHorizon_1_Roll { type = "rotation"; selection = "dg_bank"; axis = "dg_bank_axis"; minValue = "rad -360"; maxValue = "rad 360"; angle0 = "rad 360"; angle1 = "rad -360"; }; class Dampers: Rotation { source = "altRadar"; selection = ""; axis = ""; maxValue = 0.20; angle0 = 0.1; angle1 = 0.00; }; class DampersRear: Dampers { selection = "damper_rear"; axis = "damper_rear_axis"; }; class DampersLeft: Dampers { selection = "damper_left"; axis = "damper_left_axis"; }; class DampersRight: Dampers { selection = "damper_right"; axis = "damper_right_axis"; angle0 = -0.1; angle1 = 0.00; }; class Elevator: Rotation { source = "speed"; selection = "elevator"; axis = "elevator_axis"; minValue = 25.0; maxValue = 30.0; angle0 = 0.5; angle1 = 0.0; }; }; }; class AH96: AH64D { skeletonName = "AH96"; }; }; I've already played around with the files a lot... since a simple drag and drop of the files from Arma 2 samples didn't work, I don't know what to do here... Share this post Link to post Share on other sites