Description
Scales an attached object or a Simple Object's model - see #Example 3 for various configurations' examples.
Syntax
object setObjectScale scale
Parameters:
Returns: Nothing
Examples
Example 1
_vehicle attachTo [player, [0,0,0]];
_vehicle setObjectScale 0.1;
Example 2
private _object = get3DENSelected "Object" select 0;
_object setObjectScale 0.1;
Example 3
private _globalSimpleObject = createSimpleObject ["C_Offroad_01_F", getPosASL player, false];
_globalSimpleObject setObjectScale 0.1;
private _localNormalObject = "C_Offroad_01_F" createVehicleLocal getPosATL player;
_localNormalObject attachTo [player, [0, 2, 1.5]];
_localNormalObject setObjectScale 0.1;
private _localSimpleObject = createSimpleObject ["C_Offroad_01_F", getPosASL player, true];
_localSimpleObject setObjectScale 0.1;
Example 4
private _localNormalObject = "C_Offroad_01_F" createVehicleLocal getPosATL player;
addMissionEventHandler [
"EachFrame",
{ _thisArgs params ["_obj", "_scale"]; _obj setObjectScale _scale; },
[_localNormalObject, 0.1]
];
Example 5
private _globalNormalObject = "C_Offroad_01_F" createVehicle getPosATL player;
addMissionEventHandler [
"EachFrame",
{ _thisArgs params ["_obj", "_scale"]; _obj setObjectScale _scale; },
[_globalNormalObject, 0.1]
];
Problems
The Arma 3 LOD limits still apply, meaning walkable surfaces can only be (~70?)m in size, and collision in general will only work up to (?)m from object center.
This command works on all objects in Eden Editor or scenario preview, but it will not save and will reset when objects get moved. Eden Editor support is only intended for artists.
Note
Setting the scale of non-simple objects, such as vehicles with players/AI in them, static objects (simulation = "house" in config), etc. might be possible,
but not officially supported. You may encounter issues.
Important
Changing the direction of the object (e.g. using setDir, setVectorDir, etc.) will reset the object back to its original size (probably because the engine normalises the directions,
thus the scale in the transformation matrix becomes 1), so those commands should be run before resizing the object.
See also
getObjectScale · createVehicleLocal · createSimpleObject · BIS_fnc_createSimpleObject · Multiplayer Scripting
Note that
_obj setObjectScale 2;
doubles the scale factor of an object, not the volume. In the case of a cube this would be the length of an edge.
If you want to multiply the volume, raise the scale to the power of 1/3.
_cube1 = createSimpleObject ["Land_VR_Shape_01_cube_1m_F", getPosASL player vectorAdd [1,3,0.5]];
_cube2 = createSimpleObject ["Land_VR_Shape_01_cube_1m_F", getPosASL player vectorAdd [3,1,0.5]];
_cube3 = createSimpleObject ["Land_VR_Shape_01_cube_1m_F", getPosASL player vectorAdd [1.35,1.35,0.13]];
_cube1 setObjectScale 2;
_cube2 setObjectScale 8^(1/3);
_cube3 setObjectScale 2^(1/3);