setObjectTexture: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
No edit summary
 
(29 intermediate revisions by 3 users not shown)
Line 28: Line 28:
|gr1= Object Manipulation
|gr1= Object Manipulation


|descr= Applies given texture to object's selection. See [[Retexturing with setObjectTexture]] for a short tutorial.
|descr= Applies given texture to object's selection. See also [[Procedural Textures]] and [[Retexturing with setObjectTexture]].
{{Feature|Informative|
{{Feature|informative|
* Not all objects can be textured this way. To find out, run [[getObjectTextures]] command on an object. Empty array {{ic|[]}} usually indicates it cannot be textured.
* Not all objects can be textured this way. To find out, run [[getObjectTextures]] command on an object. Empty array <sqf inline>[]</sqf> usually indicates it cannot be textured.
* All textures must have resolution 2^x / 2^y (16x16, 16x32, 64x256, 512x512, ...). The largest texture size commonly supported by graphics cards and RV engine is 4096x4096
* All textures must have a resolution of 2<sup>a</sup> &times; 2<sup>b</sup> (e.g. 16&times;16, 16&times;32, 64&times;256, 512&times;512, ...). The largest texture size supported by the RV engine is 4096&times;4096.
* Supported formats: .pac, .paa, .jpg, .jpeg, .ogg, .ogv}}
* Supported formats: .pac, .paa, .jpg, .jpeg, .ogg, .ogv
}}


|mp= See [[setObjectTextureGlobal]]
|mp= See [[setObjectTextureGlobal]].


|s1= object [[setObjectTexture]] [selectionNumber, texture]
|s1= object [[setObjectTexture]] [selection, texture]


|p1= object: [[Object]]
|p1= object: [[Object]]


|p2= selectionNumber: [[Number]] - Index of the selection. It is defined in the [[CfgVehicles_Config_Reference#hiddenSelections|hiddenselection]][]<nowiki>=</nowiki>{} array in the vehicle's config (starting with 0).
|p2= selection: [[Number]] or {{GVI|arma3|2.10|size= 0.75}} [[String]] - index of the selection. It is defined in the [[CfgVehicles Config Reference#hiddenSelections|hiddenSelections]] array in the vehicle's config (starting with 0). If a string is given, it referes to a hiddenSelection name or clan selection instead of an index.


|p3= texture: [[String]] - Path to texture
|p3= texture: [[String]] - path to texture. Since {{GVI|arma3|2.20}} using '''"#reset"''' would reset to default texture.


|r1= [[Nothing]]
|r1= [[Nothing]]


|x1= <code>_objectname [[setObjectTexture]] [0, "\pboname\texture.paa"];
|x1= <sqf>
_objectname [[setObjectTexture]] [1, "\pboname\texture2.paa"];</code>
_objectname setObjectTexture [0, "\pboname\texture.paa"];
_objectname setObjectTexture [1, "\pboname\texture2.paa"];
</sqf>
 
|x2= <sqf>_obj setObjectTexture [0, "#(rgb,8,8,3)color(1,0,0,1)"];</sqf>


|x2= <code>_obj [[setObjectTexture]] [0, "#(rgb,8,8,3)color(1,0,0,1)"];</code>
|x3= <sqf>_obj setObjectTexture [0, "#(argb,512,512,1)r2t(rendersurface,1.333)"];</sqf>


|x3= <code>_obj [[setObjectTexture]] [0, "#(argb,512,512,1)r2t(rendersurface,1.333)"];</code>
|x4= Disable randomization before applying a texture to a vehicle in the Editor (if it is a vehicle that supports randomization):
<sqf>
this setVariable ["BIS_enableRandomization", false];
this setObjectTexture [0,"#(rgb,8,8,3)color(1,0,0,1)"];
</sqf>


|x4= When applying custom texture in Editor on vehicles that have randomization enabled ([[Arma 3 Assets]]), disable randomization first:<code>this [[setVariable]] ["BIS_enableRandomization", [[false]]];
|x5= The {{hl|"clan"}} selection can be used to apply a texture to the areas that usually display the [[squad.xml]] logo:
this [[setObjectTexture]] [0,"#(rgb,8,8,3)color(1,0,0,1)"];</code>
<sqf>MyVehicle setObjectTexture ["clan", "\a3\missions_f_epa\data\img\orbat\b_111_texture_ca.paa"];</sqf>


|seealso= [[getObjectTextures]] [[setObjectTextureGlobal]] [[setObjectMaterial]] [[getObjectMaterials]], [[setObjectMaterialGlobal]], [[forceFlagTexture]]
|seealso= [[getObjectTextures]] [[setObjectTextureGlobal]] [[setObjectMaterial]] [[getObjectMaterials]] [[setObjectMaterialGlobal]] [[forceFlagTexture]]
}}
}}


<dl class="command_description">
{{Note
 
|user= Benargee
<dt></dt>
|timestamp= 20140825222700
<dd class="notedate">Posted on December 19, 2009 - 23:16</dd>
|text= Also works with absolute path and .jpg files.
<dt class="note">[[User:Lou_Montana|Lou Montana]]</dt>
<sqf>
<dd class="note">
_obj setObjectTexture [0, "C:\Folder\Folder\Texture.paa"];
Instead of bitmaps, procedural textures can be used.<br>
_obj setObjectTexture [0, "C:\Folder\Folder\Texture.jpg"];
The syntax for those is '''#(argb,8,8,3)color(R,G,B,A)''', where R,G,B stands for Red, Green, Blue, and A stands for Alpha, all values can be anything between 0 and 1 (including decimals). e.g.
</sqf>
<code>_obj [[setObjectTexture]] [0,'#(argb,8,8,3)color(0,1,0,1)']</code>
would color myObj in flat green. See [[Procedural Textures]] for more details.
<dd class="notedate">Posted on August 25, 2014 - 22:27 (EST)</dd>
<dt class="note">[[User:Benargee|Benargee]]</dt>
<dd class="note">
Also works with absolute path and .jpg files.
<code>_obj [[setObjectTexture]] [0, "C:\Folder\Folder\Texture.paa"];
_obj [[setObjectTexture]] [0, "C:\Folder\Folder\Texture.jpg"];</code>
Texture can also be blank:
Texture can also be blank:
<code>_obj [[setObjectTexture]] [2,""];</code>
<sqf>_obj setObjectTexture [2,""];</sqf>
This will make the texture selection invisible on certain units without an error message. In some cases this is a desirable effect
This will make the texture selection invisible on certain units without an error message. In some cases this is a desirable effect
}}


<dt></dt>
{{Note
<dd class="notedate">Posted on March 18, 2015 - 03:09 (UTC)</dd>
|user= Longbow
<dt class="note">[[User:Longbow|Longbow]]</dt>
|timestamp= 20150318030900
<dd class="note">
|text= It is also possible to apply texture to unit's backpack, as it also has hidden selection (unfortunately does not work for vests)
It is also possible to apply texture to unit's backpack, as it also has hidden selection (unfortunately does not work for vests)
<sqf>backpackContainer player setObjectTexture [0,"#(argb,8,8,3)color(0,0,0,1)"]</sqf>
<code>(backpackContainer player) setObjectTexture [0,'#(argb,8,8,3)color(0,0,0,1)']</code>
Also keep in mind that player's custom texture is being reset when you open BIS Arsenal (even without changing any gear)
Also keep in mind that player's custom texture is being reset when you open BIS Arsenal (even without changing any gear)
</dd>
}}


<dt></dt>
{{Note
<dd class="notedate">Posted on May 13, 2015 - 14:37 (UTC)</dd>
|user= Moerderhoschi
<dt class="note">[[User:Moerderhoschi|Moerderhoschi]]</dt>
|timestamp= 20150513143700
<dd class="note">
|text= You can also use the game's internal skins: {{Link|http://forums.bistudio.com/showthread.php?169734-paint-MH-9-different-colour|List of MH9 Skins}}
You can also use the gameinternal skins: {{ExternalLink|link= http://forums.bistudio.com/showthread.php?169734-paint-MH-9-different-colour|text= List of MH9 Skins}} <code>_obj [[setObjectTexture]] [0, "\a3\air_f\heli_light_01\data\skins\heli_light_01_ext_digital_co.paa"];</code>
<sqf>_obj setObjectTexture [0, "\a3\air_f\heli_light_01\data\skins\heli_light_01_ext_digital_co.paa"];</sqf>
</dd>
}}


<dt><dt>
{{Note
<dd class="notedate">Posted on October 24, 2016 - 12:09 (UTC)</dd>
|user= Killzone_Kid
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
|timestamp= 20161024120900
<dd class="note">
|text= Sometimes it could be necessary to set default material on an object for the texture to take effect:
Sometimes it could be necessary to set default material on an object for the texture to take effect:
<sqf>
<code>_block = [[createVehicle]] ["Land_VR_Block_02_F", [[player]] [[getPos]] [20, [[getDir]] [[player]]], [], 0, "CAN_COLLIDE"];
_block = createVehicle ["Land_VR_Block_02_F", player getPos [20, getDir player], [], 0, "CAN_COLLIDE"];
_block [[setObjectMaterial]] [0, "\a3\data_f\default.rvmat"];
_block setObjectMaterial [0, "\a3\data_f\default.rvmat"];
_block [[setObjectTexture]] [0, "#(rgb,8,8,3)color(1,0,0,1)"];</code>
_block setObjectTexture [0, "#(rgb,8,8,3)color(1,0,0,1)"];
</sqf>
Courtesy of '''[[User:Larrow|Larrow]]'''
Courtesy of '''[[User:Larrow|Larrow]]'''
</dd>
}}
 
</dl>

Latest revision as of 00:20, 28 October 2024

Hover & click on the images for description

Description

Description:
Applies given texture to object's selection. See also Procedural Textures and Retexturing with setObjectTexture.
  • Not all objects can be textured this way. To find out, run getObjectTextures command on an object. Empty array [] usually indicates it cannot be textured.
  • All textures must have a resolution of 2a × 2b (e.g. 16×16, 16×32, 64×256, 512×512, ...). The largest texture size supported by the RV engine is 4096×4096.
  • Supported formats: .pac, .paa, .jpg, .jpeg, .ogg, .ogv
Multiplayer:
See setObjectTextureGlobal.
Groups:
Object Manipulation

Syntax

Syntax:
object setObjectTexture [selection, texture]
Parameters:
object: Object
selection: Number or Arma 3 logo black.png2.10 String - index of the selection. It is defined in the hiddenSelections array in the vehicle's config (starting with 0). If a string is given, it referes to a hiddenSelection name or clan selection instead of an index.
texture: String - path to texture. Since Arma 3 logo black.png2.20 using "#reset" would reset to default texture.
Return Value:
Nothing

Examples

Example 1:
_objectname setObjectTexture [0, "\pboname\texture.paa"]; _objectname setObjectTexture [1, "\pboname\texture2.paa"];
Example 2:
_obj setObjectTexture [0, "#(rgb,8,8,3)color(1,0,0,1)"];
Example 3:
_obj setObjectTexture [0, "#(argb,512,512,1)r2t(rendersurface,1.333)"];
Example 4:
Disable randomization before applying a texture to a vehicle in the Editor (if it is a vehicle that supports randomization):
this setVariable ["BIS_enableRandomization", false]; this setObjectTexture [0,"#(rgb,8,8,3)color(1,0,0,1)"];
Example 5:
The "clan" selection can be used to apply a texture to the areas that usually display the squad.xml logo:
MyVehicle setObjectTexture ["clan", "\a3\missions_f_epa\data\img\orbat\b_111_texture_ca.paa"];

Additional Information

See also:
getObjectTextures setObjectTextureGlobal setObjectMaterial getObjectMaterials setObjectMaterialGlobal forceFlagTexture

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Benargee - c
Posted on Aug 25, 2014 - 22:27 (UTC)
Also works with absolute path and .jpg files.
_obj setObjectTexture [0, "C:\Folder\Folder\Texture.paa"]; _obj setObjectTexture [0, "C:\Folder\Folder\Texture.jpg"];
Texture can also be blank:
_obj setObjectTexture [2,""];
This will make the texture selection invisible on certain units without an error message. In some cases this is a desirable effect
Longbow - c
Posted on Mar 18, 2015 - 03:09 (UTC)
It is also possible to apply texture to unit's backpack, as it also has hidden selection (unfortunately does not work for vests)
backpackContainer player setObjectTexture [0,"#(argb,8,8,3)color(0,0,0,1)"]
Also keep in mind that player's custom texture is being reset when you open BIS Arsenal (even without changing any gear)
Moerderhoschi - c
Posted on May 13, 2015 - 14:37 (UTC)
You can also use the game's internal skins: List of MH9 Skins
_obj setObjectTexture [0, "\a3\air_f\heli_light_01\data\skins\heli_light_01_ext_digital_co.paa"];
Killzone_Kid - c
Posted on Oct 24, 2016 - 12:09 (UTC)
Sometimes it could be necessary to set default material on an object for the texture to take effect:
_block = createVehicle ["Land_VR_Block_02_F", player getPos [20, getDir player], [], 0, "CAN_COLLIDE"]; _block setObjectMaterial [0, "\a3\data_f\default.rvmat"]; _block setObjectTexture [0, "#(rgb,8,8,3)color(1,0,0,1)"];
Courtesy of Larrow