Oxygen 2 - Manual: Difference between revisions

From Bohemia Interactive Community
m (→‎Macro: Added list of shortcuts)
m (Undo revision 377960 by Lou Montana (talk))
Tag: Undo
 
(38 intermediate revisions by 18 users not shown)
Line 1: Line 1:
=== Basic setup ===  
{{TOC|side|1|2}}
== Basic setup ==


----
'''External Viewer:''' {{hl|''<ArmaDirectory>''\''<ArmaExe>.exe -window -buldozer -noland}}
e.g
"C:\Program Files\Bohemia Interactive\Armed Assault\ArmA.exe" -window -buldozer -noland


'''External Viewer:''' C:\program files\bohemia interactive\arma\ArmA.exe -window -buldozer -noland


*'''-worldCfg=''' - you can force using specific world config (weather settings)
{| class="wikitable"
|+ 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.
|}


*'''-name=''' - you can force specific user game settings (your ArmA instalation has separate user settings that can for example disable shadows in .../My Documents/ArmA)


*'''- addons...''' used to specify a text file which ArmA.exe will use to load project-specific extras (sunlight, clouds, and sky textures)
* '''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


*'''-cfg=''' - used to specify a basic configuration file (graphics, memory, size and position of viewer window)


*'''-noland''' - option to not display any ground
== Terminology ==


*'''-window''' - option to run viewer in window instead of fullscreen
* '''Point''' – individual point in space
 
* '''Vertex''' – point of intersection of two or more edges
 
* '''Edge''' - connection between two vertices
'''DLL Folder''' - path to O2 installation
* '''Polygon''' – planar surface with any number of edges
 
* '''Triangle''' – polygon with three edges
'''Path for textures''' - path to work disk (usually P:\)
* '''Quad''' – polygon with four edges
 
* '''Face''' – in O2 faces can be triangles or quads
'''Source Safe Database''' - login to Microsoft Visual Studio Source Safe database
* '''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
=== Terminology ===
* '''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.
 
----
 
'''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 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 everytime when there's need on 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 hundrets 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:


*number of vertices in the scene
* 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


*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
== 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.


=== Viewport Navigation ===
{|
! Input
! Description
|-
| {{Controls|Tab}}
| cycle between viewports (or click in any viewport with mouse to set the active viewport)
|-
| {{Controls|Up}} {{Controls|Down}} {{Controls|Left}} {{Controls|Right}}
| scroll in viewports
|-
| {{Controls|Ctrl|Up}}/{{Controls|Down}}/{{Controls|Left}}/{{Controls|Right}}
| faster scrolling in viewports
|-
| {{Controls|Alt|RMB}}
| rotate camera (only works in '''3D Preview''' viewport)
|-
| {{Controls|Alt|LMB}}
| scroll in viewports
|-
| {{Controls|Alt|LMB|RMB}}
| zoom (mousewheel can also be used to zoom)
|-
| {{Controls|F9}}
| reset to 4 viewport mode (3D, front, top, left)
|-
| {{Controls|Space}}
| center active viewport to pin
|-
| {{Controls|S}}
| switch between selection masking modes that will be displayed Buldozer (unselected = red, selected = shining, none)
|}


----
=== Buldozer 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.  
{|
! Input
! Description
|-
| {{Controls|W}} {{Controls|E}} {{Controls|S}} {{Controls|Up}}/{{Controls|Down}}/{{Controls|Left}}/{{Controls|Right}}
| pan camera (same as {{Controls|LMB}} drag)
|-
| {{Controls|A}} {{Controls|D}}
| rotate camera
|-
| {{Controls|Up}}/{{Controls|Down}}/{{Controls|Left}}/{{Controls|Right}} (numpad)
| rotate object (same as {{Controls|RMB}} drag)
|-
| {{Controls|Ctrl}} + camera movements
| slower movements
|-
| {{Controls|Num5}}
| reset camera and center object
|-
| {{Controls|Num+}}/{{Controls|Num-}}
| zoom +/-
|-
| {{Controls|[}}/{{Controls|]}}
| decrease/increase speed of RTM animations
|-
| {{Controls|Shift|[}}/{{Controls|]}}
| set animation phase
|-
| {{Controls|Return}}/{{Controls|MMB}}
| cycle through animations defined in model.cfg
|-
| {{Controls|Backspace}}
| cycle backwards through animations defined in model.cfg
|-
| {{Controls|RWin|U}}/{{Controls|I}}
| change weather
|-
| {{Controls|RWin|T}}/{{Controls|Y}}
| change time of day
|-
| {{Controls|RWin|X}}
| toggle display of textures
|}


'''TAB''' – cycle between viewports (or click in any viewport with mouse to set the active viewport)
=== Buldozer Menu ===


'''arrow keys''' – scroll in viewports
'''Start/Restart''' - launch or restart Buldozer viewer


'''CTRL+arrow keys''' – faster scrolling in viewports
* '''Other'''
** '''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 > Highlight''' - 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.


'''ALT+RMB''' – rotate camera (only works in '''3D Preview''' viewport)


'''ALT+LMB''' – scroll in viewports
== Pin Tool ==
 
'''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)
 
 
====Buldozer navigation====
 
----
 
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.
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.  
{|
! Input
! Description
|-
| {{Controls|R}}
| Sets cursor to 'move pin' mode. Click to place pin.
|-
| {{Controls|C}}
| Centers pin to selection, or when no selection exists, centers pin to whole scene.
|-
| {{Controls|Space}}
| Center active viewport to pin
|-
| {{Controls|Shift|C}}
| Activate/deactivate pin. When active many functions will use the pin - such as rotate, scale, insert point.
|}


'''C''' – Centers pin to selection, or when no selection exists, centers pin to whole scene.
You can use PIN mode also for '''simple snap'''.


'''Space''' – Center active viewport to pin
{{Feature|informative|Select {{Controls|LMB}} part of the mesh you want to snap to another. Keep the LMB pressed and move with pointer to desired snap location.}}


'''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'''.
== Creating and selecting objects ==
 
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.
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.
{|
 
! Input
'''LMB''' selects objects (drag to select an area)  
! Description
 
|-
'''Ctrl+LMB''' adds to selection  
| {{Controls|Insert}}
 
| creates a new point at the cursors location. If the pin is activated, the point will be created at the pins location.
'''Ctrl+Shift+LMB''' substracts from selection
|-
 
| {{Controls|LMB}}
'''Delete''' - deletes selection
| selects objects (drag to select an area)
 
|-
'''F6''' - create new face from selected vertices (you must have only 3 or 4 vertices selected)
| {{Controls|Ctrl|LMB}}
 
| adds to selection
'''D''' - removes faces, but vertices remain
|-
| {{Controls|Ctrl|Shift|LMB}}
| subtracts from selection
|-
|-
| {{Controls|Delete}}
| deletes selection
|-
| {{Controls|F6}}
| create new face from selected vertices (you must have only 3 or 4 vertices selected)
|-
| {{Controls|D}}
| removes faces, but vertices remain
|-
| {{Controls|Ctrl|Delete}}
| removes vertices and merges adjacent faces; preserves UV coords in most situations.
|-
| {{Controls|Alt|Backspace}}
| undo
|-
| {{Controls|Ctrl|L}}
| lock selection
|-
| {{Controls|Ctrl|Shift|L}}
| unlock selection
|-
| {{Controls|Ctrl|A}}
| select all
|}


'''CTRL+Delete''' – removes vertices and merges adjacent faces; preserves UV coords in most situations.


'''ALT+Backspace''' – Undo
== Editing ==


'''CTRL+L''' - Lock selection
The most important selection modes are available via toolbar icons
 
'''CTRL+Shift+L''' - Unlock selection
 
'''CTRL+A''' - Select all
 
=== Editing ===
 
----
 
The most important selection modes are available via toolbar icons  


Editing modes:
Editing modes:


'''F2; O''' – select whole objects
{|
 
! Input
'''F4; V''' – select vertices  
! Description
 
|-
'''T''' – select polygons  
| {{Controls|F2}} {{Controls|O}}
 
| select whole objects
'''Z''' – zoom mode
|-
 
| {{Controls|F4}} {{Controls|V}}
 
| select vertices
'''RMB'''  drag to move selection  
|-
 
| {{Controls|T}}
'''Shift+RMB''' drag to create a copy of the selection  
| select polygons
 
|-
'''Ctrl+RMB''' drag to rotate selection, activate pin to rotate around pin location
| {{Controls|Z}}
 
| zoom mode
'''Ctrl+Shift+RMB''' drag to scale selection, activate pin to scale from pin location
|-
| {{Controls|RMB}}
| drag to move selection
|-
| {{Controls|Shift|RMB}}
| drag to create a copy of the selection
|-
| {{Controls|Ctrl|RMB}}
| drag to rotate selection, activate pin to rotate around pin location
|-
| {{Controls|Ctrl|Shift|RMB}}
| drag to scale selection, activate pin to scale from pin location
|}




Line 257: Line 288:




'''Ctrl+C / Ctrl+V''' copy and paste. Can be useful between LODs and also ''between instances of O2''
{{Controls|Ctrl|C}}/{{Controls|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.
{{Controls|Ctrl|X}}/{{Controls|Ctrl|Y}}/{{Controls|Ctrl|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.  
{{Controls|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'''
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.
{{Feature|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 {{Controls|Shift|E}} to view and edit properties of selected vertices.
For boolean operations, use '''Menu: Structure > Carve'''.  It will use selected objects to create breakes 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 Axes ====


----


For manipulation with charcter model selection (bones) a feature for '''local axis''' was introduced.
For boolean operations, use '''Menu: Structure > Carve'''. It will use selected objects to create breaks in the unselected objects.
It is not suitable for very complex shapes, and even with basic shapes it might generate some unnecessary geometry that should be manually cleaned.


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)
=== Local Axis ===


- hlava
For manipulation with character model selection (bones) a feature for '''local axis''' was introduced.


Than after you enable local axis mode in menu, you can manipulate with the mesh in work selection using standard editing tools.  
Local axis can be enabled under the Points Menu > Transform 3D > Show Local Axis.


How to define sceleton with local axes and hierarchy:
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)
- select proxy defining axis
- menu '''from proxy''' will setup PIN
- select all faces in hierarchy that will be afected 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


Then after you enable local axis mode in menu, you can manipulate with the mesh in work selection using standard editing tools.


==== Hiding and Locking Selections ====
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
{|
! Input
! Description
|-
| {{Controls|Ctrl|H}}
| hide selection
|-
| {{Controls|Ctrl|I}}
| invert selection
|-
| {{Controls|Ctrl|Shift|H}}
| unhide selection
|-
| {{Controls|Ctrl|L}}
| lock selection (note: a locked selection cannot be moved, but can be deleted)
|-
| {{Controls|Ctrl|Shift|L}}
| unlock selection
|}


'''CTRL+I''' invert selection
=== Measuring ===


'''CTRL+Shft+H''' unhide selection
Measurements can be made using {{Controls|Shift|F11}} to measure between the pin and the cursor.


'''CTRL+L''' lock selection (note: a locked selection cannot be moved, but can be deleted)


'''CTRL+Shift+L''' unlock selection
== 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.


==== Measuring ====
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.


----
{|
! Input
! Description
|-
| {{Controls|U}}
| make selected edges sharp
|-
| {{Controls|I}}
| make selected edges smooth
|-
| {{Controls|W}}
| reverse face (flips normals)
|-
| {{Controls|Q}}
| uncross face
|-
| {{Controls|F5}}
| recalculate normals
|}


Measurements can be made using '''Shift+F11''' to measure between the pin and the cursor.
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.




=== Sharp and Smooth Edges ===
== Import / Export ==


----
It is possible to import files of type 3DS, OBJ.


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 [http://en.wikipedia.org/wiki/Gouraud_Shading gouraud shading].  A sharp edge is like a crease that prevents light from being averaged between adjacent faces.
=== Import from *.3DS ===


All face lighting is calculated with [http://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.
* 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


'''U''' – make selected edges sharp


'''I''' – make selected edges smooth
== Surfaces ==


'''W''' - reverse face (flips normals)
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'''.


'''Q''' – uncross face
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.
'''F5''' – recalculate normals
 
After rotating objects, it's 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.
 
Export is not available in Oxygen 2 Personal Edition.
 
 
==== 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 theese 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 ===


==== Texture Mapping ====
{| class="wikitable"
 
|+ Texture Mapping
----
|-
 
! Name
'''A''' – flat mapping from background mode
! Description
 
|-
'''LMB''' – select rectangle with texture
| {{Controls|A}}
 
| Flat mapping from background mode.
'''RMB''' context menu
|-
 
| {{Controls|B}}
menu '''Surfaces->fit Bgr.from Selection''' – alligns the rectangle according to the selection
| Applies texture/mapping on the surface.
 
|-
'''''arrows''''' – move with the rectangle
| {{Controls|Ctrl|B}}
 
| Shows the actual mapping.
'''Shift+''arrows''''' – change rectangle size;
|-
 
| {{Controls|M}}
'''CTRL+LMB''' outside the rectangle – rotation mode; beware of nonplanar mapping
| Gizmo mapping ('''Surfaces->Gizmo Mapping''') a separate menu starts with simple gizmo features, the results can be interactively shown in Buldozer.
|-
| {{Controls|E}} '''- Face Properties'''
| Assigning textures and materials (more in {{Link|Oxygen#Properties|PROPERTY}})
|-
| {{Controls|Up}}/{{Controls|Down}}/{{Controls|Left}}/{{Controls|Right}}
| Move with the rectangle.
|-
| {{Controls|Shift|Up}}/{{Controls|Down}}/{{Controls|Left}}/{{Controls|Right}}
| Change rectangle size.
|-
| {{Controls|LMB}}
| Select rectangle with texture.
|-
| {{Controls|RMB}}
| Context menu.
|-
| {{Controls|Ctrl|LMB}}
| Outside the rectangle – Rotation Mode (Note: Beware of non-planar mapping).
|-
| {{Controls|Ctrl|LMB}}
| On the edge Scale.
|-
| {{Controls|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.
|-
|}


'''CTRL+LMB''' on the edge – scale
==== 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.


'''B''' – applies texture/mapping on the surface
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.


'''CTRL+B''' – shows the actual mapping
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.
 
'''M''' - „gismo“ maping ('''Surfaces->Gismo Mapping''') – a separate menu starts with simple gismo features, the results can be interactively shown in Buldozer
 
'''Select by texture''' - CTRL+LMB on texture in library
 
'''E – face properties''' - assigning textures and materiáls (more in [[Oxygen_2_-_Manual#Properties | PROPERTY]])
 
quick multiple renaming - '''tools->mass texture and material renaming'''
 
===== Neighbour Mapping =====
 
----
 
Neighbour mapping is mapping that uses informations about mapping from neighbour faces of selected faces. UV from neighbour are copied to unmapped selected faces. Function works repeatly, 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 containg 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 no 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
# remove mapping on area
*2) choose one face from area to map (representative)
# choose one face from area to map (representative)
*3) Map this face in UV editor and undeform ths face
# Map this face in UV editor and un-deform this face
*4) select area to map
# select area to map
*5) use neighbour mapping.  
# use neighbour mapping.
 
Note: function works best with triangles. Results of quads can be totaly unuseable.
 


==== UV unwrapp ====
{{Feature|informative|Function works best with triangles. Results of quads can be totally unusable.}}


----
=== UV unwrap ===


To spare amount of textures modelers usualy unwrap surface of a model to a planar projection and compose textures in this layout.  
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.  
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 alows you to simply make new UV maping by transforming any face in 2D projection of the editor. [[Oxygen 2 - UV Editor|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.
{{Feature|informative|See {{Link|Oxygen 2 - UV Editor|UV Editor}}.}}


=== Resources Library ===


==== 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.


This multi functional library can be used not only for materials.
{|
 
! Input
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.
! Description
 
|-
Doubliclick
| {{Controls|LMB2}}
1) nothing selected – opens the file in associated program/plugin  
|
2) with faces selected, applies texture/material on selected faces.  
# nothing selected – opens the file in associated program/plugin
3) in mapping mode “automap selection” it will change background texture
# with faces selected, applies texture/material on selected faces.
 
# in mapping mode “automap selection” it will change background texture
Ctrl+Doubleclick
|-
1) at texture and material - make selection of the mapped surfaces  
| {{Controls|Ctrl|LMB2}}
2) at p3d – selects all proxies with this path  
|
 
# at texture and material - make selection of the mapped surfaces
Ctrl+Shift+Doubleclick
# at p3d – selects all proxies with this path
1) texture/material – changes texture on selected faces  
|-
2) only for p3d - File -> Open selected *.p3d
| {{Controls|Ctrl|Shift|LMB2}}
 
|
Shift+Doubleclick
# texture/material – changes texture on selected faces
1) only for p3d – adds proxy in scene
# only for p3d - File -> Open selected *.p3d
 
|-
DragAndDrop
| {{Controls|Shift|LMB2}}
1) texture/material – same as Ctrl+Shift+Doubleclick – changes texture on selected faces  
|
2) P3D draged in viewport – makes Proxy
# only for p3d – adds proxy in scene
3) P3D draged on menu – opens the file
|-
| Drag and Drop
|
# texture/material – same as {{Controls|Ctrl|Shift|LMB2}} – changes texture on selected faces
# P3D dragged in viewport – makes Proxy
# 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 ===


==== MAT plugin ====
You need MAT.dll in O2. Useful is also subfolder TEMPLATES from VCS.
 
Read more about materials in {{Link|ArmA: Armed Assault: RVMAT}}.
----
 
You need MAT.dll in O2. Usefull is also subfolder TEPLATES from VCS.
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 wit primitives and switch view from model to primitive. You can select simple color for the primitive
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.  
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 dragged dropper icon


You can pick any color on your monitor with the draged dropper icon
Color field shows actual settings, can be used to open color selection palette


Color field shows actual setings, can be used to open color selection palete


If you use material templates, then stages are partially locked.


If you use material templates, than stages are partialy locked.
Procedural textures can be easily edited in submenu


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 {{Controls|Ctrl|C}} and {{Controls|Ctrl|V}} works in actual window affected by actual “focus”
Use menu Edit -> Copy / Paste or hotkey {{Controls|Ctrl|Shift|C}} and {{Controls|Ctrl|Shift|V}} for correct results.


Copy / Paste v O2 (menu or special hotkey) can be applied on colors and stage settings  
Copy of color/stage settings:
Warring : standard Ctrl+C a Ctrl+V works in actual window affected by actual “focus”
# {{Controls|LMB}} on any small window with color value number or texture name
Use menu Edit -> Copy / Paste or hotkeyy Ctrl+Shift+C nebo Ctrl+Shift+V. For correct results.
# use menu Edit -> Copy, or {{Controls|Ctrl|Shift|C}}
# choose other color panel, {{Controls|LMB}} on any slider, value or texture name
# use menu Edit -> Paste, or {{Controls|Ctrl|Shift|V}}


Copy of collor/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 ===
== Named Selections ==


----
{{Controls|Shift|F5}}


(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.
O2 is not as powerfull as other modeling 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
 
* 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 typical selections
 
* each model class has a typical selections  
 
* WARRNING : animated selections should have max 32 letters long name, thees 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
{{Feature|important|Animated selections should have a maximum name length of 32 letters, these selections should be in all animated LODs.}}


=== Proxy objects ===


==== 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's 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
  \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 not correct.
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 than added also note in the configuration file that will set the simulation class and the path of the proxy model.
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.


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 :-)
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 ===
== 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)


==== Geometry (model) named property ====
=== Named properties ===
 
----
 
Properties that affect whole model are written in Geometry LOD.
 
'''class''' for all models that get placed in Visitor
 
vehicle
house
church  // clock
streetLamp  //light
road
treeHard (Hard mean less affected by wind than soft, so hard sways very little compared to soft)
treeSoft
bushHard
bushSoft
forest
man
 
 
'''Dammage (damage)''' engine is using both words for the same purpose
 
 
building
tree
no
bunker
tent
engine // explosive
fence
 
 
'''map''' map icon definition
 
building
fence
house
tree
small tree
bush
forest square
forest border
forest triangle
fortress
hide
fuelstation
view-tower
hospital
church
cross
fountain
chapel
lighthouse
rock
busstop
quay
 
 
'''placement''' Assigns specific deformation according to the terrain shape map surface
 
slope
//  the model is SKEWed according to the terrain shape, vertical lines remain vertical. Better than vertex property “Keep height “ in many cases
 
 
SlopeLandContact
 
placement=slopeZ
 
placement=slopeX
 
// variants where the transformation counts with landcontact defined points (1-3)
 
 
'''sbsource='''
 
Which LOD will be used for shadowbuffer casting. If it is not set and shadow=hybrid is present, resolution LODs are used. It uses following values:
 
visual 
//use resol LODs
 
explicit 
// Use special SB LODs <11000,11999>.
 
shadowvolume 
// Use SV LOD
none 
// Do not render anything.
 
 
'''prefershadowvolume='''
 
Choose which shadow casting technique will be used. 0 = Shadow Buffer; 1 = Shadow Volume
 
 
 
'''Forcenotalpha = 1'''
 
Some models with much alpha textures on their surfaces were considered as alpha objects and therefore were rendered in a speciall pass where it was not possible to cast shadows on them. There is aa new named property (in geometry LOD) using which you can force the whole model not to be considered as alpha model and shadows will be casted on it therefore. Negative impacts of such solution: various alpha sorting artifact may appear on alpha blended parts of such models. It will depend on particular situations if the effects will be bearable or not.
 
'''Armor=10''' used by tents


Dedicated pages:
* [[Arma 3: Named Properties|Arma 3]]
* [[Named Properties|OFP]]


'''transparent=1''' absolete, no purpose now
=== FACE property ===


{{Controls|E}}


'''Step a xStep''' values for movement settings, they are generated automatically when you optimize animation
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.
'''xsize=0.99; ysize=0.528; xcount=6; ycount=5'''
 
used by animated flags, obsolete
 
 
'''autocenter=0'''
 
some model classes are placed according to atomatic object center (cars)
 
this property sets that possition to 0.0.0 from .p3d file will be used. It is offten used for proxies.
 
 
'''frequent=1'''
 
Marks objects that are placed in big amount using instancing.
 
 
==== Resol LOD named property ====
 
----
 
'''LODNoShadow=1'''
 
There will be no SW shadow cast from this LOD. Usualz LODs with more than 1000 faces
 
 
'''LODNeeded'''
 
number will set which LOD should be displayed in case player gets near to object
 
 
'''noTL=1'''
 
Marked LODs without T&L acceleration. Absolete now.
 
'''keyframe=1'''
 
marked models that are animated by keyframes stored in .p3d, used only in x:\data3d\racekT.p3d
 
 
==== VIEW geometry named property ====
'''CanOcclude=0'''
 
switches off oclussions, it is now absolete (occlusion is not count for rendering)
 
==== FACE property ====
 
----
 
'''E'''
 
You can assign textures and materials, check UV coords. and create selections by any face property
 
User values are usefull for aditional 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 anz more  
'''Lighting/Shadows''' > not used any more


'''Enable shadow''' should be default on, shadow casting can be disabled bz named propery in LOD.
'''Enable shadow''' should be defaulted to on, shadow casting can be disabled by named property in LOD.


=== Vertex Properties ===


==== Vertex Properties ====
{{Controls|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 done 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.
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.


{| class="valign-top"
! Shining
! Half Lighted
! Fully Lighted
|-
|
<syntaxhighlight lang="cpp">
emissive[] = { 1, 1,1, 1 };
diffuse[] = { 0, 0, 0, 1 };
ambient[] = { 0, 0, 0, 1 };
</syntaxhighlight>
|
<syntaxhighlight lang="cpp">
diffuse[] = { 0.5, 0.5, 0.5, 1 };
forcedDiffuse[] = { 0.5, 0.5, 0.5, 1 };
</syntaxhighlight>
|
<syntaxhighlight lang="cpp">
diffuse[] = { 0, 0, 0, 1 };
forcedDiffuse[] = { 1, 1, 1, 1 };
</syntaxhighlight>
|}


'''Shining''' = emissive {1,1,1,1} ; diffuse[]={0,0,0,1}; ambient[]={0,0,0,1}
{{Feature|important|ambient, diffuse and forced diffuse are additional values that combined together result in pixel color.}}
'''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}  


Warrning! ambient, diffuse and forced diffuse are additional values that combined together result in pixel color
Shadows are cast only in limited area around observer.


Shadows are cast only in limited arrea around observer.
If you want some surfaces (building interiors) kept always in shadow, you should add this line to RVMAT


If you want some surfaces (building interiors) kept allways in shadow, you should add this line to RVMAT
<syntaxhighlight lang="cpp">
renderFlags[] = { AlwaysInShadow };
</syntaxhighlight>


renderFlags[] = {AlwaysInShadow};


 
== Animations ==
=== 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.
Playback speed can be adjusted in Buldozer with [].


Animation window shows key frames that can be added from context menu.
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.
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 key frame and move the faces in desired position. After the animation is done, it is exported in *.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's are in more than one selection (character animation, rigid body hierarchy), you can define weights for each 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 ===


==== Animated characer optimize ====
{| class="wikitable"
|+ 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
|-
|}


----
{{Feature|important| Note If you do not have enough smooth transitions between frames, you can try '''Soften Selected''' (uses interpolation)}}


'''Autotime''' – setting animation time, mark first and last frame
=== RTM playback ===
 
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 Optimalisation''' – on imported matrices (RTM) – modify specific selections
 
finaly '''export matrices''' , you can choose root bone from popup menu or cancel. The result RTM will be done.
 
offten RTM bug appears when bones have 0 size/volume - O2 cannot create centre of gravity
 
if you have not enough smooth transition between frames, you can try '''Soften Selected''' (uses interpolation)
 
Properties Step and xStep are results of anim optimalization.
 
 
==== RTM playback ====
 
----


select from animated context menu "From Matrices" and open RTM file.
select from animated context menu "From Matrices" and open RTM file.
Line 788: Line 707:
* Correct character animation has step and xstep properties
* Correct character animation has step and xstep properties


* looping animation ands with key frame 1.000
* looping animation ANDs with key frame 1.000




==== User animations ====
=== 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.
There are two types of animation - discreete and continuous. Discrete animations use named selections with all vertices with 100%weight. I case you want to use continuous animation (skinned surfaces) you cannot have one animated part as a subselection of another (skeleton hierarchy, for example gun/turret/vehicle)
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 {{Controls|Return}}, {{Controls|Backspace}} or {{Controls|MMB}} to select the desired animation source (indicated in the upper left corner), and then rotate the mouse wheel to step through the animation.


=== LODs ===


----
== LODs ==


LOD means LEVEL-OF-DETAIL, so basicaly LOD layers in O2 represent various model resolutions. Some models are not visible, and are used for specific engine functions.
LOD means '''L'''evel '''O'''f '''D'''etail, 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 ====
=== Resolution LODs ===
 
----
 
LODs that are named by numbers are used for visual resolution versions of model. The lower number of LOD the more detailer the LOD should be. Usualy you make the best resolution and than 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 select the resolution LODs itself. The artist should only focus on the model shape and degradation balance.


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)


'''VIEW Cargo/Commander/Gunner/Pilot'''
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.


Theese are also resolution LODs that are used for first person view. Theese LODs should have better resolution than 1.LOD, but contain only visible parts.


'''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 ====
=== 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 contains named selections of all components. If there are any animated parts, they should keep the names as on other LODs. You can automatically select components by menu '''Structure->Topology->Find Components'''.  
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 835: Line 753:
some help tools are in menu '''structure->convexity'''
some help tools are in menu '''structure->convexity'''


'''Convexity->Find non-convex''' and “find non-convexies” - checking tools  
* '''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
use '''Make convex''' and '''Convexity Fine Tune''' if previous tool fails (different algorithm)
* use '''Make convex''' and '''Convexity Fine Tune''' if previous tool fails (different algorithm)
 
 
===== Collision Geometry =====
 
----


==== 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. I f you want to move center of gravity, select vertices's and change their individual mass. Keep eye on the “total mass” checkbox.
{{Controls|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 there it has no named selection set.
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 =====
==== 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
 
'''View cargo/commander/gunner/pilot''' - Fire Geometry – Actualy useless LODs, till Engin enables soldiers fire from vehicle cargo...


===== VIEW Geometry =====
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...


This LOD is used for AI view occlusion – what can the AI soldier see. It is also used for occlusion detection for scene drawing optimalisation.
==== 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.


WARRNING: If there will be not present component in view or fire geometry, players cursor will be not able to activate action menu (for example climb ladder)
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.


AI cannot see through this geometry. If you don´t model this LOD, AI will use collision 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'''  
'''VIEW Cargo/Commander/Gunner/Pilot - Geometry'''


Same as previous LOD, but for first person AI view.
Same as previous LOD, but for first person AI view.




==== ShadowVolume LOD ====
=== 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 1000 triangles.


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 1000faces, except special agreed cases. (broken houses volume)
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 896: Line 810:
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''' (there will be latter resolution variants)
LOD must be nammed '''ShadowVolume 0.000''','''ShadowVolume 10.000''' or '''ShadowVolume 1000.000'''
 
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 view resol LODs. You have to enable them also in config:
* Shadow volume 0 is the main stencil shadow. It shuould have less than 1000 triangles.
viewDriverShadow = true;
* Shadow Volume 10 is optimised stencil shadow LOD with as few triangles as possible.
viewGunnerShadow = true;
* 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)
viewCargoShadow = true;


OFP engine can also cast shadows using '''SHADOW BUFFER'''. This is controled over model property sbsource and prefershadowvolume in geometry LOD.  
All faces must have property "Enable shadow", otherwise they will not cast shadow - menu Face properties (E).


For trees and vegetration can be also used so called '''HYBRID SHADOW'''. This is controled over model property Shadow=hybrid in Geometry LOD
If the Volume LOD is missing, HW cannot cast shadows and there is no other alternative, engine will use resolution LODs.
Those shadows are cast on all models exept model itself. Trees can use special shaders for leaves that simulates self shadowing.
{{Name|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:
<syntaxhighlight lang="cpp">
viewDriverShadow = true;
viewGunnerShadow = true;
viewCargoShadow = true;
</syntaxhighlight>


==== HitPoints ====
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.


Modeled parts (selections) in this LOD represent valuable parts of the model that can be hit and affect the model in-game features. (class configuration)
=== 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 ====
=== 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's''' 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 trasnform them by the surface. Wrong possitioned points can cause “levitation” or “immerge the model under ground”


=== Memory ===


==== 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 ===


Contains '''only vertices's'''. 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.
Important LOD for AI path finding. AI can find its way through objects (such as buildings) Specific named selections are based on class definition.
 
 
==== 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.
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 ===


==== Roadways ====
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 in made of polygons (normals are useless here) Textures are used for material sound definition (+config definition)
 
 
 
 
==== Edit LODs ====


----
Model is made of polygons (normals are useless here) Textures are used for material sound definition (+config definition)


Working LOD for editation. It is removed during binarization. (UV set unfold, additional shadow volume levels...)
=== Edit LODs ===


Working LOD for editing. It is removed during binarization. (UV set unfold, additional shadow volume levels...)


=== Automation ===


----
== Automation ==


You can record MACROS and launch SCRIPTS
You can record MACROS and launch SCRIPTS.


====Macro====
=== 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.


During recording is active, O2 captures all mouse or keyboard actions. If you want to stop recording, deactivate the red button.
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 987: Line 888:


* 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.
* 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.
* 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 {{Controls|Alt|Tab}} or {{Controls|Ctrl|Alt|Delete}} (and Cancel).
* Mouse Wheel is not supported.


* O2 Macro recorder cannot records 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.
=== List of Shortcuts ===


* In File Open Dialog, active the item by the Enter key (not mouse). Doubleclicks can cause problem sometimes
{|
! Input
! Description
|-
| {{Controls|F2}}
| Select object
|-
| {{Controls|F3}}
| Select faces
|-
| {{Controls|F4}}
| Select vertices
|-
| {{Controls|F5}}
| Recalculate normals
|-
| {{Controls|F6}}
| Create face from selected vertices
|-
| {{Controls|F7}}
| Create box
|-
| {{Controls|F8}}
| Create cylinder
|-
| {{Controls|F9}}
| 3-side view + 3D preview
|-
| {{Controls|~}}
| 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
|-
| {{Controls|A}}
| Set/modify texture mode
|-
| {{Controls|B}}
| Background mapping: Use to apply texture loaded using Set/modify “texture mode” on selected objects/faces.
|-
| {{Controls|C}}
| Center pin on selection
|-
| {{Controls|D}}
| Remove faces
|-
| {{Controls|E}}
| Face properties: bring up face properties
|-
| {{Controls|F}}
| Show/Hide back oriented faces
|-
| {{Controls|G}}
| Bring up Gizmo mapping dialog
|-
| {{Controls|I}}
| Smooth edges
|-
| {{Controls|M}}
| Bring up Map Dialog
|-
| {{Controls|O}}
| Object select mode
|-
| {{Controls|P}}
| Flatten points: bring up the “flatten” dialog
|-
| {{Controls|Q}}
| Uncross: cross or uncross selected edges
|-
| {{Controls|R}}
| move pin
|-
| {{Controls|S}}
| Viewer Focus selection
|-
| {{Controls|T}}
| Select surface mode
|-
| {{Controls|U}}
| Sharp edges
|-
| {{Controls|V}}
| Vertex selection mode
|-
| {{Controls|W}}
| reverse: inverse normals
|-
| {{Controls|X}}
| Lock X movement: selected objects can only be moved in X direction
|-
| {{Controls|Y}}
| Lock Y movement: selected objects can only be moved in Y direction
|-
| {{Controls|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.
|-
| {{Controls|Insert}}
| Create vertex
|-
| {{Controls|Delete}}
| Delete selection
|-
| {{Controls|Space}}
| Center on pin
|-
| {{Controls|Num*}}
| Center camera on selection
|-
| {{Controls|Num/}}
| Triangulate: change 4-point surfaces into 2 3-point surfaces
|-
| {{Controls|Num+}}
| Camera zoom in
|-
| {{Controls|Num-}}
| Camera zoom out
|}


* 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.
'''Shift+Keys'''
 
 
====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''' Vertice 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'''
<nowiki>*</nowiki> 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
Bound to 2 functions, using may cause problems


'''c''' Use Pin toggle: all operations now act at the position of the pin.  
{|
 
! Input
press “Instert” to create a new vertex at the position of the pin.
! Description
 
|-
'''e''' Bring up Vertes Properties dialog
| {{Controls|C}}
 
| Use Pin toggle: all operations now act at the position of the pin.
'''d''' Weld selected vertices (merge selected vertices to a single vertex)
|-
 
| {{Controls|Insert}}
'''m''' same as Shift+D
| Create a new vertex at the position of the pin.
 
|-
'''o''' Bring up Modelling Coloration dialog
| {{Controls|E}}
 
| Bring up Vertex Properties dialog
'''r''' Turn Edge  
|-
 
| {{Controls|D}}
'''w''' Bring up Linear Deform dialog
| Weld selected vertices (merge selected vertices to a single vertex)
 
|-
'''Delete''' Try to delete vertex, close polygon, keep UV mapping
| {{Controls|M}}
| same as {{Controls|Shift|D}}
|-
| {{Controls|O}}
| Bring up Modelling Coloration dialog
|-
| {{Controls|R}}
| Turn Edge
|-
| {{Controls|W}}
| Bring up Linear Deform dialog
|-
| {{Controls|Delete}}
| Try to delete vertex, close polygon, keep UV mapping
|}




'''Ctrl+Keys'''
'''Ctrl+Keys'''


'''1''' Toggle Named Property window
{|
 
! Input
'''a''' Select all
! Description
 
|-
'''b''' Background from face (inverse “b” key function)
| {{Controls|1}}
 
| Toggle Named Property window
'''c''' Copy
|-
 
| {{Controls|A}}
'''d''' Deselect
| Select all
 
|-
'''e''' Toggle selection toolbar
| {{Controls|B}}
 
| Background from face (inverse {{Controls|B}} key function)
'''g''' Does not work: Toggle Grid
|-
 
| {{Controls|C}}
'''h''' Hide selection
| Copy
 
|-
'''i''' Invert selection
| {{Controls|D}}
 
| Deselect
'''l''' Lock selection
|-
 
| {{Controls|E}}
'''n''' New
| Toggle selection toolbar
 
|-
'''o''' Open file
| {{Controls|G}}
 
| ''Does not work: Toggle Grid''
'''r''' ''Does not work: Lock camera position''
|-
 
| {{Controls|H}}
'''s''' Save file
| Hide selection
 
|-
'''t''' Toggle default toolbar
| {{Controls|I}}
 
| Invert selection
'''u''' Bring up Unwrap dialog
|-
 
| {{Controls|L}}
'''v''' Paste
| Lock selection
 
|-
'''w''' Select only one side (front/back toggle)
| {{Controls|N}}
 
| New
'''x''' Cut
|-
 
| {{Controls|O}}
'''y''' Redo
| Open file
 
|-
'''z''' Undo
| {{Controls|R}}
| ''Does not work: Lock camera position''
|-
| {{Controls|S}}
| Save file
|-
| {{Controls|T}}
| Toggle default toolbar
|-
| {{Controls|U}}
| Bring up Unwrap dialog
|-
| {{Controls|V}}
| Paste
|-
| {{Controls|W}}
| Select only one side (front/back toggle)
|-
| {{Controls|X}}
| Cut
|-
| {{Controls|Y}}
| Redo
|-
| {{Controls|Z}}
| Undo
|}




'''Ctrl+Shift+Keys'''
'''Ctrl+Shift+Keys'''


'''h''' Unhide selection
{|
 
! Input
'''l''' Unlock selection
! Description
 
|-
'''Home''' Move face to first in order
| {{Controls|H}}
 
| Unhide selection
'''End''' Move face to last in order
|-
 
| {{Controls|L}}
'''PgUp''' Move face up in order
| Unlock selection
 
|-
'''PgDn''' Move face down in order
| {{Controls|Home}}
 
| Move face to first in order
<nowiki>*</nowiki> Center view on selection
|-
| {{Controls|End}}
| Move face to last in order
|-
| {{Controls|PageUp}}
| Move face up in order
|-
| {{Controls|PageDown}}
| Move face down in order
|-
| {{Controls|<nowiki>*</nowiki>}}
| Center view on selection
|}




'''Alt+Keys'''
'''Alt+Keys'''


'''Backspace''' Undo
{|
 
! Input
'''h''' Toggle History window
! Description
 
|-
'''l''' Bound to 2 functions, using may cause problems
| {{Controls|Backspace}}
Toggle LOD window
| Undo
''Does not work: Toggle Named selections window''
|-
 
| {{Controls|H}}
'''m''' Toggle Mass window
| Toggle History window
 
|-
'''p''' Toggle Named Properties window
| {{Controls|L}}
 
| Bound to 2 functions, using may cause problems
'''s''' Split window in 4 views
* Toggle LOD window
 
* ''Does not work: Toggle Named selections window''
'''t''' Toggle Texture library window
|-
 
| {{Controls|M}}
<nowiki>*</nowiki> Center all views on selection
| Toggle Mass window
|-
| {{Controls|P}}
| Toggle Named Properties window
|-
| {{Controls|S}}
| Split window in 4 views
|-
| {{Controls|T}}
| Toggle Texture library window
|-
| {{Controls|<nowiki>*</nowiki>}}
| Center all views on selection
|}




'''Mouse movement operations'''
'''Mouse movement operations'''


'''LMB''' (Left Mouse Button) Make selection
{|
 
! Input
'''RMB''' (Right Mouse Button) Move selection
! Description
 
|-
'''Ctrl+LMB''' Add to selection
| {{Controls|LMB}}
 
| Make selection
'''Ctrl+Shift+LMB''' Remove from selection
|-
 
| {{Controls|RMB}}
'''Alt+LMB''' Move camera
| Move selection
 
|-
'''Ctrl+LMB''' Rotate camera
| {{Controls|Ctrl|LMB}}
 
| Add to selection
'''Shift+RMB''' Duplicate (clone) selected
|-
 
| {{Controls|Ctrl|Shift|LMB}}
'''Ctrl+RMB''' Rotate selection
| Remove from selection
 
|-
'''Ctrl+Shift+RMB''' Scale selection
| {{Controls|Alt|LMB}}
| Move camera
|-
| {{Controls|Ctrl|LMB}}
| Rotate camera
|-
| {{Controls|Shift|RMB}}
| Duplicate (clone) selected
|-
| {{Controls|Ctrl|RMB}}
| Rotate selection
|-
| {{Controls|Ctrl|Shift|RMB}}
| Scale selection
|}




[[category:Armed Assault]]
{{GameCategory|arma1|Official Tools}}
[[Category:ArmA: Addon Editing]]

Latest revision as of 23:46, 17 January 2026

Basic setup

External Viewer: <ArmaDirectory>\<ArmaExe>.exe -window -buldozer -noland e.g

"C:\Program Files\Bohemia Interactive\Armed Assault\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


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.

Input Description
↹ Tab cycle between viewports (or click in any viewport with mouse to set the active viewport)
scroll in viewports
Ctrl + /// faster scrolling in viewports
Alt + Right Mouse Button rotate camera (only works in 3D Preview viewport)
Alt + Left Mouse Button scroll in viewports
Alt + Left Mouse Button + Right Mouse Button 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)

Buldozer Navigation

Input Description
W E S /// pan camera (same as Left Mouse Button drag)
A D rotate camera
/// (numpad) rotate object (same as Right Mouse Button drag)
Ctrl + camera movements slower movements
NUM 5 reset camera and center object
NUM +/NUM - zoom +/-
[/] decrease/increase speed of RTM animations
⇧ Shift + [/] set animation phase
Return ↵/Middle Mouse Button cycle through animations defined in model.cfg
cycle backwards through animations defined in model.cfg
RWin ⊞ + U/I change weather
RWin ⊞ + T/Y change time of day
RWin ⊞ + X toggle display of textures

Buldozer Menu

Start/Restart - launch or restart Buldozer viewer

  • Other
    • 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 > Highlight - 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.

Input Description
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 Left Mouse Button 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.

Input Description
Insert creates a new point at the cursors location. If the pin is activated, the point will be created at the pins location.
Left Mouse Button selects objects (drag to select an area)
Ctrl + Left Mouse Button adds to selection
Ctrl + ⇧ Shift + Left Mouse Button subtracts from selection
Del 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 + Del removes vertices and merges adjacent faces; preserves UV coords in most situations.
Alt + 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:

Input Description
F2 O select whole objects
F4 V select vertices
T select polygons
Z zoom mode
Right Mouse Button drag to move selection
⇧ Shift + Right Mouse Button drag to create a copy of the selection
Ctrl + Right Mouse Button drag to rotate selection, activate pin to rotate around pin location
Ctrl + ⇧ Shift + Right Mouse Button 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

Ctrl + X/Ctrl + Y/Ctrl + 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

{{Feature|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 is 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)

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

Input Description
Ctrl + H hide selection
Ctrl + I invert selection
Ctrl + ⇧ Shift + 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.

Input Description
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 is 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)
/// Move with the rectangle.
⇧ Shift + /// Change rectangle size.
Left Mouse Button Select rectangle with texture.
Right Mouse Button Context menu.
Ctrl + Left Mouse Button Outside the rectangle – Rotation Mode (Note: Beware of non-planar mapping).
Ctrl + Left Mouse Button On the edge – Scale.
Ctrl + Left Mouse Button 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.
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.

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.

Input Description
Double Left Mouse Button
  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 + Double Left Mouse Button
  1. at texture and material - make selection of the mapped surfaces
  2. at p3d – selects all proxies with this path
Ctrl + ⇧ Shift + Double Left Mouse Button
  1. texture/material – changes texture on selected faces
  2. only for p3d - File -> Open selected *.p3d
⇧ Shift + Double Left Mouse Button
  1. only for p3d – adds proxy in scene
Drag and Drop
  1. texture/material – same as Ctrl + ⇧ Shift + Double Left Mouse Button – 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: Armed Assault: 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 and 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. Left Mouse Button 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, Left Mouse Button 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
  • Weights assignment is used for skinning animated content. It is often done in external animation tool and imported in O2
Animated selections should have a maximum name length of 32 letters, these selections should be in all animated LODs.

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 Half Lighted Fully Lighted
emissive[] = { 1, 1,1, 1 };
diffuse[] = { 0, 0, 0, 1 };
ambient[] = { 0, 0, 0, 1 };
diffuse[] = { 0.5, 0.5, 0.5, 1 };
forcedDiffuse[] = { 0.5, 0.5, 0.5, 1 };
diffuse[] = { 0, 0, 0, 1 };
forcedDiffuse[] = { 1, 1, 1, 1 };
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
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.

  • Correct character animation has step and xstep properties
  • looping animation ANDs with key frame 1.000


User animations

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...). 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 Return ↵, or Middle Mouse Button 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. Operation Flashpoint 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 not supported.

List of Shortcuts

Input Description
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
Del Delete selection
Space Center on pin
NUM * Center camera on selection
NUM / Triangulate: change 4-point surfaces into 2 3-point surfaces
NUM + Camera zoom in
NUM - Camera zoom out


Shift+Keys

Bound to 2 functions, using may cause problems

Input Description
C Use Pin toggle: all operations now act at the position of the pin.
Insert 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
Del Try to delete vertex, close polygon, keep UV mapping


Ctrl+Keys

Input Description
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

Input Description
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
↡ PgDown Move face down in order
* Center view on selection


Alt+Keys

Input Description
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

Input Description
Left Mouse Button Make selection
Right Mouse Button Move selection
Ctrl + Left Mouse Button Add to selection
Ctrl + ⇧ Shift + Left Mouse Button Remove from selection
Alt + Left Mouse Button Move camera
Ctrl + Left Mouse Button Rotate camera
⇧ Shift + Right Mouse Button Duplicate (clone) selected
Ctrl + Right Mouse Button Rotate selection
Ctrl + ⇧ Shift + Right Mouse Button Scale selection