setObjectScale: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 24: | Line 24: | ||
|r1= [[Nothing]] | |r1= [[Nothing]] | ||
|x1= < | |x1= <sqf> | ||
_mrap | _mrap attachTo [player,[0,0,0]]; | ||
_mrap setObjectScale 0.1; | |||
</sqf> | |||
|x2= < | |x2= <sqf> | ||
( | // Select an object in Eden Editor and execute the following code in the Arma 3: Debug Console. When moving the object, the effect is reset! | ||
(get3DENSelected "Object" # 0) setObjectScale 0.1; | |||
</sqf> | |||
|seealso= [[getObjectScale]] | |seealso= [[getObjectScale]] | ||
Line 38: | Line 42: | ||
|text= For those interested in the extra cursed, you can scale non-simple objects by running the command every frame. | |text= For those interested in the extra cursed, you can scale non-simple objects by running the command every frame. | ||
The multiplayer performance of this is likely terrible. | The multiplayer performance of this is likely terrible. | ||
< | <sqf> | ||
addMissionEventHandler ["EachFrame", { | |||
{ | |||
if (_x != player) then { _x setObjectScale 0.5; }; | |||
}];</ | } forEach allUnits; | ||
}]; | |||
</sqf> | |||
}} | }} | ||
Line 49: | Line 55: | ||
|timestamp= 20220104221733 | |timestamp= 20220104221733 | ||
|text= Note that | |text= Note that | ||
< | <sqf>_obj setObjectScale 2;</sqf> | ||
doubles the scale factor of an object, not the volume. In the case of a cube this would be the length of an edge.<br>If you want to multiply the volume, raise the ''scale'' to the power of 1/3.<br> | doubles the scale factor of an object, not the volume. In the case of a cube this would be the length of an edge.<br>If you want to multiply the volume, raise the ''scale'' to the power of 1/3.<br> | ||
< | <sqf> | ||
// Example with 1x1x1 m^3 helper objects | |||
// vectorAdds elevate the cubes so they touch the ground after scaling. | // vectorAdds elevate the cubes so they touch the ground after scaling. | ||
_cube1 = createSimpleObject ["Land_VR_Shape_01_cube_1m_F",(getPosASL player vectorAdd [1,3,0.5])]; | _cube1 = createSimpleObject ["Land_VR_Shape_01_cube_1m_F",(getPosASL player vectorAdd [1,3,0.5])]; | ||
Line 65: | Line 72: | ||
// Double the volume. V=(2^(1/3))^3=2 | // Double the volume. V=(2^(1/3))^3=2 | ||
_cube3 setObjectScale 2^(1/3); | _cube3 setObjectScale 2^(1/3); | ||
</ | </sqf> | ||
}} | }} |
Revision as of 14:20, 5 May 2022
Description
- Description:
- Scales an attached object or a Simple Object's model.
- Problems:
- The Arma 3 LOD limits still apply, meaning walk-able surfaces can only be X m in size, and collision in general will only work up to X 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. Setting the scale of actively simulated objects (vehicles with players/AI in them) is possible, but not officially supported, you may encounter issues.
- Groups:
- Object Manipulation
Syntax
- Syntax:
- object setObjectScale scale
- Parameters:
- object: Object - Must be either an attached object or Simple Object
- scale: Number - Limited to 0.0001 to 65504, relative to the object model's normal scale
- Return Value:
- Nothing
Examples
- Example 1:
- Example 2:
- // Select an object in Eden Editor and execute the following code in the Arma 3: Debug Console. When moving the object, the effect is reset! (get3DENSelected "Object" # 0) setObjectScale 0.1;
Additional Information
- See also:
- getObjectScale
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
- Posted on Dec 23, 2021 - 06:29 (UTC)
- For those interested in the extra cursed, you can scale non-simple objects by running the command every frame. The multiplayer performance of this is likely terrible.
- Posted on Jan 04, 2022 - 22:17 (UTC)
-
Note that
doubles the scale factor of an object, not the volume. In the case of a cube this would be the length of an edge._obj setObjectScale 2;
If you want to multiply the volume, raise the scale to the power of 1/3.
// Example with 1x1x1 m^3 helper objects // vectorAdds elevate the cubes so they touch the ground after scaling. _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])]; // Double the side length. V=2^3=8 _cube1 setObjectScale 2; // Octuple(8x) the volume. V=(8^(1/3))^3=8 _cube2 setObjectScale 8^(1/3); // Double the volume. V=(2^(1/3))^3=2 _cube3 setObjectScale 2^(1/3);