Arma3 武器コンフィグガイドライン
Contents
|
101 - How to set up a weapon for Arma 3
Arma3での武器の作り方
Please be aware of our Arma 3 modding license:http://community.bistudio.com/wiki/Arma_3_Modding_License
ARAM3用MOD作成に関するライセンス規定を確認してください。
Arma3で追加された機能
p3dモデルに関する必須項目
{model.cfg}
class magazine_hide
{
type = "hide";
source = "reloadMagazine";
selection = "magazine";
minValue = 0.000000;
maxValue = 1.00000;
hideValue = 0.220;
unhideValue = 0.550;
};
{model.cfg}
class magazine_reload_move_1
{
type = "translation";
source = "reloadMagazine";
selection = "magazine";
axis = "magazine_axis";
minValue = 0.145;
maxValue = 0.170;
offset0 = 0.0;
offset1 = 0.5;
};
{model.cfg}
class BackSight_optic
{
type = "rotation";
source = "hasOptics";
selection = "BackSight";
axis = "BackSight_axis";
memory = 1;
minValue = 0.0000000;
maxValue = 1.0000000;
angle0 = 0.000000;
angle1 = (rad 90);
};
{model.cfg}
class OP_ROT
{
type="rotation";
source="zeroing2"; // use second muzzle zeroing for rotation
sourceAddress="loop"; // loop when phase out of bounds
selection="OP"; // selection we want to rotate
axis="OP_axis"; // has its own axis
minValue=0;
maxValue=3; // this weapon has array with 4 distances
angle0="rad 0";
angle1="rad 65";
};
{model.cfg}
class MuzzleFlashROT
{
type="rotationX";
source="ammoRandom"; //use ammo count as phase for animation
sourceAddress="loop"; //loop when phase out of bounds
selection="zasleh"; //selection we want to rotate
axis=""; //no own axis - center of rotation is computed from selection
centerFirstVertex=true; //use first vertex of selection as center of rotation
minValue=0;
maxValue=4; //rotation angle will be 360/4 = 90 degrees
angle0="rad 0";
angle1="rad 360";
};
class SlotInfo;
class CowsSlot : SlotInfo
{
// targetProxy
linkProxy = "\A3\data_f\proxies\weapon_slots\TOP";
// display name
displayName = $STR_A3_CowsSlot0;
// class names with items supported by weapon
compatibleItems[] = {"optic_Arco","optic_aco", "optic_ACO_grn","optic_hamr","optic_Holosight"};
};
class PointerSlot : SlotInfo
{
// targetProxy
linkProxy = "\A3\data_f\proxies\weapon_slots\SIDE";
// display name
displayName = $STR_A3_PointerSlot0;
// class names with items supported by weapon
compatibleItems[] = {"acc_flashlight","acc_pointer_IR"};
};
class cfgWeapons
{
class myWeapon
{
class WeaponSlotsInfo
{
mass = 4; /// default mass of a weapon
class MuzzleSlot : SlotInfo
{
// targetProxy
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
// display name
displayName = "Muzzle Slot";
// class names with items supported by weapon
compatibleItems[] = {}; // moved to each weapon
};
class CowsSlot: CowsSlot {};
class PointerSlot: PointerSlot {};
allowedSlots[] = {901}; // you simply cannot put this into your pants
};
};
};
class Mode_SemiAuto;
class cfgWeapons
{
class ItemCore;
class InventoryMuzzleItem_Base_F;
class myMuzzleAccessory
{
scope = 2;
displayName="My Muzzle Accessory";
picture="\A3\weapons_F\Data\UI\myMuzzleAccessory_CA.paa";
model = "\A3\weapons_f\acc\myMuzzleAccessory";
class ItemInfo: InventoryMuzzleItem_Base_F
{
class MagazineCoef
{
initSpeed = 0.8;
};
class AmmoCoef
{
hit=0.8;
visibleFire=0.3;
audibleFire=0.8;
visibleFireTime=0.5;
audibleFireTime=1.0;
cost = 1.0;
typicalSpeed= 0.8;
airFriction = 1.0;
};
muzzleEnd = "zaslehPoint"; // memory point in muzzle supressor's model
alternativeFire = "Zasleh2"; // class in cfgWeapons with model of muzzle flash
modes[] = {"Single"};
class Single: Mode_SemiAuto
{
begin1[]={"A3\sounds_f\weapons\silenced\silent-25.wav", db0, 1,600};
begin2[]={"A3\sounds_f\weapons\silenced\silent-26.wav", db0, 1,600};
soundBegin[]={begin1,0.5, begin2,0.5};
closure1[]={"A3\sounds_f\weapons\closure\closure_rifle_2.wav", db0, 1,300};
closure2[]={"A3\sounds_f\weapons\closure\closure_rifle_3.wav", db0, 1,300};
soundClosure[]={closure1,0.5, closure2,0.5};
weaponSoundEffect = "DefaultRifle";
};
};
};
};
class cfgWeapons
{
class ItemCore;
class InventoryOpticsItem_Base_F;
class myOpticsAccessory
{
scope = 2;
displayName="My Optics Accessory";
picture="\A3\weapons_F\Data\UI\myOpticsAccessory_CA.paa";
model = "\A3\weapons_f\acc\myOpticsAccessory";
weaponInfoType = "RscOptics_myOptics";
class ItemInfo: InventoryOpticsItem_Base_F
{
mass = 7;
modelOptics="\A3\Weapons_f\acc\reticle_MyOptics_F";
class OpticsModes
{
class MyOptics
{
opticsID = 1;
useModelOptics = true;
opticsPPEffects[]={"OpticsCHAbera1","OpticsBlur1"};
opticsZoomMin = 0.0555;
opticsZoomMax = 0.1300;
opticsZoomInit= 0.1300;
discreteDistance[] = {100,300,400,500,600,700,800,900,1000};
discreteDistanceInitIndex = 1;
distanceZoomMin = 100;
distanceZoomMax = 1000;
nFovLimit = 0.07;
discretefov[] = {0.1300,0.0555};
discreteInitIndex = 0;
modelOptics[] = {"\A3\Weapons_f\acc\reticle_MyOptics_F", "\A3\Weapons_f\acc\reticle_MyOptics_z_F"};
memoryPointCamera = "opticView";
visionMode[] = {"Normal","NVG"};
opticsFlare = true;
opticsDisablePeripherialVision = true;
cameraDir = "";
};
class IronOnTopOfMyOptics: MyOptics
{
opticsID = 2;
useModelOptics = false;
opticsFlare = false;
opticsDisablePeripherialVision = false;
opticsZoomMin=0.375;
opticsZoomMax=1.1;
opticsZoomInit=0.75;
memoryPointCamera = "eye";
visionMode[] = {};
discretefov[] = {};
};
};
};
};
};
class cfgWeapons
{
class ItemCore;
class InventoryFlashLightItem_Base_F;
class mySidesAccessory
{
scope = 2;
displayName="My Sides Accessory";
picture="\A3\weapons_F\Data\UI\mySidesAccessory_CA.paa";
model = "\A3\weapons_f\acc\mySidesAccessory";
class ItemInfo: InventoryFlashLightItem_Base_F
{
mass = 9;
class Pointer
{
irLaserPos="laser pos";
irLaserEnd="laser dir";
};
class FlashLight{};
};
};
};
class CfgMovesBasic
{
class DefaultDie;
class ManActions
{
reloadMyWeapon = "reloadMyWeapon";
};
};
class CfgGesturesMale
{
class Default;
class States
{
class reloadMyWeapon: Default
{
file="\A3\anims_f\Data\Anim\Sdr\wop\erc\stp\rld\rfl\reloadMyWeapon.rtm";
looped=0;
speed=0.400000;
mask="handsWeapon";
headBobStrength=0.200000;
headBobMode=2;
rightHandIKBeg=1;
rightHandIKEnd=1;
leftHandIKCurve[]={0,1,0.050000,0,0.950000,0,1,1};
};
};
};
class cfgWeapons
{
class myWeapon
{
reloadAction = "reloadMyWeapon";
};
};
class Mode_SemiAuto;
class cfgWeapons
{
class myWeapon
{
modes[] = {"Single"}; // this example weapon has just one fire mode
canShootInWater = 1; // allows to shoot under water
class Single: Mode_SemiAuto
{
begin1[]={"A3\sounds_f\weapons\myWeapon\myWeapon_st_1b.wav", db5, 1,900};
begin2[]={"A3\sounds_f\weapons\myWeapon\myWeapon_st_2b.wav", db5, 1,900};
begin3[]={"A3\sounds_f\weapons\myWeapon\myWeapon_st_3b.wav", db5, 1,900};
soundBegin[]={begin1,0.33, begin2,0.33, begin3,0.34}; // all three sounds have roughly the same probablity
beginwater1[]={"A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_1b.wav", db0, 1,200};
beginwater2[]={"A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_2b.wav", db5, 1,200};
beginwater3[]={"A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_3b.wav", db5, 1,200};
soundBeginWater[]={beginwater1,0.33, beginwater2,0.33, beginwater3,0.34}; // all three sounds have roughly the same probablity
};
};
};
class cfgAmmo
{
class BulletBase;
class myAmmo: BulletBase // For myWeapon
{
waterFriction = -0.00096; // nearly direct line underwater
timeToLive = 0.12; // that's enough for 45 meters underwater
effectFly = "AmmoUnderwater";
};
};
submunitionConeType[] = {"random", 10};
submunitionConeType[] = {"randomcenter", 10};
submunitionConeType[] = {"poissondisc", 10};
submunitionConeType[] = {"poissondisccenter", 10};
submunitionConeType[] = {"custom", {{0,0}, {-1,0}, {1,0}, {0,-1}, {0,1}} };
class cfgAmmo
{
class SubmunitionBase;
class MyAmmo: SubmunitionBase
{
submunitionAmmo = "MySubmunitionAmmo";
submunitionConeType[] = {"poissondisc", 10};
submunitionConeAngle = 10;
triggerDistance = 100;
};
};
class cfgAmmo
{
class ShotDeployBase;
class Mo_ClassicMineRange: ShotDeployBase
{
submunitionAmmo = "APERSMine_Range_Ammo"; // some random mine deployable by a mortar
airFriction = 0; // artillery ammo works better without friction
EffectFly = "ArtilleryTrails"; // some funky effect of smoke trails and stuff
};
};
class cfgVehicles
{
class myVehicle
{
class HitPoints
{
class HitLFWheel {armor=0.12; explosionShielding = 0.8;};
};
};
};
You may want to seeArma 2 Weapon to Arma 3for correct icons and other stuff.
This page is discussedon the BI forums