Quick camo selection definition guide: Difference between revisions
m (more text) |
m (more text) |
||
Line 73: | Line 73: | ||
NamedSelectionsOverview.bio2s (create a text file, paste the following content, save as the said filename with bio2s as extension and move to the O2Scripts folder of ObjectBuilder) | NamedSelectionsOverview.bio2s (create a text file, paste the following content, save as the said filename with bio2s as extension and move to the O2Scripts folder of ObjectBuilder) | ||
#include "std\lodNames.inc" | |||
_createOverviewForCurrentLOD = | |||
{ | |||
private["_object"]; | |||
_object = _this select 0; | |||
{ | |||
private["_selectionName","_textures","_selection","_selectedFaces"]; | |||
_selectionName = _x; | |||
_textures = []; | |||
_selection = _object loadSelection _selectionName; | |||
_selectedFaces = getSelectedFaces _selection; | |||
{ | |||
private["_face","_texture"]; | |||
_face = _x; | |||
_texture = getTexture (_object face _face); | |||
if (!(_texture in _textures)) then | |||
{ | |||
_textures set [count _textures,_texture]; | |||
}; | |||
} forEach _selectedFaces; | |||
console<<"_selectionName: "<<_selectionName<<eoln; | |||
{ | |||
private["_texture"]; | |||
_texture = _x; | |||
if (_texture != "") then | |||
{ | |||
console<<"_textures: "<<_texture<<eoln; | |||
}; | |||
} forEach _textures; | |||
} forEach (getSelections _object); | |||
}; | |||
_sourcePath = this@0; | _sourcePath = this@0; | ||
Line 88: | Line 129: | ||
_currentResolution = _resolutions @ _i; | _currentResolution = _resolutions @ _i; | ||
if (IS_LOD_RESOLUTION(_currentResolution)) then | if (IS_LOD_RESOLUTION(_currentResolution)) then | ||
{ | { | ||
console<<"_currentResolution: "<<str _currentResolution<<eoln; | console<<"_currentResolution: "<<str _currentResolution<<eoln; | ||
Revision as of 12:10, 18 October 2016
Intention
This guide describes a process to easily create camo selections for models to allow reskinning even for a large amount of assets.
Scope
1. This is not a beginners guide. Please refer to related information section at the end to learn the basics. 2. This is not about creating textures. 3. This is not about explaining tools usage. 4. This is not explaining config basics. 5. This does not (yet) include the definition of selections for materials.
What are camo selections
Camo selections are term to describe named selections to be used to apply different textures to a model. This can be done by either means of config or [[setObjectTexture|scripting].
Process
Get texture list
Requirement: You need the paid subscriber versions of mikero's tools. Namely dep3d.
DeP3d [-options..] AnyFolder | Anyfile[.p3d] | any list | "comma,separated,list" Options ... -FL[nn] list files (see readme)
Sample calls:
DeP3d.exe -P -FL p:\namespace\path\modelName.p3d DeP3d.exe -P -FL p:\namespace\path\ >> TextureListForPath.txt
Alternatives:
- Get the textures assigned to the model via ObjectBuilder or some other tool.
- Use a hex/text editor and search for paa.
Update model
Model.cfg
See also: ArmA: Howto Model Config - CfgModels explanations - sections
Config
See also: CfgVehicles_Config_Reference#hiddenSelections
IMPORTANT: Define the correct loading order via requiredAddons in the cfgPatches header to make sure your definition overwrites potential other definitions.
Create named selections overview
If a model already has named selections defined, you can use this batch script to list them/log them to file.
ListNamedSelectionsMapping.bat
// Adjust path cd /D "c:\Steam\SteamApps\common\Arma 3 Tools\ObjectBuilder\" O2Script.exe -a O2Scripts\NamedSelectionsOverview.bio2s p:\namespace\path\modelName.p3d >> NamedSelectionsOverview.txt exit
Sample output:
p:\namespace\path\modelName.p3d badge namespace\path\textureName.paa p:\namespace\path\modelName.p3d camo namespace\path\textureName.paa p:\namespace\path\modelName.p3d ranks_shoulder namespace\path\textureName.paa
NamedSelectionsOverview.bio2s (create a text file, paste the following content, save as the said filename with bio2s as extension and move to the O2Scripts folder of ObjectBuilder)
#include "std\lodNames.inc" _createOverviewForCurrentLOD = { private["_object"]; _object = _this select 0; { private["_selectionName","_textures","_selection","_selectedFaces"]; _selectionName = _x; _textures = []; _selection = _object loadSelection _selectionName; _selectedFaces = getSelectedFaces _selection; { private["_face","_texture"]; _face = _x; _texture = getTexture (_object face _face); if (!(_texture in _textures)) then { _textures set [count _textures,_texture]; }; } forEach _selectedFaces; console<<"_selectionName: "<<_selectionName<<eoln; { private["_texture"]; _texture = _x; if (_texture != "") then { console<<"_textures: "<<_texture<<eoln; }; } forEach _textures; } forEach (getSelections _object); }; _sourcePath = this@0; _p3d = newLODObject; _p3d loadP3D _sourcePath; _LODs = getObjects _p3d; _resolutions = getResolutions _p3d; console=openStandardIO; for "_i" from 0 to ((count _p3d) - 1) do { _currentLOD = _LODs @ _i; _currentResolution = _resolutions @ _i; if (IS_LOD_RESOLUTION(_currentResolution)) then { console<<"_currentResolution: "<<str _currentResolution<<eoln; [_currentLOD] call _createOverviewForCurrentLOD; }; };
Related information
Videos
- Retexture tutorial Part 1
- Re-Texture Tutorial ♦ Part 1: Starting with the basics
- Modding Tutorial 1 - Retexturing & Config
- How to make and import custom textures into Arma 3 via Editor