Oxygen 2 - Manual: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "[[Arma 3 " to "[[Arma 3: ") |
|||
(33 intermediate revisions by 18 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC|side|1|2}} | |||
= Basic setup = | |||
'''External Viewer:''' C:\program files\bohemia interactive\arma\ArmA.exe -window -buldozer -noland | '''External Viewer:''' C:\program files\bohemia interactive\arma\ArmA.exe -window -buldozer -noland | ||
{| border="1" align="center" cellpadding="3" cellspacing="0" | | |||
! colspan="3" bgcolor="#bbbbff" | Buldozer Startup Options | |||
|- | |||
! bgcolor="#ddddff" | Option | |||
! bgcolor="#ddddff" | Description | |||
|- | |||
| '''-worldCfg=''' | |||
| Force specific world configuration file. For example weather settings. | |||
|- | |||
| '''-name=''' | |||
| Force specific user game settings configuration file. | |||
|- | |||
| '''-addons...''' | |||
| Used to specify a text file which Buldozer will use to load project-specific extras (sunlight, clouds, and sky textures). | |||
|- | |||
| '''-cfg=''' | |||
| Used to specify a basic configuration file (graphics, memory, size and position of viewer window) | |||
|- | |||
| '''-noland''' | |||
| Option to not display any ground. | |||
|- | |||
| '''-window''' | |||
| Option to run viewer in window instead of full screen. | |||
|- | |||
|} | |||
Line 24: | Line 38: | ||
'''Source Safe Database''' - login to Microsoft Visual Studio Source Safe database | '''Source Safe Database''' - login to Microsoft Visual Studio Source Safe database | ||
= Terminology = | |||
'''Point''' – individual point in space | '''Point''' – individual point in space | ||
Line 37: | Line 47: | ||
'''Polygon''' – planar surface with any number of edges | '''Polygon''' – planar surface with any number of edges | ||
'''Triangle''' – polygon | '''Triangle''' – polygon with three edges | ||
'''Quad''' – polygon with four edges | '''Quad''' – polygon with four edges | ||
Line 49: | Line 59: | ||
'''Bone''' – base component of a skeleton used for animation, each bone represents a moving part | '''Bone''' – base component of a skeleton used for animation, each bone represents a moving part | ||
'''Section''' - is created | '''Section''' - is created every time when there's need for the graphics card (GPU) to change parameters. This happens when information about each object, texture and material is read from the CPU or when bones limit is exceeded. The overhead for transmitting instructions between CPU and GPU then slows down the performance of scene-drawing, which could normally draw hundreds of polygons or textures. | ||
The time it takes to render a scene depend largely on these factors: | The time it takes to render a scene depend largely on these factors: | ||
Line 59: | Line 69: | ||
*number of sections in the scene | *number of sections in the scene | ||
= Viewport Navigation = | |||
The origin point for coordinates (xyz = 0,0,0) is marked by the intersection of the red grid lines. Gridlines are spaced at 1m and all units in O2 are measured in meters. | The origin point for coordinates (xyz = 0,0,0) is marked by the intersection of the red grid lines. Gridlines are spaced at 1m and all units in O2 are measured in meters. | ||
Line 85: | Line 91: | ||
==Buldozer navigation == | |||
pan camera '''W, E, S, arrows''' (same as Lmouse+drag) | pan camera '''W, E, S, arrows''' (same as Lmouse+drag) | ||
Line 103: | Line 106: | ||
'''[ ]''' - decrease/increase speed of RTM animations | '''[ ]''' - decrease/increase speed of RTM animations | ||
'''SHIFT [ ]''' – set animation phase | '''SHIFT []''' – set animation phase | ||
'''Enter / Mousewheel''' cycle through animations defined in model.cfg | '''Enter / Mousewheel''' cycle through animations defined in model.cfg | ||
Line 115: | Line 118: | ||
toggle display of textures '''RWIN+X''' | toggle display of textures '''RWIN+X''' | ||
== Buldozer Menu == | |||
'''Start/Restart''' - launch or restart Buldozer viewer | '''Start/Restart''' - launch or restart Buldozer viewer | ||
Line 130: | Line 130: | ||
'''Other > Refresh Viewer''' - Refresh Buldozer | '''Other > Refresh Viewer''' - Refresh Buldozer | ||
'''Hide Textures''' - Toggle display of textures | '''Hide Textures''' - Toggle display of textures | ||
Line 161: | Line 160: | ||
'''Selection Masking > Change Masking Material''' - Set path to a material to use for masking | '''Selection Masking > Change Masking Material''' - Set path to a material to use for masking | ||
'''Ground object...''' – Setup an object to use as a default ground surface (can be useful for viewing shadows cast by objects) | '''Ground object...''' – Setup an object to use as a default ground surface (can be useful for viewing shadows cast by objects) | ||
Line 178: | Line 176: | ||
= Pin Tool = | |||
The pin tool has many uses but basically is a moveable reference point, which can be activated and deactivated. | The pin tool has many uses but basically is a moveable reference point, which can be activated and deactivated. | ||
Line 197: | Line 192: | ||
= Creating and selecting objects = | |||
At the bottom of the O2 window there is a status bar which displays total vertices and faces and selected vertices and faces. | At the bottom of the O2 window there is a status bar which displays total vertices and faces and selected vertices and faces. | ||
Line 209: | Line 201: | ||
'''Ctrl+LMB''' adds to selection | '''Ctrl+LMB''' adds to selection | ||
'''Ctrl+Shift+LMB''' | '''Ctrl+Shift+LMB''' subtracts from selection | ||
'''Delete''' - deletes selection | '''Delete''' - deletes selection | ||
Line 227: | Line 219: | ||
'''CTRL+A''' - Select all | '''CTRL+A''' - Select all | ||
= Editing = | |||
The most important selection modes are available via toolbar icons | The most important selection modes are available via toolbar icons | ||
Line 242: | Line 231: | ||
'''Z''' – zoom mode | '''Z''' – zoom mode | ||
'''RMB''' drag to move selection | '''RMB''' drag to move selection | ||
Line 269: | Line 257: | ||
For boolean operations, use '''Menu: Structure > Carve'''. It will use selected objects to create | For boolean operations, use '''Menu: Structure > Carve'''. It will use selected objects to create breaks in the unselected objects. It's not suitable for very complex shapes, and even with basic shapes it might generate some unnecessary geometry that should be manually cleaned. | ||
== Local Axis == | |||
For manipulation with character model selection (bones) a feature for '''local axis''' was introduced. | |||
Local axis can be enabled under the Points Menu > Transform 3D > Show Local Axis. | |||
You can define local axis for each selection by using a triangle that is named in work selection together with the mesh (work selections start with minus letter) | |||
You can define local axis for each selection by a triangle that is named in work selection together with the mesh (work selections start with minus letter) | |||
- hlava | - hlava | ||
Then after you enable local axis mode in menu, you can manipulate with the mesh in work selection using standard editing tools. | |||
How to define | How to define skeleton with local axes and hierarchy: | ||
- select proxy defining axis | - select proxy defining axis | ||
- menu '''from proxy''' will setup PIN | - menu '''from proxy''' will setup PIN | ||
- select all faces in hierarchy that will be | - select all faces in hierarchy that will be affected by this axis | ||
- menu '''Selection from local axis''' will make a work selection (marked by "-" ) | - menu '''Selection from local axis''' will make a work selection (marked by "-" ) | ||
- make a named selection with the proxy and a bone | - make a named selection with the proxy and a bone | ||
== Hiding and Locking Selections == | |||
'''CTRL+H''' hide selection | '''CTRL+H''' hide selection | ||
Line 307: | Line 291: | ||
== Measuring == | |||
Measurements can be made using '''Shift+F11''' to measure between the pin and the cursor. | Measurements can be made using '''Shift+F11''' to measure between the pin and the cursor. | ||
= Sharp and Smooth Edges = | |||
Edges in O2 can be either sharp or smooth. When selected, smooth edges are shown with bright red lines and sharp edges are shown with dark red lines and heavier lineweight. All newly created objects have smooth edges, which means the lighting is calculated using {{Link|https://en.wikipedia.org/wiki/Gouraud_shading|gouraud shading}}. A sharp edge is like a crease that prevents light from being averaged between adjacent faces. | |||
All face lighting is calculated with {{Link|https://en.wikipedia.org/wiki/Surface_normal|surface normals}}. Normals can be displayed in O2 using '''File/Options/view normals=ON'''. A face will have a normal at each vertex. Sharp edges will have normals that are perpendicular to the faces they represent. Smooth edges will have normals that are positioned at the average angle between the faces they represent. | |||
All face lighting is calculated with | |||
'''U''' – make selected edges sharp | '''U''' – make selected edges sharp | ||
Line 332: | Line 310: | ||
'''F5''' – recalculate normals | '''F5''' – recalculate normals | ||
After rotating objects, it | After rotating objects, it is usually necessary to '''recalculate normals''' by hitting '''F5'''. If there is some reason to prevent recalculating normals, they can be locked from the menu '''Points > Lock Normals''' after which they will appear pink instead of blue. | ||
= Import / Export = | |||
It's possible to import files of type 3DS, OBJ. | It's possible to import files of type 3DS, OBJ. | ||
== Import from *.3DS == | |||
*specify desired selections to import | *specify desired selections to import | ||
Line 358: | Line 327: | ||
*set the destination LODs for all MAX selections | *set the destination LODs for all MAX selections | ||
= Surfaces = | |||
Every face that will use textures/materials has to be mapped. UV map defines texture proportions and resolution. You can check mapping with menu feature '''structure->check faces'''. | Every face that will use textures/materials has to be mapped. UV map defines texture proportions and resolution. You can check mapping with menu feature '''structure->check faces'''. | ||
Every face can have texture (diffuse map) and material (RVMAT) files attached. Path to | Every face can have texture (diffuse map) and material (RVMAT) files attached. Path to these files is defined in menu '''face properties (E)''' You can later see it also in Material library or in Mass renaming tool. | ||
You should wisely decide how many files you have to use, because you define number of sections for drawing the model on graphics card. | You should wisely decide how many files you have to use, because you define number of sections for drawing the model on graphics card. | ||
== Texture Mapping == | |||
{| border="1" align="center" cellpadding="3" cellspacing="0" | | {| border="1" align="center" cellpadding="3" cellspacing="0" | | ||
! colspan="3" bgcolor="#bbbbff" | Texture Mapping | ! colspan="3" bgcolor="#bbbbff" | Texture Mapping | ||
Line 389: | Line 352: | ||
|- | |- | ||
| '''M''' | | '''M''' | ||
| | | Gizmo“ mapping ('''Surfaces->Gizmo Mapping''') – a separate menu starts with simple gizmo features, the results can be interactively shown in Buldozer. | ||
|- | |- | ||
| '''E - Face Properties''' | | '''E - Face Properties''' | ||
Line 407: | Line 370: | ||
|- | |- | ||
| '''CTRL + LMB''' | | '''CTRL + LMB''' | ||
| Outside the rectangle – Rotation Mode (Note: Beware of | | Outside the rectangle – Rotation Mode (Note: Beware of non-planar mapping). | ||
|- | |- | ||
| '''CTRL + LMB''' | | '''CTRL + LMB''' | ||
Line 424: | Line 387: | ||
=== Neighbour Mapping === | |||
Neighbour mapping is mapping that uses information about mapping from neighbour faces of selected faces. UV from neighbour are copied to unmapped selected faces. Function works repeatedly, Until there are unmapped faces. | |||
Neighbour mapping is mapping that uses | |||
To use this function, make selection of area, that contains some ummapped faces (faces which have UV zeroed). There must be enough neighbour faces | To use this function, make selection of area, that contains some ummapped faces (faces which have UV zeroed). There must be enough neighbour faces containing some mappings. | ||
Function can be also used as variation of "unfold" or "unwrap" function, because it will try to calculate unknown UV by neighbour if there is | Function can be also used as variation of "unfold" or "unwrap" function, because it will try to calculate unknown UV by neighbour if there is not enough mapped neighbour faces, but at least one, which is used to calculate UV transform. | ||
To use function for "unwrap", use following steps | To use function for "unwrap", use following steps | ||
*1) remove mapping on area | *1) remove mapping on area | ||
*2) choose one face from area to map (representative) | *2) choose one face from area to map (representative) | ||
*3) Map this face in UV editor and | *3) Map this face in UV editor and un-deform this face | ||
*4) select area to map | *4) select area to map | ||
*5) use neighbour mapping. | *5) use neighbour mapping. | ||
Note: function works best with triangles. Results of quads can be | Note: function works best with triangles. Results of quads can be totally unusable. | ||
== UV unwrap == | |||
To spare amount of textures modellers usually unwrap surface of a model to a planar projection and compose textures in this layout. | |||
To spare amount of textures | |||
In O2 you can do it with help of UV editor. | In O2 you can do it with help of UV editor. | ||
It has simple editing tools for vertex and face manipulation (move, scale, merge, snap). It also can show selected faces in UV set and back. It also | It has simple editing tools for vertex and face manipulation (move, scale, merge, snap). It also can show selected faces in UV set and back. It also allows you to simply make new UV mapping by transforming any face in 2D projection of the editor. [[Oxygen 2 - UV Editor|UV Editor]] | ||
== Resources Library == | |||
This multi functional library can be used not only for materials. | This multi functional library can be used not only for materials. | ||
You can explore all files linked to the model surfaces. Select faces assigned to textures/materials. Start MATplugin for editing materials. Rename or Drag and Drop files from the list. Add proxies from file structure on your disk. It shows some information about section count too. | You can explore all files linked to the model surfaces. Select faces assigned to textures/materials. Start MATplugin for editing materials. Rename or Drag and Drop files from the list. Add proxies from file structure on your disk. It shows some information about section count too. | ||
Doubleclick | |||
1) nothing selected – opens the file in associated program/plugin | 1) nothing selected – opens the file in associated program/plugin | ||
2) with faces selected, applies texture/material on selected faces. | 2) with faces selected, applies texture/material on selected faces. | ||
Line 479: | Line 433: | ||
DragAndDrop | DragAndDrop | ||
1) texture/material – same as Ctrl+Shift+Doubleclick – changes texture on selected faces | 1) texture/material – same as Ctrl+Shift+Doubleclick – changes texture on selected faces | ||
2) P3D | 2) P3D dragged in viewport – makes Proxy | ||
3) P3D | 3) P3D dragged on menu – opens the file | ||
Rename works only for pathnames, usable in LODs (same as mass renaming) | Rename works only for pathnames, usable in LODs (same as mass renaming) | ||
== MAT plugin == | |||
You need MAT.dll in O2. Useful is also subfolder TEMPLATES from VCS. | |||
You need MAT.dll in O2. | |||
Read more about materials in [[ArmA:_RVMAT]] | Read more about materials in [[ArmA:_RVMAT]] | ||
You can use templates stored in O2 sub folder | You can use templates stored in O2 sub folder | ||
You can work | You can work with primitives and switch view from model to primitive. You can select simple color for the primitive | ||
RVMAT file content editing. | RVMAT file content editing. | ||
Line 500: | Line 451: | ||
You can link various values together. Various types of color schemes are available. | You can link various values together. Various types of color schemes are available. | ||
You can pick any color on your monitor with the | You can pick any color on your monitor with the dragged dropper icon | ||
Color field shows actual | Color field shows actual settings, can be used to open color selection palette | ||
If you use material templates, | If you use material templates, then stages are partially locked. | ||
Procedural textures can be easily edited in submenu | Procedural textures can be easily edited in submenu | ||
Line 511: | Line 462: | ||
Copy / Paste v O2 (menu or special hotkey) can be applied on colors and stage settings | Copy / Paste v O2 (menu or special hotkey) can be applied on colors and stage settings | ||
Warning : standard Ctrl+C a Ctrl+V works in actual window affected by actual “focus” | |||
Use menu Edit -> Copy / Paste or | Use menu Edit -> Copy / Paste or hotkey Ctrl+Shift+C and Ctrl+Shift+V. For correct results. | ||
Copy of | Copy of color/stage settings: | ||
1) LMB on any small window with color value number or texture name | 1) LMB on any small window with color value number or texture name | ||
2) use menu Edit -> Copy, or Ctrl+Shift+C | 2) use menu Edit -> Copy, or Ctrl+Shift+C | ||
Line 520: | Line 471: | ||
4) use menu Edit -> Paste, or Ctrl+Shift+V | 4) use menu Edit -> Paste, or Ctrl+Shift+V | ||
= Named Selections = | |||
(Shift+F5) | (Shift+F5) | ||
O2 is not as | O2 is not as powerful as other modelling SW in creating and editing meshes, its power lies in named selections, properties and LOD layers. | ||
* selections for each LOD can be created, and edited (rename, redefine) using context menu | * selections for each LOD can be created, and edited (rename, redefine) using context menu | ||
Line 531: | Line 479: | ||
* selections that start with “-” (minus) or “.” (dot) are not binarized – they are used for work purposes in BIS tools O2/Visitor | * selections that start with “-” (minus) or “.” (dot) are not binarized – they are used for work purposes in BIS tools O2/Visitor | ||
* each model class has | * each model class has typical selections | ||
* | * WARNING : animated selections should have a maximum name length of 32 letters, these selections should be in all animated LODs | ||
* Weights assignment is used for skinning animated content. It is often done in external animation tool and imported in O2 | * Weights assignment is used for skinning animated content. It is often done in external animation tool and imported in O2 | ||
== Proxy objects == | |||
Instead of copy and paste model parts into various models you can use proxy object as a reference. Each proxy is another section of model. Proxy object is a simple face with 3 vertices that represents the inserted model. The face should have standard named selection. You can easily use O2 tool '''Create->Proxy''' and fill the path of the inserted model there (the path syntax should start with the backslash and end without a .p3d) | |||
Instead of copy and paste model parts into various models you can use proxy object as a reference. Each proxy is another section of model. Proxy object is a simple face with 3 vertices | |||
\CA\wheeled\zasleh1_proxy | \CA\wheeled\zasleh1_proxy | ||
The inserted model is then visible in Buldozer. Default proxy face is oriented the same as the proxy model. Position and orientation of the proxy face will set new position of the inserted object. Proxy model must have geometry property '''autocenter = 0''' otherwise 0.0.0 axis of the inserted model will be | The inserted model is then visible in Buldozer. Default proxy face is oriented the same as the proxy model. Position and orientation of the proxy face will set new position of the inserted object. Proxy model must have geometry property '''autocenter = 0''' otherwise 0.0.0 axis of the inserted model will not be correct. | ||
There should be | There should also then be added a note in the configuration file that will set the simulation class and the path of the proxy model. | ||
If you want to decompose model into proxy parts you can use a named selection popup menu. If you create a selection and right click on it, you can export selection to proxy. If you have the same selection in other lods you can export them all at once too. There is also reverse function for importing proxy model from the path defined in proxy selection. | If you want to decompose model into proxy parts you can use a named selection popup menu. If you create a selection and right click on it, you can export selection to proxy. If you have the same selection in other lods you can export them all at once too. There is also reverse function for importing proxy model from the path defined in proxy selection. | ||
Line 555: | Line 500: | ||
= Properties = | |||
There are various types of properties (face, vertex, model in geometry and also some in resolution LODs) | There are various types of properties (face, vertex, model in geometry and also some in resolution LODs) | ||
== | == Named properties == | ||
Dedicated pages: | |||
* [[Arma 3: Named Properties|Arma 3]] | |||
* [[Named_Properties|OFP]] | |||
Properties | |||
== FACE property == | |||
'''E''' | '''E''' | ||
You can assign textures and materials, check UV coords. and create selections by any face property | You can assign textures and materials, check UV coords. and create selections by any face property | ||
User values are | User values are useful for additional features defined in configs. | ||
204 – 208 used for reducing ambient light inside vehicles | 204 – 208 used for reducing ambient light inside vehicles | ||
50 - 60 used for destruction burn of surfaces | 50 - 60 used for destruction burn of surfaces | ||
'''Lighting/Shadows''' > not used | '''Lighting/Shadows''' > not used any more | ||
'''Enable shadow''' should be | '''Enable shadow''' should be defaulted to on, shadow casting can be disabled by named property in LOD. | ||
== Vertex Properties == | |||
'''Shift+E''' | '''Shift+E''' | ||
Lighting properties like "'''Always in Shadow'''" should no longer be used, as you can do the same thing with materials, but better (more generic concept). Most important reason is that lighting properties are defined | Lighting properties like "'''Always in Shadow'''" should no longer be used, as you can do the same thing with materials, but better (more generic concept). Most important reason is that lighting properties are defined now per-vertex, but lighting is done per-section (it was per-vertex with SW TL which is obsolete now). The conversion of point lighting flags to a section based one is not straightforward and may introduce many artifacts. | ||
Line 747: | Line 533: | ||
'''Fully lighted''' = diffuse {0,0,0,1} + forcedDiffuse {1,1,1,1} | '''Fully lighted''' = diffuse {0,0,0,1} + forcedDiffuse {1,1,1,1} | ||
Warning! ambient, diffuse and forced diffuse are additional values that combined together result in pixel color | |||
Shadows are cast only in limited | Shadows are cast only in limited area around observer. | ||
If you want some surfaces (building interiors) kept | If you want some surfaces (building interiors) kept always in shadow, you should add this line to RVMAT | ||
renderFlags[] = {AlwaysInShadow}; | renderFlags[] = {AlwaysInShadow}; | ||
= Animations = | |||
You can do simple animations in O2 by creating and editing keyframes. | You can do simple animations in O2 by creating and editing keyframes. | ||
Animation window shows key frames that can be added from context menu. | Animation window shows key frames that can be added from context menu. | ||
Playback speed can be adjusted in Buldozer with [ ] | Playback speed can be adjusted in Buldozer with [] | ||
If you unfold mesh surface to UV map or you want to animate rigid body, you simply create new | If you unfold mesh surface to UV map or you want to animate rigid body, you simply create a new keyframe and move the faces in desired position. After the animation is done, it is exported in an *.RTM file. | ||
You select BindPose frame, select ExportMatrices from context menu and define root selection. | You select BindPose frame, select ExportMatrices from context menu and define root selection. | ||
If some vertices | If some vertices are in more than one selection (character animation, rigid body hierarchy), you can define weights for each selection. | ||
== Animated character optimize == | |||
{| border="1" align="center" cellpadding="3" cellspacing="0" | | {| border="1" align="center" cellpadding="3" cellspacing="0" | | ||
! colspan="3" bgcolor="#bbbbff" | Properties | ! colspan="3" bgcolor="#bbbbff" | Properties | ||
Line 795: | Line 575: | ||
| Export RTM file. | | Export RTM file. | ||
|- | |- | ||
| '''Aiming | | '''Aiming Optimisation''' | ||
| On imported matrices (RTM) – modify specific selections | | On imported matrices (RTM) – modify specific selections | ||
|- | |- | ||
Line 803: | Line 583: | ||
|} | |} | ||
{{ | {{Feature|important| Note If you do not have enough smooth transitions between frames, you can try '''Soften Selected''' (uses interpolation)}} | ||
== RTM playback == | |||
select from animated context menu "From Matrices" and open RTM file. | select from animated context menu "From Matrices" and open RTM file. | ||
* Correct character animation has step and xstep properties | * Correct character animation has step and xstep properties | ||
* looping animation | * looping animation ANDs with key frame 1.000 | ||
== User animations == | |||
[[File:O2 Animation.jpg|thumb|200px|right|Animation Preview]] | |||
Another chance how to animate content ingame are USER ANIMS defined in model config. Engine can move with selection by HIDING, ROTATION or TRANSLATION. Part of model that will move must be in named selection also axis points and handles must be in selections. The rest is defined in model config. (anim.type, selection names, distance, angle...) | Another chance how to animate content ingame are USER ANIMS defined in model config. Engine can move with selection by HIDING, ROTATION or TRANSLATION. Part of model that will move must be in named selection also axis points and handles must be in selections. The rest is defined in model config. (anim.type, selection names, distance, angle...) | ||
There are two types of animation - | There are two types of animation - discrete and continuous. Discrete animations use named selections with all vertices with 100%weight. In case you want to use continuous animation (skinned surfaces) you cannot have one animated part as a sub-selection of another (skeleton hierarchy, for example gun/turret/vehicle) | ||
To preview an animation, put the focus on the Bulldozer window, press either <Enter>, <Backspace> or the mouse wheel to select the desired animation source (indicated in the upper left corner), and then rotate the mouse wheel to step through the animation. | |||
LOD means LEVEL-OF-DETAIL, so | = LODs = | ||
LOD means LEVEL-OF-DETAIL, so basically LOD layers in O2 represent various model resolutions. Some models are not visible, and are used for specific engine functions. | |||
You can create and edit LODs using context menu. Renaming is done in properties... | You can create and edit LODs using context menu. Renaming is done in properties... | ||
== Resolution LODs == | |||
LODs that are named by numbers are used for visual resolution versions of model. The lower number of LOD the more detailed the LOD should be. Usually you make the best resolution and then after the textures are mapped, degrade the resolution. (half amount of faces for each LOD) | |||
LODs that are named by numbers are used for visual resolution versions of model. The lower number of LOD the more | |||
You can enable view of previous LOD in OPTIONS menu. ArmA Engine | You can enable view of previous LOD in OPTIONS menu. ArmA Engine selects the resolution LODs itself. The artist should only focus on the model shape and degradation balance. | ||
'''VIEW Cargo/Commander/Gunner/Pilot''' | '''VIEW Cargo/Commander/Gunner/Pilot''' | ||
These are also resolution LODs that are used for first person view. These LODs should have better resolution than 1.LOD, but contain only visible parts. | |||
== Geometry LODs == | |||
Invisible LODs for engine calculation. Textures are used for special surface characteristics. | Invisible LODs for engine calculation. Textures are used for special surface characteristics. | ||
Each Geometry LOD must | Each Geometry LOD must contain named selections of all components. If there are any animated parts, they should keep the names as in other LODs. You can automatically select components by menu '''Structure->Topology->Find Components'''. | ||
Geometry components must be closed convex objects | Geometry components must be closed convex objects | ||
Line 860: | Line 627: | ||
some help tools are in menu '''structure->convexity''' | some help tools are in menu '''structure->convexity''' | ||
'''Convexity->Find non-convex''' and “find non- | '''Convexity->Find non-convex''' and “find non-convexities” - checking tools | ||
'''Component Convex Hull''' will try to decompose object in convex components | '''Component Convex Hull''' will try to decompose object in convex components | ||
'''Convex Hull''' makes one convex object | '''Convex Hull''' makes one convex object | ||
Line 866: | Line 633: | ||
=== Collision Geometry === | |||
Used for physical collision detection Must contain also information about object MASS (gray boxes) and center of gravity (blue cross). | Used for physical collision detection Must contain also information about object MASS (gray boxes) and center of gravity (blue cross). | ||
The model should be very simple, defining the basic model shape. Thinner parts than 15cm cannot collide in faster speeds. Better if the geometry is larger than model shape. | The model should be very simple, defining the basic model shape. Thinner parts than 15cm cannot collide in faster speeds. Better if the geometry is larger than the model shape. | ||
CTRL+A select all. Use MASS dialog to assign total mass. | CTRL+A select all. Use MASS dialog to assign total mass. If you want to move the center of gravity, select vertices and change their individual mass. Keep an eye on the “total mass” checkbox. | ||
It is not a problem, if some components do not have any mass. The mass of whole model is used for collision, gravity and momentum. BUT, the component will not be simulated, if | It is not a problem, if some components do not have any mass. The mass of the whole model is used for collision, gravity and momentum. BUT, the component will not be simulated, if it has no named selection set. | ||
1 mass = 1kg | 1 mass = 1kg | ||
=== FIRE Geometry === | |||
More detailed than collisions. Used for fire detection. Surfaces modeled in this LOD do STOP any bullet (any caliber). Only special material can be used for surface that can be shot through, but not thrown grenades. (windows) | More detailed than collisions. Used for fire detection. Surfaces modeled in this LOD do STOP any bullet (any caliber). Only special material can be used for surface that can be shot through, but not thrown grenades. (windows) | ||
If the fire geometry is missing, view geometry will be used intsead (or collision in worst case). So if you want model that does not stop bullets, make blank FireG LOD | If the fire geometry is missing, view geometry will be used intsead (or collision in worst case). So if you want model that does not stop bullets, make blank FireG LOD | ||
'''View cargo/commander/gunner/pilot''' - Fire Geometry – | '''View cargo/commander/gunner/pilot''' - Fire Geometry – Actually useless LODs, till Engine enables soldiers fire to from vehicle cargo... | ||
=== VIEW Geometry === | |||
This LOD is used for AI view occlusion – what can the AI soldier see. It is also used for occlusion detection for scene drawing optimisation. | |||
WARNING: If there is no component in view or fire geometry, players cursor will be not able to activate action menu (for example climb ladder) | |||
There is an example of tree VIEW geometry. | There is an example of tree VIEW geometry. | ||
Line 907: | Line 665: | ||
== ShadowVolume LOD == | |||
Used for HW shadow casting. The shadows are cast from this LOD on resolution LOD surfaces. The shadow volume area is made by extruding the lit faces of the shadow LOD (faces that have normals oriented towards the light) in the light direction. | Used for HW shadow casting. The shadows are cast from this LOD on resolution LOD surfaces. The shadow volume area is made by extruding the lit faces of the shadow LOD (faces that have normals oriented towards the light) in the light direction. | ||
LOD should be as simple as possible, to represent the 1st LOD shape and all its important parts. The shape should not exceed 1st LOD volume. Maximum polycount for shadowVolume is | LOD should be as simple as possible, to represent the 1st LOD shape and all its important parts. The shape should not exceed 1st LOD volume. Maximum polycount for shadowVolume is 1000 triangles. | ||
All components must be Closed (each edge must have 2 neighbor polygons) – check with '''Structure->Topology->findNonClosed'''. Normals can be oriented both ways, depending on desired purpose of the specific shadow LOD surface/component. | All components must be Closed (each edge must have 2 neighbor polygons) – check with '''Structure->Topology->findNonClosed'''. Normals can be oriented both ways, depending on desired purpose of the specific shadow LOD surface/component. This lod should not contain any texture or material. | ||
All faces must be Triangulated (each polygon must have 3 edges) - use menu '''Structure->Triangulate''' | All faces must be Triangulated (each polygon must have 3 edges) - use menu '''Structure->Triangulate''' | ||
Line 921: | Line 676: | ||
All edges must be sharp – menu '''Surfaces->SharpEdge (U)''' | All edges must be sharp – menu '''Surfaces->SharpEdge (U)''' | ||
LOD must be nammed '''ShadowVolume 0.000''' ( | LOD must be nammed '''ShadowVolume 0.000''','''ShadowVolume 10.000''' or '''ShadowVolume 1000.000''' | ||
* Shadow volume 0 is the main stencil shadow. It shuould have less than 1000 triangles. | |||
* Shadow Volume 10 is optimised stencil shadow LOD with as few triangles as possible. | |||
* Shadow 1000 is special for trees, it uses alpha transparent textures to be calculated using GPU shadow buffer. (so this lod can have link on texture) | |||
All faces must have property "Enable shadow", otherwise they will not cast shadow - menu Face properties (E). | All faces must have property "Enable shadow", otherwise they will not cast shadow - menu Face properties (E). | ||
Line 927: | Line 688: | ||
If the Volume LOD is missing, HW cannot cast shadows and there is no other alternative, engine will use resolution LODs. OFP cannot cast too complex shadows, so every resolution LOD that contains more than 1000 faces, should have property '''LODNoShadow=1''' to disable CPU shadows. (bugs reported after binarization) | If the Volume LOD is missing, HW cannot cast shadows and there is no other alternative, engine will use resolution LODs. OFP cannot cast too complex shadows, so every resolution LOD that contains more than 1000 faces, should have property '''LODNoShadow=1''' to disable CPU shadows. (bugs reported after binarization) | ||
'''ShadowVolume - View Cargo, ShadowVolume - View Pilot, ShadowVolume - View Gunner''' - special shadow for view | '''ShadowVolume - View Cargo, ShadowVolume - View Pilot, ShadowVolume - View Gunner''' - special shadow for static view resolution LODs. You have to enable them also in config: | ||
viewDriverShadow = true; | viewDriverShadow = true; | ||
viewGunnerShadow = true; | viewGunnerShadow = true; | ||
viewCargoShadow = true; | viewCargoShadow = true; | ||
Virtual Reality engine can also cast shadows using '''SHADOW BUFFER'''. This is controlled by model property sbsource and prefershadowvolume in geometry LOD. | |||
For trees and vegetation there can also be used so called '''HYBRID SHADOW'''. This is controlled by model property Shadow=hybrid in Geometry LOD | |||
Those shadows are cast on all models except the model itself. Trees can use special shaders for leaves that simulates self shadowing. | |||
== HitPoints == | |||
Modelled parts (selections) in this LOD represent valuable parts of the model that can be hit and affect the models in-game features. (class configuration) | |||
== LandContact == | |||
Contains '''only vertices''' that represent contact with land. It is used mainly for vehicles and some characters. You can use it for structures too, in case you like to transform them by the surface. Wrong positioned points can cause “levitation” or “submerge the model under ground” | |||
Contains '''only vertices' | == Memory == | ||
Contains '''only vertices'''. Each vertex should have specific (class based) named selection. This LOD is used for defining important points and axes for model configuration. Selection names also correspond to animated model parts. | |||
== Paths == | |||
Important LOD for AI path finding. AI can find its way through objects (such as buildings) Specific named selections are based on class definition. | Important LOD for AI path finding. AI can find its way through objects (such as buildings) Specific named selections are based on class definition. | ||
Line 968: | Line 716: | ||
==== | == Roadway == | ||
This LOD allows characters to walk on the other models. (walk upstairs, stay in the 2nd floor) | This LOD allows characters to walk on the other models. (walk upstairs, stay in the 2nd floor) | ||
Model | Model is made of polygons (normals are useless here) Textures are used for material sound definition (+config definition) | ||
== Edit LODs == | |||
Working LOD for editing. It is removed during binarization. (UV set unfold, additional shadow volume levels...) | |||
= Automation = | |||
You can record MACROS and launch SCRIPTS | You can record MACROS and launch SCRIPTS | ||
== Macro == | |||
Objektiv2 knows Macros. It is "easy to use" alternative of the scripts (eh, okay, scripts can do more things than the macros). | Objektiv2 knows Macros. It is "easy to use" alternative of the scripts (eh, okay, scripts can do more things than the macros). | ||
To create macro, use '''Automation->Macro->Record Macro''' or simply click on red button on main toolbar. | To create macro, use '''Automation->Macro->Record Macro''' or simply click on red button on main toolbar. | ||
When recording is active, O2 captures all mouse or keyboard actions. If you want to stop recording, deactivate the red button. | |||
To playback the captured macro, use button with blue arrow (Play). | To playback the captured macro, use button with blue arrow (Play). | ||
Line 1,015: | Line 752: | ||
* Keyboard actions are recorded better than mouse. During recording use keyboard when it is possible. Don't record "free hand" actions, such as transformations. Instead, use transform dialogs. | * Keyboard actions are recorded better than mouse. During recording use keyboard when it is possible. Don't record "free hand" actions, such as transformations. Instead, use transform dialogs. | ||
* O2 Macro recorder cannot | * O2 Macro recorder cannot record actions that are invoked "when mouse cursor stays on item for a while". This is case of menus. Open all submenus by clicking, or use arrows keys. | ||
* In File Open Dialog, | * In File Open Dialog, activate the item by the Enter key (not mouse). Doubleclicks can cause problem sometimes | ||
* During playback, you cannot control the mouse and the keyboard. Also, you cannot work with other applications. To interrupt the playback, use Alt+TAB or Ctrl+Alt+Del (and Cancel). | * During playback, you cannot control the mouse and the keyboard. Also, you cannot work with other applications. To interrupt the playback, use Alt+TAB or Ctrl+Alt+Del (and Cancel). | ||
Line 1,024: | Line 761: | ||
== List of Shortcuts == | |||
'''Keys''' | '''Keys''' | ||
Line 1,081: | Line 816: | ||
'''u''' Sharp edges | '''u''' Sharp edges | ||
'''v''' | '''v''' Vertex selection mode | ||
'''w''' reverse: inverse normals | '''w''' reverse: inverse normals | ||
Line 1,090: | Line 825: | ||
'''z''' Bound to 2 functions, using may cause problems: | '''z''' Bound to 2 functions, using may cause problems: | ||
In top/front/side view: Zoom mode | In top/front/side view: Zoom mode | ||
In 3D preview: Lock Z movement: selected objects can only be moved in Z direction. | In 3D preview: Lock Z movement: selected objects can only be moved in Z direction. | ||
Line 1,115: | Line 852: | ||
'''c''' Use Pin toggle: all operations now act at the position of the pin. | '''c''' Use Pin toggle: all operations now act at the position of the pin. | ||
press | press “Insert” to create a new vertex at the position of the pin. | ||
'''e''' Bring up | '''e''' Bring up Vertex Properties dialog | ||
'''d''' Weld selected vertices (merge selected vertices to a single vertex) | '''d''' Weld selected vertices (merge selected vertices to a single vertex) | ||
Line 1,201: | Line 938: | ||
'''l''' Bound to 2 functions, using may cause problems | '''l''' Bound to 2 functions, using may cause problems | ||
Toggle LOD window | Toggle LOD window | ||
''Does not work: Toggle Named selections window'' | ''Does not work: Toggle Named selections window'' | ||
Line 1,236: | Line 974: | ||
{{GameCategory|arma1|Official Tools}} | |||
Latest revision as of 10:38, 6 May 2024
Basic setup
External Viewer: C:\program files\bohemia interactive\arma\ArmA.exe -window -buldozer -noland
Buldozer Startup Options | ||
---|---|---|
Option | Description | |
-worldCfg= | Force specific world configuration file. For example weather settings. | |
-name= | Force specific user game settings configuration file. | |
-addons... | Used to specify a text file which Buldozer will use to load project-specific extras (sunlight, clouds, and sky textures). | |
-cfg= | Used to specify a basic configuration file (graphics, memory, size and position of viewer window) | |
-noland | Option to not display any ground. | |
-window | Option to run viewer in window instead of full screen. |
DLL Folder - path to O2 installation
Path for textures - path to work disk (usually P:\)
Source Safe Database - login to Microsoft Visual Studio Source Safe database
Terminology
Point – individual point in space
Vertex – point of intersection of two or more edges
Edge - connection between two vertices
Polygon – planar surface with any number of edges
Triangle – polygon with three edges
Quad – polygon with four edges
Face – in O2 faces can be triangles or quads
Normal - a normal is a line which is perpendicular to the plane of a polygon. In O2 it appears as a blue line at each vertex.
Skeleton - simplified representation of a model that has moving parts
Bone – base component of a skeleton used for animation, each bone represents a moving part
Section - is created every time when there's need for the graphics card (GPU) to change parameters. This happens when information about each object, texture and material is read from the CPU or when bones limit is exceeded. The overhead for transmitting instructions between CPU and GPU then slows down the performance of scene-drawing, which could normally draw hundreds of polygons or textures.
The time it takes to render a scene depend largely on these factors:
- number of vertices in the scene
- textures - resolution and the number of times it appears in the scene are both factors. If the texture has transparency, even more calculations need to be performed.
- number of sections in the scene
The origin point for coordinates (xyz = 0,0,0) is marked by the intersection of the red grid lines. Gridlines are spaced at 1m and all units in O2 are measured in meters.
TAB – cycle between viewports (or click in any viewport with mouse to set the active viewport)
arrow keys – scroll in viewports
CTRL+arrow keys – faster scrolling in viewports
ALT+RMB – rotate camera (only works in 3D Preview viewport)
ALT+LMB – scroll in viewports
ALT+RMB+LMB - zoom (mousewheel can also be used to zoom)
F9 – reset to 4 viewport mode (3D, front, top, left)
Space – center active viewport to pin
S – switch between selection masking modes that will be displayed Buldozer (unselected=red, selected=shining, none)
pan camera W, E, S, arrows (same as Lmouse+drag)
rotate camera A, D
rotate object NumPad_arrows (same as Rmouse+drag)
CTRL + camera movements - slower movements
Numpad_5 – reset camera and center object.
Numpad +/- - zoom
[ ] - decrease/increase speed of RTM animations
SHIFT [] – set animation phase
Enter / Mousewheel cycle through animations defined in model.cfg
Back space cycle backwards through animations defined in model.cfg
change weather RWIN+U / RWIN+I
change time of day RWIN+T / RWIN+Y
toggle display of textures RWIN+X
Buldozer Menu
Start/Restart - launch or restart Buldozer viewer
Other > Attach - Attach O2 to an existing instance of Buldozer
Other > Detach - Detach O2 from Buldozer
Other > Stop - Stop updating to Buldzoer
Other > Run Script - Start a script in Buldozer
Other > Refresh Viewer - Refresh Buldozer
Hide Textures - Toggle display of textures
Hide Materials - Toggle display of materials
Hide Proxies - Toggle display of proxies
Hide Hidden Faces - Toggle display parts set as 'hidden' in O2
Multiple LODs - Toggle display of multiple LODs
Show Shadow – Toggle display of shadows (uses ShadowVolume to cast shadows on Resolution LODs)
Beware Unsupported Textures - Toggle checking for unsupported textures. Buldozer will sometimes crash because of unsupported textures, this will check if the model has links only to PAA and PAC textures. Turning this on may decrease performance.
Bring to top after update – If this option is active, buldozer will be moved on top of other windows after each update
Selection Masking > Mask Texture - Unselected faces will be masked by a texture
Selection Masking > Mask Material - Unselected faces will be masked by a material
Selection Masking > Highligt - Selected faces will be fully lit
Selection Masking > Crop - Unselected faces will be hidden
Selection Masking > Disable - No selection masking
Selection Masking > Change Masking Texture - Set path to a texture to use for masking
Selection Masking > Change Masking Material - Set path to a material to use for masking
Ground object... – Setup an object to use as a default ground surface (can be useful for viewing shadows cast by objects)
Markers... – Setup an object to be shown in place of isolated vertices (can be useful for viewing memory points)
Autocenter - Automatically center view on object
Center to Pin - Center view on pin location
Center to Selection - Center view on selection
Freeze Animation - Freeze RTM animation
Environment Editor - Opens a dialog window to adjust settings for time of day, weather, fog and lens apperture. Also allows saving current settings as presets.
Pin Tool
The pin tool has many uses but basically is a moveable reference point, which can be activated and deactivated.
R – Sets cursor to 'move pin' mode. Click to place pin.
C – Centers pin to selection, or when no selection exists, centers pin to whole scene.
Space – Center active viewport to pin
Shift+C – Activate/deactivate pin. When active many functions will use the pin - such as rotate, scale, insert point.
You can use PIN mode also for simple snap.
Select LMB part of the mesh you want to snap to another. Keep the LMB pressed and move with pointer to desired snap location.
Creating and selecting objects
At the bottom of the O2 window there is a status bar which displays total vertices and faces and selected vertices and faces.
Insert creates a new point at the cursors location. If the pin is activated, the point will be created at the pins location.
LMB selects objects (drag to select an area)
Ctrl+LMB adds to selection
Ctrl+Shift+LMB subtracts from selection
Delete - deletes selection
F6 - create new face from selected vertices (you must have only 3 or 4 vertices selected)
D - removes faces, but vertices remain
CTRL+Delete – removes vertices and merges adjacent faces; preserves UV coords in most situations.
ALT+Backspace – Undo
CTRL+L - Lock selection
CTRL+Shift+L - Unlock selection
CTRL+A - Select all
Editing
The most important selection modes are available via toolbar icons
Editing modes:
F2; O – select whole objects
F4; V – select vertices
T – select polygons
Z – zoom mode
RMB drag to move selection
Shift+RMB drag to create a copy of the selection
Ctrl+RMB drag to rotate selection, activate pin to rotate around pin location
Ctrl+Shift+RMB drag to scale selection, activate pin to scale from pin location
All the functions listed above can be done with numeric values Menu: Points > Transform 3D > Move / Rotate / Scale.
It also allows the function to be performed on the whole scene in each LOD by using the 'apply to all LODs' checkbox.
Ctrl+C / Ctrl+V copy and paste. Can be useful between LODs and also between instances of O2
X / Y / Z keys are used to constrain viewport movements to specified axis. Each viewport will display the axis it is currently constrained to beside the viewport name.
P - opens a dialog box to flatten selected points in the selected axis, and it can optionally flatten to pin's plane.
To merge all selected points into one, use Menu: Points > Merge or to merge using proximity threshold use Menu: Points > Merge near
IMPORTANT! Points can only be merged if they have the same vertex properties. While these are no longer necessary in the ArmA engine, they may be present in older models. Use Shift+E to view and edit properties of selected vertices.
For boolean operations, use Menu: Structure > Carve. It will use selected objects to create breaks in the unselected objects. It's not suitable for very complex shapes, and even with basic shapes it might generate some unnecessary geometry that should be manually cleaned.
Local Axis
For manipulation with character model selection (bones) a feature for local axis was introduced.
Local axis can be enabled under the Points Menu > Transform 3D > Show Local Axis.
You can define local axis for each selection by using a triangle that is named in work selection together with the mesh (work selections start with minus letter)
- hlava
Then after you enable local axis mode in menu, you can manipulate with the mesh in work selection using standard editing tools.
How to define skeleton with local axes and hierarchy:
- select proxy defining axis - menu from proxy will setup PIN - select all faces in hierarchy that will be affected by this axis - menu Selection from local axis will make a work selection (marked by "-" ) - make a named selection with the proxy and a bone
Hiding and Locking Selections
CTRL+H hide selection
CTRL+I invert selection
CTRL+Shft+H unhide selection
CTRL+L lock selection (note: a locked selection cannot be moved, but can be deleted)
CTRL+Shift+L unlock selection
Measuring
Measurements can be made using Shift+F11 to measure between the pin and the cursor.
Sharp and Smooth Edges
Edges in O2 can be either sharp or smooth. When selected, smooth edges are shown with bright red lines and sharp edges are shown with dark red lines and heavier lineweight. All newly created objects have smooth edges, which means the lighting is calculated using gouraud shading. A sharp edge is like a crease that prevents light from being averaged between adjacent faces.
All face lighting is calculated with surface normals. Normals can be displayed in O2 using File/Options/view normals=ON. A face will have a normal at each vertex. Sharp edges will have normals that are perpendicular to the faces they represent. Smooth edges will have normals that are positioned at the average angle between the faces they represent.
U – make selected edges sharp
I – make selected edges smooth
W - reverse face (flips normals)
Q – uncross face
F5 – recalculate normals
After rotating objects, it is usually necessary to recalculate normals by hitting F5. If there is some reason to prevent recalculating normals, they can be locked from the menu Points > Lock Normals after which they will appear pink instead of blue.
Import / Export
It's possible to import files of type 3DS, OBJ.
Import from *.3DS
- specify desired selections to import
- checkbox option allows creation of named selections in O2 based on selection names in MAX
- set unit of measure (O2 uses metres)
- option to convert TGA textures to PAA, and also import animation
- set the destination LODs for all MAX selections
Surfaces
Every face that will use textures/materials has to be mapped. UV map defines texture proportions and resolution. You can check mapping with menu feature structure->check faces.
Every face can have texture (diffuse map) and material (RVMAT) files attached. Path to these files is defined in menu face properties (E) You can later see it also in Material library or in Mass renaming tool.
You should wisely decide how many files you have to use, because you define number of sections for drawing the model on graphics card.
Texture Mapping
Texture Mapping | ||
---|---|---|
Name | Description | |
A | Flat mapping from background mode. | |
B | Applies texture/mapping on the surface. | |
CTRL+B | Shows the actual mapping. | |
M | Gizmo“ mapping (Surfaces->Gizmo Mapping) – a separate menu starts with simple gizmo features, the results can be interactively shown in Buldozer. | |
E - Face Properties | Assigning textures and materials (more in PROPERTY) | |
Arrow Keys | Move with the rectangle. | |
Shift + Arrow Keys | Change rectangle size. | |
LMB | Select rectangle with texture. | |
RMB | Context menu. | |
CTRL + LMB | Outside the rectangle – Rotation Mode (Note: Beware of non-planar mapping). | |
CTRL + LMB | On the edge – Scale. | |
CTRL + LMB | In the texture library, Select by texture. | |
menu Surfaces->fit Bgr.from Selection | Aligns the rectangle according to the selection. | |
Tools-> mass texture and material renaming | Quick multiple renaming. |
Neighbour Mapping
Neighbour mapping is mapping that uses information about mapping from neighbour faces of selected faces. UV from neighbour are copied to unmapped selected faces. Function works repeatedly, Until there are unmapped faces.
To use this function, make selection of area, that contains some ummapped faces (faces which have UV zeroed). There must be enough neighbour faces containing some mappings.
Function can be also used as variation of "unfold" or "unwrap" function, because it will try to calculate unknown UV by neighbour if there is not enough mapped neighbour faces, but at least one, which is used to calculate UV transform.
To use function for "unwrap", use following steps
- 1) remove mapping on area
- 2) choose one face from area to map (representative)
- 3) Map this face in UV editor and un-deform this face
- 4) select area to map
- 5) use neighbour mapping.
Note: function works best with triangles. Results of quads can be totally unusable.
UV unwrap
To spare amount of textures modellers usually unwrap surface of a model to a planar projection and compose textures in this layout.
In O2 you can do it with help of UV editor. It has simple editing tools for vertex and face manipulation (move, scale, merge, snap). It also can show selected faces in UV set and back. It also allows you to simply make new UV mapping by transforming any face in 2D projection of the editor. UV Editor
Resources Library
This multi functional library can be used not only for materials.
You can explore all files linked to the model surfaces. Select faces assigned to textures/materials. Start MATplugin for editing materials. Rename or Drag and Drop files from the list. Add proxies from file structure on your disk. It shows some information about section count too.
Doubleclick 1) nothing selected – opens the file in associated program/plugin 2) with faces selected, applies texture/material on selected faces. 3) in mapping mode “automap selection” it will change background texture
Ctrl+Doubleclick 1) at texture and material - make selection of the mapped surfaces 2) at p3d – selects all proxies with this path
Ctrl+Shift+Doubleclick 1) texture/material – changes texture on selected faces 2) only for p3d - File -> Open selected *.p3d
Shift+Doubleclick 1) only for p3d – adds proxy in scene
DragAndDrop 1) texture/material – same as Ctrl+Shift+Doubleclick – changes texture on selected faces 2) P3D dragged in viewport – makes Proxy 3) P3D dragged on menu – opens the file
Rename works only for pathnames, usable in LODs (same as mass renaming)
MAT plugin
You need MAT.dll in O2. Useful is also subfolder TEMPLATES from VCS. Read more about materials in ArmA:_RVMAT
You can use templates stored in O2 sub folder
You can work with primitives and switch view from model to primitive. You can select simple color for the primitive
RVMAT file content editing.
You can link various values together. Various types of color schemes are available.
You can pick any color on your monitor with the dragged dropper icon
Color field shows actual settings, can be used to open color selection palette
If you use material templates, then stages are partially locked.
Procedural textures can be easily edited in submenu
Copy / Paste v O2 (menu or special hotkey) can be applied on colors and stage settings
Warning : standard Ctrl+C a Ctrl+V works in actual window affected by actual “focus”
Use menu Edit -> Copy / Paste or hotkey Ctrl+Shift+C and Ctrl+Shift+V. For correct results.
Copy of color/stage settings:
1) LMB on any small window with color value number or texture name 2) use menu Edit -> Copy, or Ctrl+Shift+C 3) choose other color panel, LMB on any slider, value or texture name 4) use menu Edit -> Paste, or Ctrl+Shift+V
Named Selections
(Shift+F5) O2 is not as powerful as other modelling SW in creating and editing meshes, its power lies in named selections, properties and LOD layers.
- selections for each LOD can be created, and edited (rename, redefine) using context menu
- selections that start with “-” (minus) or “.” (dot) are not binarized – they are used for work purposes in BIS tools O2/Visitor
- each model class has typical selections
- WARNING : animated selections should have a maximum name length of 32 letters, these selections should be in all animated LODs
- Weights assignment is used for skinning animated content. It is often done in external animation tool and imported in O2
Proxy objects
Instead of copy and paste model parts into various models you can use proxy object as a reference. Each proxy is another section of model. Proxy object is a simple face with 3 vertices that represents the inserted model. The face should have standard named selection. You can easily use O2 tool Create->Proxy and fill the path of the inserted model there (the path syntax should start with the backslash and end without a .p3d)
\CA\wheeled\zasleh1_proxy
The inserted model is then visible in Buldozer. Default proxy face is oriented the same as the proxy model. Position and orientation of the proxy face will set new position of the inserted object. Proxy model must have geometry property autocenter = 0 otherwise 0.0.0 axis of the inserted model will not be correct.
There should also then be added a note in the configuration file that will set the simulation class and the path of the proxy model.
If you want to decompose model into proxy parts you can use a named selection popup menu. If you create a selection and right click on it, you can export selection to proxy. If you have the same selection in other lods you can export them all at once too. There is also reverse function for importing proxy model from the path defined in proxy selection.
If you want proxy to cast shadows, you have to copy proxy selection in model shadow volume. Proxy model should of course contain some shadow LOD :-)
Properties
There are various types of properties (face, vertex, model in geometry and also some in resolution LODs)
Named properties
Dedicated pages:
FACE property
E
You can assign textures and materials, check UV coords. and create selections by any face property
User values are useful for additional features defined in configs.
204 – 208 used for reducing ambient light inside vehicles 50 - 60 used for destruction burn of surfaces
Lighting/Shadows > not used any more
Enable shadow should be defaulted to on, shadow casting can be disabled by named property in LOD.
Vertex Properties
Shift+E
Lighting properties like "Always in Shadow" should no longer be used, as you can do the same thing with materials, but better (more generic concept). Most important reason is that lighting properties are defined now per-vertex, but lighting is done per-section (it was per-vertex with SW TL which is obsolete now). The conversion of point lighting flags to a section based one is not straightforward and may introduce many artifacts.
Shining = emissive {1,1,1,1} ; diffuse[]={0,0,0,1}; ambient[]={0,0,0,1} Half Lighted = diffuse = {0.5,0.5,0.5,1} ; forcedDiffuse {0.5,0.5,0.5,1} Fully lighted = diffuse {0,0,0,1} + forcedDiffuse {1,1,1,1}
Warning! ambient, diffuse and forced diffuse are additional values that combined together result in pixel color
Shadows are cast only in limited area around observer.
If you want some surfaces (building interiors) kept always in shadow, you should add this line to RVMAT
renderFlags[] = {AlwaysInShadow};
Animations
You can do simple animations in O2 by creating and editing keyframes.
Animation window shows key frames that can be added from context menu.
Playback speed can be adjusted in Buldozer with []
If you unfold mesh surface to UV map or you want to animate rigid body, you simply create a new keyframe and move the faces in desired position. After the animation is done, it is exported in an *.RTM file.
You select BindPose frame, select ExportMatrices from context menu and define root selection.
If some vertices are in more than one selection (character animation, rigid body hierarchy), you can define weights for each selection.
Animated character optimize
Properties | ||
---|---|---|
Name | Description | |
Autotime | Setting animation time, mark first and last frame. AUTOTIME 1.0 for looped movement, AUTOTIME for other transition movements | |
Normalize Center | Average movement and center of animation. Z-Normalize Center and X-Normalize Center. | |
Neutralize STEP | Removes translations movement and stores this info in STEP properties (there are only rotations left). | |
Export Matrices | Export RTM file. | |
Aiming Optimisation | On imported matrices (RTM) – modify specific selections | |
Export Matrices | Choose root bone from popup menu or cancel. The result is that RTM will be done. Note:Often RTM bug will appear when bones have 0 size/volume, O2 cannot create center of gravity |
RTM playback
select from animated context menu "From Matrices" and open RTM file.
- Correct character animation has step and xstep properties
- looping animation ANDs with key frame 1.000
User animations
Another chance how to animate content ingame are USER ANIMS defined in model config. Engine can move with selection by HIDING, ROTATION or TRANSLATION. Part of model that will move must be in named selection also axis points and handles must be in selections. The rest is defined in model config. (anim.type, selection names, distance, angle...) There are two types of animation - discrete and continuous. Discrete animations use named selections with all vertices with 100%weight. In case you want to use continuous animation (skinned surfaces) you cannot have one animated part as a sub-selection of another (skeleton hierarchy, for example gun/turret/vehicle)
To preview an animation, put the focus on the Bulldozer window, press either <Enter>, <Backspace> or the mouse wheel to select the desired animation source (indicated in the upper left corner), and then rotate the mouse wheel to step through the animation.
LODs
LOD means LEVEL-OF-DETAIL, so basically LOD layers in O2 represent various model resolutions. Some models are not visible, and are used for specific engine functions.
You can create and edit LODs using context menu. Renaming is done in properties...
Resolution LODs
LODs that are named by numbers are used for visual resolution versions of model. The lower number of LOD the more detailed the LOD should be. Usually you make the best resolution and then after the textures are mapped, degrade the resolution. (half amount of faces for each LOD)
You can enable view of previous LOD in OPTIONS menu. ArmA Engine selects the resolution LODs itself. The artist should only focus on the model shape and degradation balance.
VIEW Cargo/Commander/Gunner/Pilot
These are also resolution LODs that are used for first person view. These LODs should have better resolution than 1.LOD, but contain only visible parts.
Geometry LODs
Invisible LODs for engine calculation. Textures are used for special surface characteristics.
Each Geometry LOD must contain named selections of all components. If there are any animated parts, they should keep the names as in other LODs. You can automatically select components by menu Structure->Topology->Find Components.
Geometry components must be closed convex objects
some help tools are in menu structure->convexity
Convexity->Find non-convex and “find non-convexities” - checking tools Component Convex Hull will try to decompose object in convex components Convex Hull makes one convex object use Make convex and Convexity Fine Tune if previous tool fails (different algorithm)
Collision Geometry
Used for physical collision detection Must contain also information about object MASS (gray boxes) and center of gravity (blue cross).
The model should be very simple, defining the basic model shape. Thinner parts than 15cm cannot collide in faster speeds. Better if the geometry is larger than the model shape.
CTRL+A select all. Use MASS dialog to assign total mass. If you want to move the center of gravity, select vertices and change their individual mass. Keep an eye on the “total mass” checkbox.
It is not a problem, if some components do not have any mass. The mass of the whole model is used for collision, gravity and momentum. BUT, the component will not be simulated, if it has no named selection set.
1 mass = 1kg
FIRE Geometry
More detailed than collisions. Used for fire detection. Surfaces modeled in this LOD do STOP any bullet (any caliber). Only special material can be used for surface that can be shot through, but not thrown grenades. (windows)
If the fire geometry is missing, view geometry will be used intsead (or collision in worst case). So if you want model that does not stop bullets, make blank FireG LOD
View cargo/commander/gunner/pilot - Fire Geometry – Actually useless LODs, till Engine enables soldiers fire to from vehicle cargo...
VIEW Geometry
This LOD is used for AI view occlusion – what can the AI soldier see. It is also used for occlusion detection for scene drawing optimisation.
WARNING: If there is no component in view or fire geometry, players cursor will be not able to activate action menu (for example climb ladder)
There is an example of tree VIEW geometry.
AI cannot see through this geometry. If you don´t model this LOD, AI will use collision geometry.
VIEW Cargo/Commander/Gunner/Pilot - Geometry
Same as previous LOD, but for first person AI view.
ShadowVolume LOD
Used for HW shadow casting. The shadows are cast from this LOD on resolution LOD surfaces. The shadow volume area is made by extruding the lit faces of the shadow LOD (faces that have normals oriented towards the light) in the light direction.
LOD should be as simple as possible, to represent the 1st LOD shape and all its important parts. The shape should not exceed 1st LOD volume. Maximum polycount for shadowVolume is 1000 triangles.
All components must be Closed (each edge must have 2 neighbor polygons) – check with Structure->Topology->findNonClosed. Normals can be oriented both ways, depending on desired purpose of the specific shadow LOD surface/component. This lod should not contain any texture or material.
All faces must be Triangulated (each polygon must have 3 edges) - use menu Structure->Triangulate
All edges must be sharp – menu Surfaces->SharpEdge (U)
LOD must be nammed ShadowVolume 0.000,ShadowVolume 10.000 or ShadowVolume 1000.000
- Shadow volume 0 is the main stencil shadow. It shuould have less than 1000 triangles.
- Shadow Volume 10 is optimised stencil shadow LOD with as few triangles as possible.
- Shadow 1000 is special for trees, it uses alpha transparent textures to be calculated using GPU shadow buffer. (so this lod can have link on texture)
All faces must have property "Enable shadow", otherwise they will not cast shadow - menu Face properties (E).
If the Volume LOD is missing, HW cannot cast shadows and there is no other alternative, engine will use resolution LODs. OFP cannot cast too complex shadows, so every resolution LOD that contains more than 1000 faces, should have property LODNoShadow=1 to disable CPU shadows. (bugs reported after binarization)
ShadowVolume - View Cargo, ShadowVolume - View Pilot, ShadowVolume - View Gunner - special shadow for static view resolution LODs. You have to enable them also in config:
viewDriverShadow = true; viewGunnerShadow = true; viewCargoShadow = true;
Virtual Reality engine can also cast shadows using SHADOW BUFFER. This is controlled by model property sbsource and prefershadowvolume in geometry LOD.
For trees and vegetation there can also be used so called HYBRID SHADOW. This is controlled by model property Shadow=hybrid in Geometry LOD Those shadows are cast on all models except the model itself. Trees can use special shaders for leaves that simulates self shadowing.
HitPoints
Modelled parts (selections) in this LOD represent valuable parts of the model that can be hit and affect the models in-game features. (class configuration)
LandContact
Contains only vertices that represent contact with land. It is used mainly for vehicles and some characters. You can use it for structures too, in case you like to transform them by the surface. Wrong positioned points can cause “levitation” or “submerge the model under ground”
Memory
Contains only vertices. Each vertex should have specific (class based) named selection. This LOD is used for defining important points and axes for model configuration. Selection names also correspond to animated model parts.
Paths
Important LOD for AI path finding. AI can find its way through objects (such as buildings) Specific named selections are based on class definition.
One building can have more entrance points, but all doors must be connected together with path. Every point where AI could stop, must be defined by named selection with ascending number according to the pathway. All path vertices's must be connected by polygons.
Roadway
This LOD allows characters to walk on the other models. (walk upstairs, stay in the 2nd floor)
Model is made of polygons (normals are useless here) Textures are used for material sound definition (+config definition)
Edit LODs
Working LOD for editing. It is removed during binarization. (UV set unfold, additional shadow volume levels...)
Automation
You can record MACROS and launch SCRIPTS
Macro
Objektiv2 knows Macros. It is "easy to use" alternative of the scripts (eh, okay, scripts can do more things than the macros).
To create macro, use Automation->Macro->Record Macro or simply click on red button on main toolbar.
When recording is active, O2 captures all mouse or keyboard actions. If you want to stop recording, deactivate the red button.
To playback the captured macro, use button with blue arrow (Play).
Current version of O2 can save and load captured macros as disk file. Explore the Automation->Macro menu.
You can play the macro on all LODs or on groups of LODs or on each frame of animation(Automation->Macro->Play Macro).
Problems and Limitations:
- Macro is played "as is". O2 Macro recorder is trying to detect any changes in UI, but it will never be perfect. Sometime macro can be totally desynchronized and may destroy O2's workspace - so DON'T FORGET TO SAVE YOUR WORK before usage.
- Keyboard actions are recorded better than mouse. During recording use keyboard when it is possible. Don't record "free hand" actions, such as transformations. Instead, use transform dialogs.
- O2 Macro recorder cannot record actions that are invoked "when mouse cursor stays on item for a while". This is case of menus. Open all submenus by clicking, or use arrows keys.
- In File Open Dialog, activate the item by the Enter key (not mouse). Doubleclicks can cause problem sometimes
- During playback, you cannot control the mouse and the keyboard. Also, you cannot work with other applications. To interrupt the playback, use Alt+TAB or Ctrl+Alt+Del (and Cancel).
- Mouse Wheel is currently not supported.
List of Shortcuts
Keys
F2 Select object
F3 Select faces
F4 Select vertices
F5 Recalculate normals
F6 Create face from selected vertices
F7 Create box
F8 Create cylinder
F9 3-side view + 3D preview
~ Does not work. Should be toggle Freeform select. Use the menu instead: Edit - Edit mode - Laso \ Triangulate: change 4-point surfaces into 2 3-point surfaces
a Set/modify texture mode
b Background mapping: Use to apply texture loaded using Set/modify “texture mode” on selected objects/faces.
c Center pin on selection
d Remove faces
e Face properties: bring up face properties
f Show/Hide back oriented faces
g Bring up Gizmo mapping dialog
i Smooth edges
m Bring up Map Dialog
o Object select mode
p Flatten points: bring up the “flatten” dialog
q Uncross: cross or uncross selected edges
r move pin
s Viewer Focus selection
t Select surface mode
u Sharp edges
v Vertex selection mode
w reverse: inverse normals
x Lock X movement: selected objects can only be moved in X direction
y Lock Y movement: selected objects can only be moved in Y direction
z Bound to 2 functions, using may cause problems:
In top/front/side view: Zoom mode
In 3D preview: Lock Z movement: selected objects can only be moved in Z direction.
Insert Create vertex
Delete Delete selection
Space Center on pin
Numeric Keyboard
* Center camera on selection
/ Triangulate: change 4-point surfaces into 2 3-point surfaces
+ Camera zoom in
- Camera zoom out
Shift+Keys
Bound to 2 functions, using may cause problems
c Use Pin toggle: all operations now act at the position of the pin.
press “Insert” to create a new vertex at the position of the pin.
e Bring up Vertex Properties dialog
d Weld selected vertices (merge selected vertices to a single vertex)
m same as Shift+D
o Bring up Modelling Coloration dialog
r Turn Edge
w Bring up Linear Deform dialog
Delete Try to delete vertex, close polygon, keep UV mapping
Ctrl+Keys
1 Toggle Named Property window
a Select all
b Background from face (inverse “b” key function)
c Copy
d Deselect
e Toggle selection toolbar
g Does not work: Toggle Grid
h Hide selection
i Invert selection
l Lock selection
n New
o Open file
r Does not work: Lock camera position
s Save file
t Toggle default toolbar
u Bring up Unwrap dialog
v Paste
w Select only one side (front/back toggle)
x Cut
y Redo
z Undo
Ctrl+Shift+Keys
h Unhide selection
l Unlock selection
Home Move face to first in order
End Move face to last in order
PgUp Move face up in order
PgDn Move face down in order
* Center view on selection
Alt+Keys
Backspace Undo
h Toggle History window
l Bound to 2 functions, using may cause problems
Toggle LOD window Does not work: Toggle Named selections window
m Toggle Mass window
p Toggle Named Properties window
s Split window in 4 views
t Toggle Texture library window
* Center all views on selection
Mouse movement operations
LMB (Left Mouse Button) Make selection
RMB (Right Mouse Button) Move selection
Ctrl+LMB Add to selection
Ctrl+Shift+LMB Remove from selection
Alt+LMB Move camera
Ctrl+LMB Rotate camera
Shift+RMB Duplicate (clone) selected
Ctrl+RMB Rotate selection
Ctrl+Shift+RMB Scale selection