상호 작용

어떤 공간에 입장하든 아바타는 본인을 나타내는 정체성입니다. SocialInteractions 개발자 모듈은 각 사용자가 체험에 약간의 사실적인 느낌을 추가하면서 자연스러운 움직임으로 자신을 더 잘 표현할 수 있게 해줍니다.

이 모듈에는 다음과 같은 기능이 포함되어 있습니다.

신체 방향목과 허리의 회전을 통해 모든 아바타의 머리가 해당 사용자의 카메라가 가리키는 곳을 바라보도록 합니다. 이를 통해 다른 누군가가 누구와 또는 무엇과 상호 작용하고 있는지 미묘한 단서를 얻을 수 있습니다.
채팅 애니메이션전송하는 메시지의 콘텐츠에 따라 아바타가 가끔 애니메이션을 플레이하도록 함으로써 체험 내 채팅에 활기를 불어넣을 수 있습니다. 각 애니메이션을 활성화하는 '트리거 단어'는 구성이 가능합니다.

모듈 사용

설치

체험에서 SocialInteractions 모듈을 사용하는 방법

  1. 보기 탭에서 도구 상자를 열고 마켓플레이스 탭을 선택합니다.

    Studio의 도구상자 토글 버튼
  2. 모델 정렬이 선택되었는지 확인한 다음 카테고리에서 모두 보기 버튼을 클릭합니다.

  3. DEV MODULES 타일을 찾아 클릭합니다.

  4. 소셜 인터랙션 모듈을 찾아 클릭하거나 3D 보기로 끌어다 놓습니다.

  5. 탐색기 창에서 전체 SocialInteractions 모델을 ServerScriptService로 이동합니다. 체험을 실행하면 모듈이 다양한 서비스에 배포되고 실행되기 시작합니다.

구성

SocialInteractions 모듈을 삽입하기만 해도 플레이스 안에서 신체 방향 기능과 채팅 애니메이션 기능이 모두 활성화됩니다. 기본 동작을 조정하는 방법은 다음과 같습니다.

  1. StarterPlayerScripts에서 새로운 LocalScript를 만들고 이름을 ConfigureSocialInteractions로 변경합니다.

  2. configure 함수를 사용하여 이 새로운 스크립트에 다음과 같은 코드를 붙여 넣어 모듈의 동작을 사용자 정의합니다.

    LocalScript

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))
    -- Make waist rotation more pronounced and disable the chat animations feature
    SocialInteractions.configure({
    waistOrientationWeight = 0.75,
    useChatAnimations = false,
    })

채팅 애니메이션 트리거 단어

각 채팅 애니메이션을 활성화하는 '트리거 단어' 목록은 구성이 가능하며 인식 가능한 단어를 늘리는 데 Lua 문자열 패턴이 활용됩니다. 예를 들어, 파도 애니메이션이 사용하는 한 개 조합으로 he+y+o*이 있는데, 이는 hey, heyyy, heyo, heyyyyo, heeeeyyyyo 및 기타 변형이 이 애니메이션을 트리거할 수 있다는 의미입니다.

트리거 단어는 영문 대소문자를 구분하지 않으므로 hey를 입력하는 것은 HEY, Hey 등의 변형과 똑같습니다.

애니메이션애니메이션 ID단어 패턴
파도3344650532

hell+o+    h+i+o*    wa+[sz]+u+p+    y+o+    greetings*    salutations*    goo+d+%smorning+    he+y+o*    howdy+    what's*%s*up+

박수5911729486

ya+y+    h[ou]+r+a+y+    woo+t*    woo+h+oo+    bravo+    congratulations+    congrats+    gg    pog+    poggers+   

동의4841397952

ye+s*    ye+a+h*    y[eu]+p+    o+k+    o+k+a+y+

동의 안 함4841401869

no+    no+pe+    yi+ke+s+

으쓱으쓱3334392772

not+%s+sure+    idk+    don't%s+know+    i%s+don't%s+know+    who+%s+knows+

웃기3337966527

lo+l+    rof+l+    ha[ha]*    he[he]+

잠자기4686925579

zzz+    yawn+

각 애니메이션을 활성화하는 트리거 단어 목록은 설정 가능하며, setTriggerWordsForChatAnimation 함수를 통해 추가 애니메이션을 추가할 수 있습니다. 예를 들어, 다음 LocalScriptcra+zy 문자열 패턴과 함께 Tilt 애니메이션을 연결하여 crazycraaaaaazy와 같은 트리거 단어를 지원합니다. 또한 coo+l 문자열 패턴을 등록하여 Applaud 애니메이션에 coolcoooool과 같은 단어를 지원합니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))
-- Register string pattern for the "Tilt" animation
SocialInteractions.setTriggerWordsForChatAnimation("rbxassetid://3334538554", {"cra+zy"})
-- Register additional string pattern for the "Applaud" animation
SocialInteractions.setTriggerWordsForChatAnimation("rbxassetid://5911729486", {"coo+l"})

API 참조

함수

구성

configure(config:table):nil

config 테이블의 다음 키/값을 통해 기본 구성 옵션을 무효화합니다. 해당 함수는 LocalScript에서만 호출할 수 있습니다.

설명기본
useBodyOrientation신체 방향 기능을 토글합니다.true
waistOrientationWeight신체 방향은 허리와 목의 회전을 혼합해서 사용하는데, 이 매개변수는 둘 중 어느 것이 우세한지 결정합니다. 값이 1이면 허리에 완전히 중점을 두고, 값이 0이면 목에 완전히 중점을 둡니다.0.5
useChatAnimations채팅 애니메이션 기능을 토글합니다.true
useDefaultTriggerWordsForChatEmotes채팅 애니메이션은 트리거 단어의 기본 목록과 함께 제공됩니다. 이 기본 목록을 끄고 트리거 단어를 직접 제공하려면 이 매개변수를 false로 설정하세요.true
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))
-- Make waist rotation more pronounced and disable the chat animations feature
SocialInteractions.configure({
waistOrientationWeight = 0.75,
useChatAnimations = false,
})

setTriggerWordsForChatAnimation

setTriggerWordsForChatAnimation(animationId:string, triggerWords:table):nil

채팅 애니메이션 기능에 새로운 애니메이션을 등록합니다. triggerWords 테이블에 들어 있는 문자열 패턴과 일치하는 어떤 단어든 입력하면 해당 ID가 첫 번째 매개변수로 전달되는 애니메이션이 활성화됩니다.

트리거 단어는 플레이어들에게 영문 대소문자를 구분하지 않으므로 woah 패턴은 woah, WOAH, Woah 등의 변형된 채팅 문구를 수락합니다.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))
-- Register new string pattern for a custom animation
SocialInteractions.setTriggerWordsForChatAnimation(
"rbxassetid://3334538554",
{"cra+zy", "woah+"}
)

이벤트

onChatAnimationPlayed

onChatAnimationPlayed(animationId:string, triggerWord:string): RBXScriptSignal

채팅 애니메이션이 플레이될 때 발생합니다. 연결된 함수는 애니메이션 ID와 애니메이션을 트리거한 단어를 인수로 수신합니다. 해당 이벤트는 LocalScript에서만 연결할 수 있습니다.

매개변수
animationId: string 플레이된 애니메이션 ID입니다.
triggerWord: string애니메이션을 트리거한 채팅 단어입니다.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))
SocialInteractions.onChatAnimationPlayed:Connect(function(animationId, triggerWord)
print(animationId, triggerWord)
end)