User Tools

Site Tools


arma2:hand_anims

Hand Anims

Hand Anims or Hand Animations.

Armored_Sheep (BIS Dev) said:

Weapon holding animation is simple static pose (like static cargo animation). You can make the animation in O2 it using released rigid character model (BISkeleton). You can use any RTM of man from Arma1 as sources for basic pose. RTM of handgrip is configured in the weapon config and engine uses only hand bones position relative to weapon bone.

I just gues, but might be, you defined ROOT bone when Oxygen asked for it during export to RTM? If so, than delete this root bone definition in O2 options and when exporting to RTM cancel/skip the root bone question dialogue.

Another problem can be if you dont use my rigid skeleton model, but some other mesh with skinning. RTM can be exported only from mesh with 100% weight for selections, no skinning, otherwise you got such movie “The Thing” distorsions.

Synide said:

Ah… I worked out how to convert the unbinarized .rtm's to binarized using BinPBO etc.

When binarize processes a .p3d it thinks… model ! ahah… I know how to process that and hmmm… while i'm about it i'll see if there is a <NameOfModel>.cfg, or a <FolderTheP3DIsSittingIn>.cfg or a model.cfg sitting in the same folder as the .p3d that might have some skeleton/anim stuff in it.

Ok, so in terms of an .rtm… You need to think of the .rtm as 'just another model'… ok, so it's not a 3d model but to binarize.exe it's a 'model' of animation and as such needs a skeleton to process it.

So… if you have say…

P:\SYM\SYM_Wpns_BigFatGuns\anims\reload_prone.rtm
P:\SYM\SYM_Wpns_BigFatGuns\anims\reload_crouched.rtm
P:\SYM\SYM_Wpns_BigFatGuns\anims\reload_standing.rtm

You'd create either a 'anims.cfg' or a 'model.cfg' in the 'P:\SYM\SYM_Wpns_BigFatGuns\anims' folder. It would have similar information in it to the following. FYI, I prefer to call my model.cfg's the name of the folder as this can save a hua of amount of grief when you have alot of stuff.

class CfgSkeletons
{
	class Default
	{
		isDiscrete = 1;
		skeletonInherit = "";
		skeletonBones[] = {};
	};
 
	class OFP2_ManSkeleton
	{
		isDiscrete = 0;
		skeletonInherit = "";
		skeletonBones[] =
		{
			"Pelvis", "",
			"Spine", "Pelvis",
			"Spine1", "Spine",
			"Spine2", "Spine1",
			"Spine3", "Spine2",
			"Camera", "Pelvis",
			"weapon", "Spine1",
			"launcher", "Spine1",
 
			//Head skeleton in hierarchy
			"neck", "Spine3",
			"neck1", "neck",
			"head", "neck1",
			"HeadCutScene", "head",
			"jaw", "head",
			"chin", "head",
			"jaw_rf", "head",
			"jaw_rm", "head",
			"jaw_rs", "head",
			"jaw_lf", "head",
			"jaw_lm", "head",
			"jaw_ls", "head",
			"ear_r", "head",
			"ear_l", "head",
			"lip_lc", "head",
			"lip_lwlb", "head",
			"lip_lwlf", "head",
			"lip_lwm", "head",
			"lip_lwrf", "head",
			"lip_lwrb", "head",
			"lip_rc", "head",
			"lip_uprb", "head",
			"lip_uprf", "head",
			"lip_upm", "head",
			"lip_uplf", "head",
			"lip_uplb", "head",
			"nose_tip", "head",
			"nose_r", "head",
			"nose_l", "head",
			"zig_lt", "head",
			"zig_lm", "head",
			"zig_lb", "head",
			"zig_rt", "head",
			"zig_rm", "head",
			"zig_rb", "head",
			"cheek_r", "head",
			"cheek_l", "head",
			"eyebrow_lb", "head",
			"eyebrow_lm", "head",
			"eyebrow_lf", "head",
			"corr", "head",
			"eyebrow_rf", "head",
			"eyebrow_rm", "head",
			"eyebrow_rb", "head",
			"eye_upr", "head",
			"eye_lwr", "head",
			"eye_upl", "head",
			"eye_lwl", "head",
			"cheek_rf", "head",
			"cheek_rm", "head",
			"cheek_rb", "head",
			"cheek_lf", "head",
			"cheek_lm", "head",
			"cheek_lb", "head",
			"forehead_l", "head",
			"forehead_m", "head",
			"forehead_r", "head",
			"l_eye", "head",
			"r_eye", "head",
			"l_pupila", "head",
			"r_pupila", "head",
			"neck_t", "head",
			"neck_b", "head",
			"neck_r", "head",
			"neck_l", "head",
			"tongue_b", "head",
			"tongue_m", "head",
			"tongue_f", "head",
 
			//Left upper side
			"LeftShoulder", "Spine3",
			"LeftArm", "LeftShoulder",
			"LeftArmRoll", "LeftArm",
			"LeftForeArm", "LeftArmRoll",
			"LeftForeArmRoll", "LeftForeArm",
			"LeftHand", "LeftForeArmRoll",
			"LeftHandRing", "LeftHand",
			"LeftHandRing1", "LeftHandRing",
			"LeftHandRing2", "LeftHandRing1",
			"LeftHandRing3", "LeftHandRing2",
			"LeftHandPinky1", "LeftHandRing",
			"LeftHandPinky2", "LeftHandPinky1",
			"LeftHandPinky3", "LeftHandPinky2",
			"LeftHandMiddle1", "LeftHand",
			"LeftHandMiddle2", "LeftHandMiddle1",
			"LeftHandMiddle3", "LeftHandMiddle2",
			"LeftHandIndex1", "LeftHand",
			"LeftHandIndex2", "LeftHandIndex1",
			"LeftHandIndex3", "LeftHandIndex2",
			"LeftHandThumb1", "LeftHand",
			"LeftHandThumb2", "LeftHandThumb1",
			"LeftHandThumb3", "LeftHandThumb2",
 
			//Right upper side
			"RightShoulder", "Spine3",
			"RightArm", "RightShoulder",
			"RightArmRoll", "RightArm",
			"RightForeArm", "RightArmRoll",
			"RightForeArmRoll", "RightForeArm",
			"RightHand", "RightForeArmRoll",
			"RightHandRing", "RightHand",
			"RightHandRing1", "RightHandRing",
			"RightHandRing2", "RightHandRing1",
			"RightHandRing3", "RightHandRing2",
			"RightHandPinky1", "RightHandRing",
			"RightHandPinky2", "RightHandPinky1",
			"RightHandPinky3", "RightHandPinky2",
			"RightHandMiddle1", "RightHand",
			"RightHandMiddle2", "RightHandMiddle1",
			"RightHandMiddle3", "RightHandMiddle2",
			"RightHandIndex1", "RightHand",
			"RightHandIndex2", "RightHandIndex1",
			"RightHandIndex3", "RightHandIndex2",
			"RightHandThumb1", "RightHand",
			"RightHandThumb2", "RightHandThumb1",
			"RightHandThumb3", "RightHandThumb2",
 
			//Left lower side
			"LeftUpLeg", "Pelvis",
			"LeftUpLegRoll", "LeftUpLeg",
			"LeftLeg", "LeftUpLegRoll",
			"LeftLegRoll", "LeftLeg",
			"LeftFoot", "LeftLegRoll",
			"LeftToeBase", "LeftFoot",
 
			//Right lower side
			"RightUpLeg", "Pelvis",
			"RightUpLegRoll", "RightUpLeg",
			"RightLeg", "RightUpLegRoll",
			"RightLegRoll", "RightLeg",
			"RightFoot", "RightLegRoll",
			"RightToeBase", "RightFoot"
		};
 
		pivotsModel = "";
	};
};
 
class CfgModels
{
	class Default
	{
		sectionsInherit = "";
		sections[] = {};
		skeletonName = "";
	};
 
	class ArmaMan : Default
	{
		sections[] =
		{
			"osobnost",
			"Head_Injury",
			"Body_Injury",
			"l_leg_in jury",
			"l_arm_injury",
			"r_arm_injury",
			"r_leg_injury",
			"clan",
			"clan_sign",
			"Camo",
			"CamoB"
		};
 
		skeletonName = "OFP2_ManSkeleton";
	};
 
	class reload_prone : ArmaMan {};
	class reload_crouched : ArmaMan {};
	class reload_standing : ArmaMan {};
};

For each unbinarized .rtm anim file you have in the folder just specify it at the end of the 'model.cfg' in the anims folder.

Now, run BinPBO and… In your 'temp' output folder you'll notice now that there should be a <NameOfRTMFile>.rtm.dep and the .rtm will be a lot smaller as it's now binarized.

Cheers.

arma2/hand_anims.txt · Last modified: 2015-08-22 01:26 by snakeman