ADuke 1 Posted December 21, 2011 Hi, I am working on a head for my soldier model which was a port from the ArmA1 sample models, the model has worked in ArmA2 for a very long time. The head model on the other hand I just made and I have some trouble with it, in-game the head appears between the legs of the soldier model. Here is some more info.. Model.cfg class cfgSkeletons { class default; // External class reference class Head { isDiscrete = 0; skeletonInherit = ""; skeletonBones[] = { "neck", "", "neck1","neck", "head","neck1", "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" }; }; class OFP2_ManSkeleton : default { 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", "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", "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", "leftupleg","pelvis", "leftuplegroll","leftupleg", "leftleg","leftuplegroll", "leftlegroll","leftleg", "leftfoot","leftlegroll", "lefttoebase","leftfoot", "rightupleg","pelvis", "rightuplegroll","rightupleg", "rightleg","rightuplegroll", "rightlegroll","rightleg", "rightfoot","rightlegroll", "righttoebase","rightfoot" }; pivotsModel = ""; }; }; class CfgModels { class Default { sections[] = {}; sectionsInherit = ""; }; class flag_vojak : Default { sections[] = {"latka"}; }; class Head : Default { sections[] = {"osobnost", "brejle"}; skeletonName = "Head"; }; class ArmaMan : Default { sections[] = { "Head_Injury", "Body_Injury", "l_leg_injury", "l_arm_injury", "r_arm_injury", "r_leg_injury", "clan", "helmet", "pouches", "pouches2", "face", "uniform", "shemagh", "backpack", "halogear", "backshit1", "backshit2" }; skeletonName = "OFP2_ManSkeleton"; }; class ad_assault : ArmaMan {}; class ad_assault_night : ArmaMan {}; class ad_bdu : ArmaMan {}; class ad_head_FAST_od : ArmaMan {}; }; }; Config Entries for head class CfgHeads { class DefaultHead; // External Class Reference class ad_head_FAST_od: DefaultHead { model = "\ad_soldiers\ad_head_FAST_od.p3d"; class wounds { tex[] = {}; mat[] = {"ca\Characters\Heads\Male\DefaultHead\data\hhl_white.rvmat", "ca\characters\heads\male\blackhead\data\hhl_black_Wounds1.rvmat", "ca\characters\heads\male\blackhead\data\hhl_black_Wounds2.rvmat"}; }; }; }; class CfgFaces { class Default; class Man: Default { class Default; class AD_FAST_OD_FACE: Default { name = "A. Duke night"; head = "ad_head_FAST_od"; texture = "\ca\characters\hhl\hhl_60_hair_co.paa"; material = "\ca\characters_e\heads\male\defaulthead\data\camo2_hhl.rvmat"; identityTypes[] = {"AD_FAST_OD_FACE",50}; }; I have this in the soldier's config... identityTypes[] = {"AD_FAST_OD_FACE"}; faceType = "Man"; Has anyone seen this before and know a fix for it? Thanks, -AD Share this post Link to post Share on other sites
max power 21 Posted December 21, 2011 Please provide a screen shot of model. Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 Please provide a screen shot of model. You want a screenshot of the soldier model or the head model? In-game or in o2? Share this post Link to post Share on other sites
max power 21 Posted December 21, 2011 Either works. Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 Here ya go.. Soldier Model Head Model Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 Well, I thought the problem was the faceType and identityType entries in my config so i did this... class CfgHeads { class DefaultHead; // External Class Reference class ad_winter_head: DefaultHead { model = "\ad_soldiers\ad_winter_head.p3d"; class wounds { tex[] = {}; mat[] = {"ca\Characters\Heads\Male\DefaultHead\data\hhl_white.rvmat", "ca\characters\heads\male\blackhead\data\hhl_black_Wounds1.rvmat", "ca\characters\heads\male\blackhead\data\hhl_black_Wounds2.rvmat"}; }; }; class ad_head_FAST_od: DefaultHead { model = "\ad_soldiers\ad_head_FAST_od.p3d"; class wounds { tex[] = {}; mat[] = {"ca\Characters\Heads\Male\DefaultHead\data\hhl_white.rvmat", "ca\characters\heads\male\blackhead\data\hhl_black_Wounds1.rvmat", "ca\characters\heads\male\blackhead\data\hhl_black_Wounds2.rvmat"}; }; }; }; class CfgFaces { class Man; class AD_Faces : Man { class Default { name = "AD_Default_Face"; head = "DefaultHead"; texture = "\ca\characters\hhl\hhl_60_hair_co.paa"; material = "\ca\characters\heads\male\DefaultHead\data\hhl_white.rvmat"; identityTypes[] = {}; }; class Custom : Default { name = "AD_Custom_Face"; head = "DefaultHead"; texture = "\ca\characters\hhl\hhl_60_hair_co.paa"; material = "\ca\characters\heads\male\DefaultHead\data\hhl_white.rvmat"; identityTypes[] = {}; }; class AD_FAST_OD_FACE: Default { name = "AD FAST OD"; head = "ad_head_FAST_od"; texture = "\ca\characters\hhl\hhl_60_hair_co.paa"; material = "\ca\characters_e\heads\male\defaulthead\data\camo2_hhl.rvmat"; identityTypes[] = {"AD_FAST_OD_FACE",50}; }; }; }; and put these in my soldier's config... identityTypes[] = {"AD_FAST_OD_FACE"}; faceType = "AD_Faces"; But the head is still stuck between the soldier's legs. I could really use some help here. -AD Share this post Link to post Share on other sites
max power 21 Posted December 21, 2011 That model looks like bysta.p3d. Why not put the helmet on the soldier model and use the default heads with a custom face? Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 That model looks like bysta.p3d. Why not put the helmet on the soldier model and use the default heads with a custom face? Because if I can get it to work, I would like to have a set of heads that I can switch out between character models, I have heard of different addon makers being successful in doing this. It would save a lot of space in an addon to have different heads rather than creating completely new character models when all I want is for them to have different helmets. Share this post Link to post Share on other sites
max power 21 Posted December 21, 2011 You are certain you head proxy is in the correct location? Is the autocenter named property perhaps set to one in one of your models? Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 (edited) You are certain you head proxy is in the correct location? Is the autocenter named property perhaps set to one in one of your models? The head was taken directly from the Bysta.p3d example model, the only change that I made to it was adding the helmet. Could you explain a bit more about the "Autocenter named property"? Thank you for your help, EDIT: I figured out the autocenter property, it is set to 1 in my soldier model, should I set it to 0? -AD Edited December 21, 2011 by ADuke Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 OK, so I checked every LOD in both the head model and soldier model, I set every instance of "Autocenter" in the named properties to 0, I rebinarized and looked in game and the issue still occurs. Let me ask something... In my Model.cfg I have the head model inheriting from "ArmaMan", same as my soldier model, is this the way it should be? -AD Share this post Link to post Share on other sites
wannabe_ 1 Posted December 21, 2011 Just redefine NVG proxy into Head selection. Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 Just redefine NVG proxy into Head selection. The NVG proxy is, and always has been, part of the head selection. Are you assuming that I am making custom glasses? This is a custom head. Share this post Link to post Share on other sites
max power 21 Posted December 21, 2011 I've been thinking about your problem and i think you can probably accomplish what you want by using hidden selections instead of a custom head. Share this post Link to post Share on other sites
Synide 0 Posted December 21, 2011 (edited) Copy the camera MemLoD point from 'BISoldier.p3d' or 'BISkeleton.p3d' from the 'BIModels.zip' example A1 models into your MemLoD of your head model. Rebuild and give it a go in game. In my Model.cfg I have the head model inheriting from "ArmaMan", same as my soldier model, is this the way it should be?-AD Yes, that's correct. PS. Post your build.log after building this too if ya can. helps deduce problems. PS2. Oh, And again (as per previous thread) what is the character model you are using this head with? Reason I ask is... does it have a 'replaceable head' proxy for bysta? Edited December 21, 2011 by Synide Share this post Link to post Share on other sites
ardvarkdb 104 Posted December 21, 2011 I was able to do this via the profile selection at the main loading screen for TF86. We used to have a custom "facepack" that had head models with attachments, helmets, etc. Is actually, in my opinion, a much better way of doing headgear than putting stuff on the model. There are several advantages: having one model and changing the heads easily, which reduces file size, amount of work on the addon makers part and increases flexibility in an addon (i.e. new helmets / update can be added with simple config changes). This method also allows you the ability to alter parts of the head model to remove clipping (as can be seen here Example.) Here is the model for the head in the example Download. I was able to place these on units by using the setface command in the editor for screenshots (or set identity, can't remember, it's been a while), but they always showed up in the proper place. Hope that helps! Share this post Link to post Share on other sites
ADuke 1 Posted December 21, 2011 I was able to do this via the profile selection at the main loading screen for TF86. We used to have a custom "facepack" that had head models with attachments, helmets, etc. Is actually, in my opinion, a much better way of doing headgear than putting stuff on the model. There are several advantages: having one model and changing the heads easily, which reduces file size, amount of work on the addon makers part and increases flexibility in an addon (i.e. new helmets / update can be added with simple config changes). This method also allows you the ability to alter parts of the head model to remove clipping (as can be seen here Example.) Here is the model for the head in the example Download. I was able to place these on units by using the setface command in the editor for screenshots (or set identity, can't remember, it's been a while), but they always showed up in the proper place. Hope that helps! Thanks a lot for that ardvarkdb!! I had of course come across one of your previous threads about this and knew it had to be possible. I was hoping you would show up here. So the key is using the setFace or setIdentity commands in the soldier, instead of changing the proxy path? I am definitely going to do it that way then, but instead of doing it every time in the editor I am going to do it in an eventHandler within the config. Will post my progress. Thanks everyone for your time. -AD Share this post Link to post Share on other sites
max power 21 Posted December 21, 2011 I was able to do this via the profile selection at the main loading screen for TF86. We used to have a custom "facepack" that had head models with attachments, helmets, etc. Is actually, in my opinion, a much better way of doing headgear than putting stuff on the model. There are several advantages: having one model and changing the heads easily, which reduces file size, amount of work on the addon makers part and increases flexibility in an addon (i.e. new helmets / update can be added with simple config changes). This method also allows you the ability to alter parts of the head model to remove clipping (as can be seen here Example.) It's the same with hidden selections I suppose, but I wonder what you mean about work? Having several different, similar p3ds doesn't add that much work. The bulk of global changes would be coming from copy and paste stuff which only takes a couple of minutes. With hidden selections, though, you would have the unit's equipment and attire (and even textures) customizable within the config, and the unit's identity would be settable separately, and his gear would be alterable within a mission with setobjecttexture (but iirc saving games is problematic?). If you didn't want the p3d to be too busy with multiple gear choices, I think if you're clever you can do proxies bound to a specific bone as long as you don't require the gear to deform. In the case of helmets, I think you would only be required to have the chin straps on the local p3d. Share this post Link to post Share on other sites
ADuke 1 Posted December 22, 2011 So thanks to ardvarkdb I was successful in my endeavor. My units were actually using hiddenselections beforehand, so I have 1 model with 10 different variations with different camo patterns, also with hidden "HALO gear" (oxy mask, parachute pack, rebreather) which become "revealed" during my halo scripts. When you add switchable headgear to that equation it adds to the customization in leaps and bounds. Not only can I have different camo patterns using the same model, but also.... 1. Those different variants can have different head gear (IE one with a helmet, and one with a ballcap or boonie) 2. Those heads have all of the animation advantages of ArmA2 heads (IE mouth moving when talking over comms) 3. Those heads can have face textures permanently assigned to them. (No switching faces in the profile editor,forcing me to back out to the main menu, between missions if I want a camo face pattern, I just ask our server admin to drop in my guy with the camo face before he launches the mission) I'm not sure about it being more or less work, but I know 1 thing... It DRASTICALLY cuts down the size of my addon, making it a lot easier to distribute the addon among friends when I make changes, this is key to the difference between having to pay for file hosting, or just attaching the addon to an email or IM. Anyway, it is kind of a complex procedure to get it to work, if anyone wants to know how to do it, feel free to PM me. Thanks to everyone for the help, -AD Share this post Link to post Share on other sites
droogs 1 Posted December 22, 2011 Anyway, it is kind of a complex procedure to get it to work, if anyone wants to know how to do it, feel free to PM me. -AD Glad you worked it out m8. Why not write a quick tutorial and upload on Armaholic. Will save you a rather full Inbox methinks. Share this post Link to post Share on other sites