게임 내 애니메이션을 구현하려면 스크립트를 사용하십시오.이 자습서에서는 미리 만든 스크립트를 사용하여 이전에 만든 승리 애니메이션을 구현합니다.완료되면 이 애니메이션을 사용하여 플레이어의 업적을 축하할 수 있습니다(오비의 끝에 도달하거나 비밀을 찾는 것과 같이).
스크립트 애니메이션
애니메이션은 스크립트 를 사용하여 트리거됩니다.하나의 접근법은 이벤트를 사용하여 플레이어가 레벨을 완료하거나 적을 물리치거나 게임 내 구매를 하는 등 다양한 상황에서 애니메이션을 재생하는 것입니다.
프로젝트 설정
이 프로젝트에서는 만질 때 해당 플레이어에 대한 애니메이션을 트리거하는 부품을 만듭니다.
애니메이션을 재생할 모든 부품을 구성하려면 작업 공간에 TouchPartFolder라는 이름의 폴더를 추가하십시오(작업 공간 위로 마우스를 이동하고 +를 클릭하십시오).
터치파트폴더에서 부품을 추가합니다.
부품이 애니메이션을 재생하는 데 의미가 있는 위치에 배치되었는지 확인하십시오(예: 레벨 끝이나 플레이어가 수집하는 개체 근처).
예제 승리 부분 예시 상호 작용 부분 StarterPlayer > StarterCharacterScripts에서 TouchPartRegister라는 이름의 로컬 스크립트를 만듭니다. 그런 다음 아래 코드를 복사하고 붙여넣습니다.
-- 부품 터치에서 애니메이션을 재생하기 위해 "플레이어 애니메이션 피드백" 스크립트와 함께 사용-- 서비스local ReplicatedStorage = game:GetService("ReplicatedStorage")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal character = player.Character or player.CharacterAdded:Wait()local humanoid = character:WaitForChild("Humanoid")local canTouch = false-- 피드백 애니메이션 모듈 포함local PlayerAnimationFeedback = require(ReplicatedStorage:WaitForChild("PlayerAnimationFeedback"))-- 부품이 터치될 때 호출되는 함수local function onPartTouch(otherPart)if humanoid and canTouch == false thencanTouch = truePlayerAnimationFeedback:PlayAnimation()canTouch = falseendend-- 시작 시 애니메이션 모듈 로드 기능 호출PlayerAnimationFeedback:LoadAnimation(humanoid)-- 또한 부품 폴더를 "터치" 이벤트에 바인딩하여 "onPartTouch()"를 실행합니다local touchPartFolder = workspace:WaitForChild("TouchPartFolder")local touchParts = touchPartFolder:GetChildren()for _, touchPart in touchParts dotouchPart.Touched:Connect(onPartTouch)end이 스크립트는 TouchPartFolder에서 모든 부품을 찾아 그들에게 Touched() 이벤트를 제공합니다.발사되면 이벤트는 플레이어에게 애니메이션을 재생하는 함수를 실행합니다.
다음 스크립트는 플레이어에 대한 애니메이션을 트리거합니다.ReplicatedStorage에서 PlayerAnimationFeedback라는 새로운 모듈 스크립트를 만듭니다.그런 다음 아래 코드를 복사하고 붙여넣습니다.
-- 플레이어에 대한 애니메이션을 재생하기 위해 "TouchPartRegister" 스크립트와 함께 사용local PlayerAnimationFeedback = {}local feedbackAnimationTracklocal ANIMATION_FADE = 0.3local ANIMATION_ID = "rbxassetid://YOUR_ANIMATION"-- 플레이어의 캐릭터에 애니메이션 로드 기능function PlayerAnimationFeedback:LoadAnimation(humanoid)local feedbackAnimation = Instance.new("Animation")feedbackAnimation.AnimationId = ANIMATION_IDfeedbackAnimationTrack = humanoid.Animator:LoadAnimation(feedbackAnimation)feedbackAnimationTrack.Priority = Enum.AnimationPriority.ActionfeedbackAnimationTrack.Looped = falseend-- 애니메이션을 재생하는 함수function PlayerAnimationFeedback:PlayAnimation()feedbackAnimationTrack:Play(ANIMATION_FADE)task.wait(feedbackAnimationTrack.Length)endreturn PlayerAnimationFeedback
애니메이션 재생
애니메이션은 스크립트에서 식별되어 로드되고 재생되어야 합니다.
애니메이션 설정
스크립트는 플레이애니메이션을 알아야 합니다.내보낸 애니메이션을 사용하려면 웹 브라우저를 통해 자산 ID 를 찾으십시오.그 ID는 그 애니메이션을 스크립트에서 로드할 수 있도록 허용합니다.
생성 페이지의 애니메이션 섹션을 엽니다.
내보낸 애니메이션을 찾아 클릭하십시오.
브라우저의 URL에서 ID를 복사합니다.
스크립트에서 PlayerAnimationFeedback에서 자리 표시자를 (라인 8)에 복사한 ID로 바꿉니다.
플레이어가 부품을 한 번 치면 애니메이션을 볼 수 있는 프로젝트를 실행하고 테스트합니다.
다음 단계
아래는 계속 학습하는 몇 가지 방법입니다
애니메이션 알아보기
지금까지 애니메이션을 만들고 경험에 추가하는 방법을 배웠습니다.학습을 계속하려면 애니메이션 개요를 방문하는 것이 좋습니다.
해당 페이지에서는 부드러운 이동을 위해 곡선 편집기를 사용하거나 애니메이션 보정 팁과 같은 애니메이션 향상을 위한 유용한 링크를 찾을 수 있습니다.
부품 애니메이션
또한, 선택적인 수업 부품 애니메이션을 시작하여 부품을 확장하고, 회전하고, 이동할 수 있는 기능인 십대 코딩을 배우세요.최종 프로젝트의 샘플은 아래에 있습니다.