wiki.sine.space | sinespace

Difference between revisions of "Scripting/SAvatar"

From wiki.sine.space
Jump to: navigation, search
m
(Replaced content with "This page has moved to: https://docs.sine.space/v/scripting/client-scripting/types/savatar")
 
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
The SAvatar class refers a single player avatar active within the scene. This only contains active players with a valid network connection, and does not include NPCs. ((PlayerAvatar being used below is just an example, as it returns an SAvatar.))
+
This page has moved to: https://docs.sine.space/v/scripting/client-scripting/types/savatar
 
+
=Members=
+
 
+
 
+
{{ScriptFunction|void|Detach|();|Detaches the avatar from whatever it may be attached to (only works for the player avatar), including chairs, vehicles and so forth.|5=<pre>Space.Scene.PlayerAvatar.Detach()</pre>}}
+
 
+
{{ScriptFunction|void|AttachTo|(SGameObject target);|Attaches the player to the target game object, keeping the avatar fixed in its current position/rotation relative to the target object (e.g. for use in Vehicles)|5=<pre>Space.Scene.PlayerAvatar.AttachTo(targetObject)</pre>}}
+
 
+
{{ScriptFunction|void|StartFly|();|Puts the avatar into Fly Mode.|5=<pre>Space.Scene.PlayerAvatar.StartFly()</pre>||6= <pre>
+
--the below script teleports the player to a sky location after he clicks
+
--but then immediately puts the character in fly mode so they don't fall back down
+
--(Example: Sky exhibit)
+
 
+
thisGameObject = Space.Host.ExecutingObject
+
 
+
OnClick = function()
+
Space.Scene.PlayerAvatar.Teleport(Vector.New(0,10,0))
+
Space.Scene.PlayerAvatar.StartFly()
+
end
+
 
+
thisGameObject.AddClickable()
+
thisGameObject.Clickable.Tooltip = "Click me to view our sky exhibit!"
+
thisGameObject.Clickable.OnClick(OnClick) </pre>}}
+
 
+
{{ScriptFunction|void|EndFly|();|Takes the avatar out of Fly Mode.|5=<pre>Space.Scene.PlayerAvatar.EndFly()</pre>}}
+
 
+
{{ScriptFunction|SGameObject|FindBone|(string bone);|Retrieves the specified bone.|5=
+
<b>-- Best used with non humanoid models</b><br>
+
local bone = Space.Scene.PlayerAvatar.FindBone("Hips/Spine/Chest/LeftShoulder"); -- Gets the bone by path<br>
+
Space.Log(bone.Name); -- Prints the retrieved bones name, which will match the last name in the path specified.<br>
+
 
+
<b>or</b>
+
 
+
<b>-- Best used with humanoid models</b><br>
+
local bone = Space.Scene.PlayerAvatar.FindBone("LeftShoulder"); -- Gets bone by UnityEngine.HumanTrait.BoneName[]<br>
+
Space.Log(bone.Name); -- Prints the bone name of the corresponding search parameter, which when using a default avatar, it will print "LeftShoulder"<br>
+
 
+
--[[<br>
+
<b>UnityEngine.HumanTrait.BoneName[]</b>
+
 
+
<b>Body</b>: Hips, Spine, Chest, UpperChest<br>
+
<b>Head</b>: Neck, Jaw, Head, LeftEye, RightEye<br>
+
 
+
<b>Left Arm</b>: LeftShoulder, LeftUpperArm, LeftLowerArm, LeftHand<br>
+
<b>Left Leg</b>: LeftUpperLeg, LeftLowerLeg, LeftFoot, LeftToes<br>
+
 
+
<b>Right Arm</b>: RightShoulder, RightUpperArm, RightLowerArm, RightHand<br>
+
<b>Right Leg</b>: RightUpperLeg, RightLowerLeg, RightFoot, RightToes<br>
+
 
+
<b>Left Hand (Thumb)</b>: LeftThumbProximal, LeftThumbIntermediate, LeftThumbDistal<br>
+
<b>Left Hand (Index)</b>: LeftIndexProximal, LeftIndexIntermediate, LeftIndexDistal<br>
+
<b>Left Hand (Middle)</b>: LeftMiddleProximal, LeftMiddleIntermediate, LeftMiddleDistal<br>
+
<b>Left Hand (Ring)</b>: LeftRingProximal, LeftRingIntermediate, LeftRingDistal<br>
+
<b>Left Hand (Little)</b>: LeftLittleProximal, LeftLittleIntermediate, LeftLittleDistal<br>
+
 
+
<b>Right Hand (Thumb)</b>: RightThumbProximal, RightThumbIntermediate, RightThumbDistal<br>
+
<b>Right Hand (Index)</b>: RightIndexProximal, RightIndexIntermediate, RightIndexDistal<br>
+
<b>Right Hand (Middle)</b>: RightMiddleProximal, RightMiddleIntermediate, RightMiddleDistal<br>
+
<b>Right Hand (Ring)</b>: RightRingProximal, RightRingIntermediate, RightRingDistal<br>
+
<b>Right Hand (Little)</b>: RightLittleProximal, RightLittleIntermediate, RightLittleDistal<br>
+
]]}}
+
 
+
 
+
{{ScriptFunction|void|ResetOutfit|();|Reset current outfit.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.ResetOutfit()</pre>
+
}}
+
 
+
{{ScriptFunction|void|Register|(string username, string password, string email);|Allow a guest to register.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.Register("MyName","MyPassword","MyEmail",false,function ()
+
    Space.Log("Success!")
+
end,function ()
+
    Space.Log("OnError!!")
+
end)</pre>
+
}}
+
 
+
{{ScriptFunction|void|LoadOutfit|(int outfitID);|Only works on a white-label deployment due to abuse concerns. Restrictions: The outfit ID needs to be one of the grid template outfits, with all the restrictions that apply to those (i.e. must use either SW content, or content uploaded by a grid admin account).|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.LoadOutfit(10001)</pre>|6=<pre> --the below script changes the player's outfit into
+
--a pre-defined outfit if they click the object containing the script
+
--(Example: Player clicks on a wardrobe and their outfit changes)
+
--[Only works on white-label deployment]
+
 
+
thisGameObject = Space.Host.ExecutingObject
+
 
+
OnClick = function()
+
Space.Scene.PlayerAvatar.LoadOutfit(2662469)
+
end
+
 
+
thisGameObject.AddClickable()
+
thisGameObject.Clickable.Tooltip = "Put on your favourite suit"
+
thisGameObject.Clickable.OnClick(OnClick)</pre>
+
}}
+
 
+
{{ScriptFunction|void|ResetOutfitToTemplate|(int outfitID);|Reset current outfit to template one.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.ResetOutfitToTemplate(10001)</pre>
+
}}
+
 
+
{{ScriptFunction|void|Teleport|(string landmarkName);|Teleport the avatar to the landmark.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.Teleport("MyLandMark")</pre>
+
}}
+
 
+
{{ScriptFunction|void|Teleport|(SVector position);|Teleport the avatar to certain position.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.Teleport(Vector.Zero)</pre>
+
}}
+
 
+
{{ScriptFunction|void|Teleport|(SVector position, SQuaternion rotation);|Teleport the avatar to certain position and rotation.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.Teleport(Vector.Zero,Quaternion.Identity)</pre>
+
}}
+
 
+
{{ScriptFunction|void|Teleport|(int region, SVector position, SQuaternion rotation);|Teleport the avatar to a certain region with certain position and rotation.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.Teleport(2342341,Vector.Zero,Quaternion.Identity)</pre>
+
}}
+
 
+
{{ScriptFunction|void|Teleport|(int region);|Teleport the avatar to a certain region.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.Teleport(2342341)</pre>|6=<pre>
+
--the below script teleports player to another region
+
--if they click the object containing it
+
--(Example: A region promotional/advertisement sign)
+
 
+
thisGameObject = Space.Host.ExecutingObject
+
 
+
OnClick = function()
+
Space.Scene.PlayerAvatar.Teleport(151931)
+
end
+
 
+
thisGameObject.AddClickable()
+
thisGameObject.Clickable.Tooltip = "Click me to go to our region!"
+
thisGameObject.Clickable.OnClick(OnClick)</pre>
+
}}
+
 
+
{{ScriptFunction|void|SetIKGoal|(string goal, bool positionGoal, float positionStrength, SVector positionTarget, bool rotationGoal, float rotationStrength, SQuaternion rotationTarget
+
);|Set the IK goal to avatar.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
local pos=avatar.FindBone("Chest").WorldPosition
+
avatar.SetIKGoal("Chest",false,0,pos,true,20,Quaternion.Euler(0,60,0))</pre>
+
}}
+
 
+
{{ScriptFunction|void|ClearIKGoal|(string goal);|Clear the IK Goal.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
local pos=avatar.FindBone("Chest").WorldPosition
+
avatar.SetIKGoal("Chest",false,0,pos,true,20,Quaternion.Euler(0,60,0))
+
Space.Host.InvokeDelayed(function ()
+
    avatar.ClearIKGoal("Chest")
+
end,5)
+
'' --will clear after 5 seconds.''</pre>
+
}}
+
 
+
{{ScriptFunction|void|PlayCustomAnimation|(SResource animationClip);|Make the avatar plays custom animation.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.PlayCustomAnimation(Space.Resources[1])
+
'' --the avatar will play the custom animation if the animation clip was set correctly.''</pre>
+
}}
+
 
+
{{ScriptFunction|void|StopCustomAnimation|();|Make the avatar stops playing custom animation.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.PlayCustomAnimation(Space.Resources[1])
+
avatar.StopCustomAnimation()</pre>
+
}}
+
 
+
{{ScriptFunction|SGameObject|LockObject|();|Lock the avatar.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
local obj=avatar.LockObject.Name
+
if obj~=nil then
+
    Space.Log(obj.Name)
+
end</pre>
+
}}
+
 
+
{{ScriptFunction|void|OnAvatarReload|(Closure o);|This event will be called when the avatar gets loaded.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.OnAvatarReload(function ()
+
    Space.Log(avatar.OutfitID)
+
end)</pre>
+
}}
+
 
+
{{ScriptFunction|void|SynchroniseState|();|Synchronise avatar's state to network.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
avatar.SynchroniseState()</pre>
+
}}
+
 
+
{{ScriptFunction|bool|BlockRun|();|Returns true if the avatar could run.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
Space.Log(avatar.BlockRun)
+
avatar.BlockRun=true
+
'' --Now the avatar cannot run anymore.''</pre>
+
}}
+
 
+
{{ScriptFunction|bool|BlockFly|();|Return true if the avatar could fly.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
Space.Log(avatar.BlockFly)
+
avatar.BlockFly=true
+
'' --Now the avatar cannot fly anymore.''</pre>
+
}}
+
 
+
{{ScriptFunction|bool|BlockCrouch|();|Return true if the avatar could crouch.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
Space.Log(avatar.BlockCrouch)
+
avatar.BlockCrouch=true
+
'' --Now the avatar cannot crouch anymore.''</pre>
+
}}
+
 
+
{{ScriptFunction|bool|BlockJump|();|Return true if the avatar could jump.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
Space.Log(avatar.BlockJump)
+
avatar.BlockJump=true
+
'' --Now the avatar cannot jump anymore.''</pre>
+
}}
+
 
+
{{ScriptFunction|bool|OnAvatarSkeletonReload|(Closure o);|This event will be called when the avatar skeleton gets loaded.|5=<pre>local avatar=Space.Scene.PlayerAvatar
+
Space.Log(avatar.BlockJump)
+
avatar.OnAvatarSkeletonReload(function ()
+
    Space.Log(avatar.OutfitID)
+
end)</pre>
+
}}
+
 
+
=Properties=
+
{{ScriptFunction|string|Username|{ get; }|Returns the avatar's current username (note: this can be changed by players for a small fee)|5=<pre>playerUsername = Space.Scene.PlayerAvatar.Username</pre>}}
+
 
+
{{ScriptFunction|string|Title|{ get; }|Returns the avatar's current title|5=<pre>playerTitle = Space.Scene.PlayerAvatar.Title</pre>}}
+
 
+
{{ScriptFunction|long|ID|{ get; }|Returns the avatar's user ID, please note if you store these, this is a 'long' value not a 'int'.|5=<pre>playerID = Space.Scene.PlayerAvatar.ID</pre>}}
+
 
+
{{ScriptFunction|SGameObject|GameObject|{ get; }|Returns a reference to avatar's GameObject|5=<pre>playerObject = Space.Scene.PlayerAvatar.GameObject</pre>}}
+
 
+
{{ScriptFunction|bool|BlockMovement|{ get;set; }|If set to True, avatar's movement will be blocked|5=<pre>Space.Scene.PlayerAvatar.BlockMovement = true</pre>}}
+
 
+
{{ScriptFunction|bool|Guest|{ get; }|Returns True if avatar is guest|5=<pre>Space.Log(Space.Scene.PlayerAvatar.Guest)</pre>}}
+
 
+
{{ScriptFunction|SGameObject|Skeleton|{ get; }|Returns a reference to avatar's skeleton GameObject|5=<pre>avSkeleton = Space.Scene.PlayerAvatar.Skeleton</pre>}}
+
 
+
{{ScriptFunction|bool|IsAttached|{ get; }|Returns True if avatar is Attached|5=<pre>Space.Log(Space.Scene.PlayerAvatar.isAttached)</pre>}}
+
 
+
{{ScriptFunction|bool|IsGrounded|{ get; }|Returns True if avatar is Grounded|5=<pre>Space.Log(Space.Scene.PlayerAvatar.isGrounded)</pre>}}
+
 
+
{{ScriptFunction|float|JumpHeight|{ get;set; }|How high the avatar's jump is|5=<pre>Space.Scene.PlayerAvatar.JumpHeight = 20</pre>}}
+
 
+
{{ScriptFunction|bool|Loaded|{ get; }|Returns true if avatar is Loaded|5=<pre>Space.Log(Space.Scene.PlayerAvatar.Loaded)</pre>}}
+
 
+
{{ScriptFunction|float|MovementSpeed|{ get;set; }|How fast the avatar's movement is|5=<pre>Space.Scene.PlayerAvatar = 20</pre>}}
+
 
+
{{ScriptFunction|long|OutfitID|{ get; }|Returns the current outfit ID of the avatar|5=<pre>avOutfit = Space.Scene.PlayerAvatar.OutfitID</pre>}}
+
 
+
 
+
 
+
 
+
{{Scripting Navbox}}
+

Latest revision as of 07:51, 19 September 2022

This page has moved to: https://docs.sine.space/v/scripting/client-scripting/types/savatar