Jump to content
Sign in to follow this  
plasman

O2 for dummies

Recommended Posts

There is a lot of enthusiasm about the release of o2. But understanding how it works might look a daunting task. That's why I opened this thread where (hopefully) o2 veterans and newbies might exchange useful information.

As I'm totally green at o2 (although I used some 3D modelling software before :the user friendly Wings 3D) I already have some questions wink_o.gif

I tried to put BIS O2 sample soldier model into the game. (creating a .pbo file). I though it would be ready for use. No such luck.

I got the following result : a half buried salt statue biggrin_o.gif

xay03r3c.jpg

It's missing its textures, it's not moving, and sinks into the ground.

I found why the textures are missing, it's just a matter of editing the right paths with an hex editor like HDX. The only thing is while usually you have to replace the same path 5 to 7 times with BIS sample model you have to do it more than 5300 times!!!huh.gif? I suppose there must be a way to edit them directly in o2 ?

(texture paths of the sample soldier

bimodels\bisoldier\data\us_molle_webbings_co.paa

bimodels\bisoldier\data\us_soldier_equipacu_co.paa

bimodels\bisoldier\data\us_soldieracu_co.paa )

To have the soldier getting out of the sinking sands I found you might use the following menu: Points -> Transform 3D -> Move -> Setting the Y coordinate to 1. So that hopefully he will get his feet firm on the ground . But I suppose we must implement the collisions between the model and its environment.

But how to implement the keyframes and shadows remain a big mystery to me, and the wikipedia/o2 manual doesn't help much.

I suppose animations can be selected by using Tools -> Normalise animations ?

Thanks in advance for your help.

Share this post


Link to post
Share on other sites

Changing the texture paths :

1. Load up o2

2. Select Window --> Texture library

3. While holding ctrl doubleclick on one of the paths and a few faces will get selected

4. Now hold down ALT and single click in the model frame

5. Press E and change the paths under Textur and Materials. In order to change every path simply use select all wink_o.gif

Share this post


Link to post
Share on other sites

I hear you mate - respect to you for getting into it. I tried to have a go at OFP O2 once, trying to do the container turtorial for about 22 hours straight - with no luck getting the textures to stick to the model and not getting it able to show up in game...almost tore my hair out and wanted to throw the computer out the window! banghead.gif

Keep at it man - I'm sure you'll get it working! smile_o.gif

Share this post


Link to post
Share on other sites

As far as the animations go Plasman, I advise you get down to ArmA: Modelling. smile_o.gif

As far as texturing editing goes - use the "mass texture replace" feature in O2 under Tools.

Share this post


Link to post
Share on other sites

Thanks for your help folks. What I intent to do is trying to modify BIS sample soldier model first, trying to delete/add some pouches from/to the soldier for example. Actually it would be great to have access to all BIS characters models in order to “play Frankenstein†(i.e. taking small part of some models to create a new one).

Share this post


Link to post
Share on other sites

Sorry to tread on anyone else's toes by repeating a reply but...

To get you man out of the sinking sand, in no particular order..

* open up the BISoldier model in O2, doesnt matter if the models faces are selected or not. Goto Tools > Mass Texture & Material renaming..

* A menu will appear show all .paa and .rvmat files associated with your model plus the file location.

* at the bottom of this window you will see a box marked Name to rename and a box marked new name

* Click on one of the .paa or .rvmat file names in the list and it should appear in the Name to rename box. In the New name box you then type (or copy and paste) the location of your textures (i.e my change was from BISoldier\data\hhl_22_co.paa to sas_troopers1\data\hhl_22_co.paa)

* Then click the Rename button. Do this with all the files listed in the window:

\data\hhl_22_co.paa

\data\us_hhl.rvmat

\data\us_molle_webbings.rvmat

\data\us_molle_webbings_co.paa

\data\us_soldier_body.rvmat

\data\us_soldier_equip.rvmat

\data\us_soldier_equipacu_co.paa

\data\us_soldieracu_co.paa

Save and close O2 PE

This more or less takes care of getting your textures to appear on your model ingame. Just one more thing to do to get materials looking OK

* open up MatEditor.exe (normally found in Program Files\Bohemia Interactive\Tools\Oxygen 2 Personal Edition\MatEditor.exe)

* goto File> open.. and browse to the data folder of YOUR BISoldier model (the one you have just changed the texture paths for). Only the .rmat files will show.

* choose the top .rvmat file (should be us_hhl.rvmat) this will open up loads of options on the .rvmat file you selected. Move down the stage config option boxes looking at each one in turn and anywhere you see the file name BIModels\BISoldier\data\xxxxxx.rvmat change them to YOUR file location (again, my path was sas_troopers1\data\xxxxxx.rvmat. There are more than one paths to change in each file you open so ensure you inspect all the boxes.

* when you have renamed the .rvmat paths simply save and open up the next one and do the same again. There are only 4 files to open and this should only take 5 minutes max.

That is the texture and material side taken care of. What we will do now is get the model out of that sand smile_o.gif

* Open up 2 instances of O2, in one open up YOUR BISoldier and in the other open up the BISkeleton.p3d.

* In the BISkeleton model, highlight and copy ALL the named selections from the Memory LOD in the Named Selection window (if you are not sure which window that is, press shift+F5 a few times- the window that keeps disappearing and reappearing is the named selection window wink_o.gif )

*then, go to your BISoldier model and paste them into the Named selection window of that Memory LOD.

*Save the model.

all we need now is the config.

* copy and paste the following code into your config file after the class CfgVehicleClasses code ends and before the class CfgVehicles code starts.

NOTE: near the end of the code where I typed class bisoldier: Default replace the BISoldier bit with the name of YOUR model

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgSkeletons

{

class Default;

class Head

{

isDiscrete = 0;

skeletonInherit = "";

skeletonBones[] =

{

"neck","",

"neck1","neck",

"head","neck1",

"lBrow","head",

"mBrow","head",

"rBrow","head",

"lMouth","head",

"mMouth","head",

"rMouth","head",

"eyelids","head",

"LLip","head"

};

};

class OFP2_ManSkeleton

{

isDiscrete = 0;

skeletonInherit = "Head";

skeletonBones[] =

{

"weapon","",

"launcher","",

"Camera","",

"Spine","",

"Spine1","",

"Spine2","",

"Spine3","",

"Pelvis","",

//Left upper side

"LeftShoulder","",

"LeftArm","",

"LeftArmRoll","",

"LeftForeArm","",

"LeftForeArmRoll","",

"LeftHand","",

"LeftHandRing","",

"LeftHandRing1","",

"LeftHandRing2","",

"LeftHandRing3","",

"LeftHandPinky1","",

"LeftHandPinky2","",

"LeftHandPinky3","",

"LeftHandMiddle1","",

"LeftHandMiddle2","",

"LeftHandMiddle3","",

"LeftHandIndex1","",

"LeftHandIndex2","",

"LeftHandIndex3","",

"LeftHandThumb1","",

"LeftHandThumb2","",

"LeftHandThumb3","",

//Right upper side

"RightShoulder","",

"RightArm","",

"RightArmRoll","",

"RightForeArm","",

"RightForeArmRoll","",

"RightHand","",

"RightHandRing","",

"RightHandRing1","",

"RightHandRing2","",

"RightHandRing3","",

"RightHandPinky1","",

"RightHandPinky2","",

"RightHandPinky3","",

"RightHandMiddle1","",

"RightHandMiddle2","",

"RightHandMiddle3","",

"RightHandIndex1","",

"RightHandIndex2","",

"RightHandIndex3","",

"RightHandThumb1","",

"RightHandThumb2","",

"RightHandThumb3","",

//Left lower side

"LeftUpLeg","",

"LeftUpLegRoll","",

"LeftLeg","",

"LeftLegRoll","",

"LeftFoot","",

"LeftToeBase","",

//Right lower side

"RightUpLeg","",

"RightUpLegRoll","",

"RightLeg","",

"RightLegRoll","",

"RightFoot","",

"RightToeBase",""

};

};

class Flag: Default {};

class FlagCarrier: Default

{

skeletonInherit = "Default";

skeletonBones[] =

{

"stozar","",

"vlajka",""

};

};

};

class CfgModels

{

class Default;

class flag_vojak : Default

{

sections[] = {"latka"};

};

class Head: Default

{

skeletonName = "Head";

sections[] =

{

"swap_hhl",

"hide_eyewear"

};

};

class bisoldier: Default

{

skeletonName = "OFP2_ManSkeleton";

sections[] =

{

"swap_hhl","swap_wound_head","swap_wound_body","swap_wound_legL","swap_wound_armL","swap_wound_armR","swap_wound_legL","swap_wound_legR","hide_eyewear","hide_medic","swap_bdu", "hide_teamcolor"

};

};

};

save the config and pack into a pbo. hopefully it works first time If I didn't forget to tell you something.

I have simply explained how I got my model to work in game, The hard work of discovering all this was down to CameronMcDonald, dbobrick and danelectro_dc who provide me with the info notworthy.gif

Share this post


Link to post
Share on other sites

I believe to get it from under ground you need to raise it up in either front or left view right on red line on the x axis. There may be a better way but that is considered ground level in O2

Share this post


Link to post
Share on other sites
I believe to get it from under ground you need to raise it up in either front or left view right on red line on the x axis. There may be a better way but that is considered ground level in O2

if the animation doesnt work, it will be like on that picture, cause the landcontact in the model is in the middle, just to note.

use this one for the cfg file!

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

class CfgSkeletons

{

class tg_soldierskeleton

{

isDiscrete=0;

skeletonInherit="";

skeletonBones[]=

{

"pelvis","",

"spine", "pelvis",

"spine1", "pelvis",

"spine2", "spine1",

"spine3", "spine2",

"neck1", "spine3",

"neck", "spine3",

"head", "neck",

"LLip", "head",

"Eyelids", "head",

"lBrow", "head",

"mBrow", "head",

"rBrow", "head",

"lMouth", "head",

"mMouth", "head",

"rMouth", "head",

"Leftshoulder", "spine3",

"LeftArm", "Leftshoulder",

"Leftarmroll", "LeftArm",

"LeftForearm", "LeftArm",

"Leftforearmroll", "LeftForearm",

"lWrist", "LeftForearm",

"LeftHand", "LeftForearm",

"LeftHandThumb1", "LeftHand",

"LeftHandThumb2", "LeftHandThumb1",

"LeftHandThumb3", "LeftHandThumb2",

"LeftHandIndex1", "LeftHand",

"LeftHandIndex2", "LeftHandIndex1",

"LeftHandIndex3", "LeftHandIndex2",

"LeftHandMiddle1", "LeftHand",

"LeftHandMiddle2", "LeftHandMiddle1",

"LeftHandMiddle3", "LeftHandMiddle2",

"LeftHandRing", "LeftHand",

"LeftHandRing1", "LeftHandRing",

"LeftHandRing2", "LeftHandRing1",

"LeftHandRing3", "LeftHandRing2",

"LeftHandPinky1", "LeftHand",

"LeftHandPinky2", "LeftHandPinky1",

"LeftHandPinky3", "LeftHandPinky2",

"Rightshoulder", "spine3",

"RightArm", "Rightshoulder",

"Rightarmroll", "RightArm",

"RightForearm", "RightArm",

"Rightforearmroll", "RightForearm",

"rWrist", "RightForearm",

"RightHand", "RightForearm",

"RightHandThumb1", "RightHand",

"RightHandThumb2", "RightHandThumb1",

"RightHandThumb3", "RightHandThumb2",

"RightHandIndex1", "RightHand",

"RightHandIndex2", "RightHandIndex1",

"RightHandIndex3", "RightHandIndex2",

"RightHandMiddle1", "RightHand",

"RightHandMiddle2", "RightHandMiddle1",

"RightHandMiddle3", "RightHandMiddle2",

"RightHandRing", "RightHand",

"RightHandRing1", "RightHandRing",

"RightHandRing2", "RightHandRing1",

"RightHandRing3", "RightHandRing2",

"RightHandPinky1", "RightHand",

"RightHandPinky2", "RightHandPinky1",

"RightHandPinky3", "RightHandPinky2",

"lfemur", "pelvis",

"Leftupleg", "pelvis",

"Leftuplegroll", "Leftupleg",

"Leftleg", "Leftupleg",

"Leftlegroll", "Leftleg",

"Leftfoot", "Leftleg",

"Lefttoebase", "Leftfoot",

"rfemur", "pelvis",

"Rightupleg", "pelvis",

"Rightuplegroll", "Rightupleg",

"Rightleg", "Rightupleg",

"Rightlegroll", "Rightleg",

"Rightfoot", "Rightleg",

"Righttoebase", "Rightfoot",

"slot_buttpack", "pelvis",

"slot_backwpnl", "pelvis",

"slot_backwpnr", "pelvis",

"slot_backpack", "pelvis",

"slot_patrolwpn", "pelvis",

"launcher", "",

"weapon", "",

"camera", ""

};

};

};

class CfgMovesMaleSdr;

class tg_soldierMoves : CfgMovesMaleSdr

{

skeletonName = "tg_soldierskeleton";

collisionVertexPattern[] = {"1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "1c", "2c", "3c", "4c", "5c", "6c", "7c", "8c", "1f", "2f", "3f", "4f", "5f", "6f", "7f", "8f"};

collisionGeomCompPattern[] = {1, 3, 6};

};

class CfgModels

{

class tg_Head

{

skeletonName="tg_soldierskeleton";

sections[]={"osobnost","brejle"};

sectionsInherit="";

};

class tg_Person

{

skeletonName="tg_soldierskeleton";

sections[]={"head_injury","body_injury","l_arm_injury","r_arm_injury","l_leg_injury","r_leg_injury","medic","zasleh"};

sectionsInherit="tg_Head";

};

class tg_soldierskeleton:tg_Person{};

class gdi_soldier:tg_Person{};

class gdi_discthrower:tg_Person{};

class gdi_engineer:tg_Person{};

class gdi_medic:tg_Person{};

class gdi_jumpjetinfantry:tg_Person{};

class gdi_ghoststalker:tg_Person{};

class nod_soldier:tg_Person{};

class nod_rakzero:tg_Person{};

class nod_engineer:tg_Person{};

class nod_cyborg:tg_Person{};

class nod_cyborgreaper:tg_Person{};

class nod_commandocyborg:tg_Person{};

class nod_hijacker:tg_Person{};

};

just change my names like tg_xxx or gdi bla, the last things are examples if you got more soldier models.the original cfg of BIS doesnt work. cfgmovesmalesdr is missed.

EDIT:// use this in the cfgvehicles for the soldier:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">moves = "tg_soldierMoves";

Sentry

Share this post


Link to post
Share on other sites

Anyone know of or want to contribute to the community a tutorial of start to finish making/importing models and then getting them into Arma? smile_o.gif Even if it were a cube with one wheel that had textures, normal maps and specular, that would be very helpful and a blueprint for any new modders out there. The key really is atm after all the sharing of knowledge so we all benefit with great mods.

Share this post


Link to post
Share on other sites

Yeh we need one of those a nice PDF tutorial & one for islands. PLEASE!

Thank you to the guy who took 22 hours with the container tutorial, i thought i was a retard doing it in 7hrs.

biggrin_o.gif

Share this post


Link to post
Share on other sites

Anyone got a good setup guide? I cant load the example models... i keep getting a box saying that there's shade errors. a simple could not load and.. no cfg world. sad_o.gif. Im pretty sure ive turded up something

Share this post


Link to post
Share on other sites

Thanks for the O2 advice above posters, and I do hope that tutorials are made by some people smile_o.gif

Share this post


Link to post
Share on other sites

thanks for info, was useful for me.

but there is another problem, in the Options, if the path is data\ where do i put my "addon\data\" folder?

Share this post


Link to post
Share on other sites

I have another question regarding editing texture paths:

What about Normal Map (_nohq) textures?

They do not appear in the Tools > Mass Texture & Material renaming menu.

Thanks in advance for your help folks smile_o.gif

Share this post


Link to post
Share on other sites

.RVMATs point to _nohq textures (normal map textures), thus when you give something an RVMAT, you add the normal map from there. smile_o.gif

Share this post


Link to post
Share on other sites

I proudly present my first o2 made addon : US mutant soldier from outerspace! rofl.gif

h4ic6dj1.jpg

Click to enlarge if you dare...

Just kidding. whistle.gif I followed JB's step by step explanation (thanks again for having taken the time JB smile_o.gif). But I guess I might have missed a thing or two. crazy_o.gif

Any clue why it's not working?

Thanks in advance for your help.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×