setObjectTexture: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "_{10,} " to "")
No edit summary
 
(64 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command


| ofpr |Game name=
|game1= ofp
|version1= 1.75


|1.75|Game version=
|game2= ofpe
|version2= 1.00


|arg= global |Multiplayer Arguments=
|game3= arma1
|version3= 1.00


|eff= local |Multiplayer Effects=
|game4= arma2
|version4= 1.00


|gr1= Object Manipulation |GROUP1=
|game5= arma2oa
|version5= 1.50


| Textures object selection with texture named in array.  
|game6= tkoh
|version6= 1.00


Array has the form [selectionNumber, "Texture"].
|game7= arma3
<br>
|version7= 0.50
The selection number is defined through the [[CfgVehicles_Config_Reference#hiddenSelections|hiddenselection]][]<nowiki>=</nowiki>{} array in the vehicle's config (starting with 0).<br><br>
'''NOTES''':
* Not all objects could 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 resolution 2^x / 2^y (e.g. 16 / 16, 16 / 32, 64 / 256, 512 / 512, etc). The largest texture size commonly supported by graphics cards and RV engine is 4096x4096
* Supported formats: .pac, .paa, .jpg, .jpeg, .ogg, .ogv|DESCRIPTION=


| object '''setObjectTexture''' [selectionNumber,texture] |SYNTAX=
|arg= global


|p1= object: [[Object]] |PARAMETER1=
|eff= local
|p2= [selectionNumber,texture]: [[Array]] |PARAMETER2=
|p3= selectionNumber: [[Number]] |PARAMETER3=
|p4= texture: [[String]] |PARAMETER4=


| [[Nothing]] |RETURNVALUE=
|gr1= Object Manipulation
 
|x1= <code>_objectname [[setObjectTexture]] [0, "\pboname\texture.paa"];
_objectname [[setObjectTexture]] [1, "\pboname\texture2.paa"];</code> |EXAMPLE1=


|x2= <code>_obj [[setObjectTexture]] [0, "#(rgb,8,8,3)color(1,0,0,1)"];</code> |EXAMPLE2=
|descr= Applies given texture to object's selection. See also [[Procedural Textures]] and [[Retexturing with setObjectTexture]].
{{Feature|informative|
* 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 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
}}
 
|mp= See [[setObjectTextureGlobal]].
 
|s1= object [[setObjectTexture]] [selection, texture]
 
|p1= object: [[Object]]
 
|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. Since {{GVI|arma3|2.20}} using '''"#reset"''' would reset to default texture.
 
|r1= [[Nothing]]


|x3= <code>_obj [[setObjectTexture]] [0, "#(argb,512,512,1)r2t(rendersurface,1.333)"];</code> |EXAMPLE3=
|x1= <sqf>
_objectname setObjectTexture [0, "\pboname\texture.paa"];
_objectname setObjectTexture [1, "\pboname\texture2.paa"];
</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]]];
|x2= <sqf>_obj setObjectTexture [0, "#(rgb,8,8,3)color(1,0,0,1)"];</sqf>
this [[setObjectTexture]] [0,"#(rgb,8,8,3)color(1,0,0,1)"];</code> |EXAMPLE4=


| [[getObjectTextures]], [[setObjectTextureGlobal]], [[setObjectMaterial]], [[getObjectMaterials]], [[setObjectMaterialGlobal]], [[forceFlagTexture]] |SEEALSO=
|x3= <sqf>_obj setObjectTexture [0, "#(argb,512,512,1)r2t(rendersurface,1.333)"];</sqf>


|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>
|x5= The {{hl|"clan"}} selection can be used to apply a texture to the areas that usually display the [[squad.xml]] logo:
<sqf>MyVehicle setObjectTexture ["clan", "\a3\missions_f_epa\data\img\orbat\b_111_texture_ca.paa"];</sqf>
|seealso= [[getObjectTextures]] [[setObjectTextureGlobal]] [[setObjectMaterial]] [[getObjectMaterials]] [[setObjectMaterialGlobal]] [[forceFlagTexture]]
}}
}}


<h3 style="display:none">Notes</h3>
{{Note
<dl class="command_description">
|user= Benargee
<!-- Note Section BEGIN -->
|timestamp= 20140825222700
<dd class="notedate">Posted on Aug 4, 2006 - 23:40
|text= Also works with absolute path and .jpg files.
<dt class="note">[[User:Hoz|Hoz]]
<sqf>
<dd class="note">
_obj setObjectTexture [0, "C:\Folder\Folder\Texture.paa"];
In MP this command has only local effect. If you want to change a texture on all clients, you have to execute this command on each client (or [[setObjectTextureGlobal]]). This command has also a bug: when a saved game is loaded the texture you have set will disappear and needs to be reset.
_obj setObjectTexture [0, "C:\Folder\Folder\Texture.jpg"];
<dd class="notedate">Posted on December 19, 2009 - 23:16
</sqf>
<dt class="note">[[User:Lou_Montana|Lou Montana]]
<dd class="note">
Instead of bitmaps, procedural textures can be used.<br>
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.
<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)
<dt class="note">[[User:Benargee|Benargee]]
<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
<!-- Note Section END -->
}}
</dl>


<h3 style="display:none">Bottom Section</h3>
{{Note
[[Category:Scripting Commands|SETOBJECTTEXTURE]]
|user= Longbow
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
|timestamp= 20150318030900
[[Category:Scripting Commands OFP 1.96|SETOBJECTTEXTURE]]
|text= It is also possible to apply texture to unit's backpack, as it also has hidden selection (unfortunately does not work for vests)
{{GameCategory|arma1|Scripting Commands}}
<sqf>backpackContainer player setObjectTexture [0,"#(argb,8,8,3)color(0,0,0,1)"]</sqf>
{{GameCategory|arma2|Scripting Commands}}
Also keep in mind that player's custom texture is being reset when you open BIS Arsenal (even without changing any gear)
{{GameCategory|arma3|Scripting Commands}}
}}
{{GameCategory|tkoh|Scripting Commands}}


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= Moerderhoschi
<dd class="notedate">Posted on March 18, 2015 - 03:09 (UTC)</dd>
|timestamp= 20150513143700
<dt class="note">[[User:Longbow|Longbow]]</dt>
|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}}
<dd class="note">
<sqf>_obj setObjectTexture [0, "\a3\air_f\heli_light_01\data\skins\heli_light_01_ext_digital_co.paa"];</sqf>
It is also possible to apply texture to unit's backpack, as it also has hidden selection (unfortunately does not work for vests)
}}
<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)
</dd>
</dl>
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on May 13, 2015 - 14:37 (UTC)</dd>
<dt class="note">[[User:Moerderhoschi|Moerderhoschi]]</dt>
<dd class="note">
You can also use the gameinternal skins: [http://forums.bistudio.com/showthread.php?169734-paint-MH-9-different-colour List of MH9 Skins] <code>_obj [[setObjectTexture]] [0, "\a3\air_f\heli_light_01\data\skins\heli_light_01_ext_digital_co.paa"];</code>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= Killzone_Kid
<dd class="notedate">Posted on October 24, 2016 - 12:09 (UTC)</dd>
|timestamp= 20161024120900
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
|text= Sometimes it could be necessary to set default material on an object for the texture to take effect:
<dd class="note">
<sqf>
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"];
<code>_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)"];
_block [[setObjectTexture]] [0, "#(rgb,8,8,3)color(1,0,0,1)"];</code>
</sqf>
Courtesy of '''[[User:Larrow|Larrow]]'''
Courtesy of '''[[User:Larrow|Larrow]]'''
</dd>
}}
</dl>
<!-- DISCONTINUE Notes -->

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