애니메이션을 생성한 후, 스크립트를 사용하여 게임에 포함시켜야 합니다. 스크립트에서 애니메이션을 수동으로 재생하거나 플레이어 캐릭터의 기본 애니메이션을 교체 할 수 있습니다.
스크립트에서 애니메이션 재생
경우에 따라 사용자가 특정 키를 누르거나 특수 아이템을 주울 때와 같이 스크립트 내에서 직접 애니메이션을 재생해야 할 수 있습니다.
휴머노이드
Humanoid 객체가 포함된 리그에서 애니메이션을 재생하려면 일반적으로 다음 패턴을 따릅니다:
- 적절한 AnimationId로 새로운 Animation 인스턴스를 생성합니다.
- Animator:LoadAnimation()을 통해 애니메이션을 로드하여 AnimationTrack을 생성합니다.
- AnimationTrack:Play()로 트랙을 재생합니다.
예를 들어, 다음 LocalScript는 StarterPlayerScripts에 배치되면 플레이어 캐릭터에 "킥" 애니메이션을 로드하고 재생합니다. 이 스크립트는 또한 특정 애니메이션 이벤트가 발생했을 때를 감지하기 위해 GetMarkerReachedSignal() 메소드를 이용합니다.
LocalScript - 플레이어 캐릭터의 사용자 정의 애니메이션 재생
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- 캐릭터의 휴머노이드에 "Animator" 객체가 포함되어 있는지 확인
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- 새로운 "Animation" 인스턴스를 생성하고 애니메이션 자산 ID를 할당
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- 애니메이션을 애니메이터에 로드
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- 애니메이션에 대해 정의된 이름이 있는 이벤트가 있는 경우 "GetMarkerReachedSignal()"에 연결
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- 애니메이션 트랙 재생
kickAnimationTrack:Play()
비휴머노이드
Humanoid가 포함되지 않은 리그에서 애니메이션을 재생하려면 Animator가 있는 AnimationController를 생성해야 합니다. 예를 들어, 다음 Script(리그의 직접 자식으로 가정)는 "킥" 애니메이션을 로드하고 재생합니다.
Script - 캐릭터 리그의 사용자 정의 애니메이션 재생
local rig = script.Parent
-- 새로운 "Animation" 인스턴스를 생성하고 애니메이션 자산 ID를 할당
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- 새로운 "AnimationController"와 "Animator" 생성
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- 애니메이션을 애니메이터에 로드
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- 애니메이션에 대해 정의된 이름이 있는 이벤트가 있는 경우 "GetMarkerReachedSignal()"에 연결
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- 애니메이션 트랙 재생
kickAnimationTrack:Play()
기본 애니메이션 교체
기본적으로 Roblox 플레이어 캐릭터는 달리기, 등반, 수영 및 점프와 같은 일반 애니메이션을 포함합니다. 이러한 기본 애니메이션을 카탈로그에서 가져온 애니메이션이나 자신이 만든 사용자 정의 애니메이션으로 교체할 수 있습니다.
새 애니메이션의 자산 ID를 다음과 같이 얻습니다:
새 스크립트에서 다음 코드를 붙여넣습니다:
Script - 기본 캐릭터 애니메이션 교체local Players = game:GetService("Players")local function onCharacterAdded(character)-- 휴머노이드의 애니메이터 가져오기local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- 모든 애니메이션 트랙 중지for _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.run.RunAnim.AnimationId = "rbxassetid://"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)각 줄에서 기본 캐릭터 애니메이션을 참조하는 주석을 제거하고 rbxassetid:// 뒤에 교체 ID를 붙여넣습니다. 예를 들어, 기본 달리기 애니메이션을 닌자 달리기 변형으로 변경하려면:
Script - 기본 캐릭터 애니메이션 교체local Players = game:GetService("Players")local function onCharacterAdded(character)-- 휴머노이드의 애니메이터 가져오기local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- 모든 애니메이션 트랙 중지for _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
애니메이션 가중치 설정
같은 행동에 대해 여러 애니메이션을 사용할 수 있습니다. 예를 들어, 기본 애니메이션 교체 코드 샘플에는 두 개의 idle 변형이 있습니다.
문자 상태에 대해 여러 애니메이션이 존재하는 경우, Animate 스크립트는 무작위로 재생할 애니메이션을 선택하지만 아래 공식에 따라 애니메이션의 Weight 값을 설정하여 결과에 영향을 줄 수 있습니다:
- 애니메이션 가중치 / 모든 상태 애니메이션의 총 가중치
다음 예에서 idle.Animation1은 캐릭터가 대기하고 있을 때 ⅓의 확률로 재생되며, idle.Animation2는 ⅔의 확률로 재생됩니다.
Script - 기본 캐릭터 애니메이션 교체animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
애니메이션 참조
기본 캐릭터 애니메이션
다음 표는 기본 애니메이션 교체와 카탈로그 애니메이션 또는 사용자 정의(custom) 애니메이션으로 교체할 수 있는 기본 캐릭터 애니메이션을 포함합니다. Idle에는 빈도가 높거나 낮게 재생될 수 있도록 가중치를 조절할 수 있는 두 가지 변형이 있습니다.
| 캐릭터 행동 | Animate 스크립트 참조 |
| 달리기 | animateScript.run.RunAnim.AnimationId |
| 걷기 | animateScript.walk.WalkAnim.AnimationId |
| 점프 | animateScript.jump.JumpAnim.AnimationId |
| 대기 | animateScript.idle.Animation1.AnimationId |
| 떨어짐 | animateScript.fall.FallAnim.AnimationId |
| 수영 | animateScript.swim.Swim.AnimationId |
| 수영 (대기) | animateScript.swimidle.SwimIdle.AnimationId |
| 등반 | animateScript.climb.ClimbAnim.AnimationId |
카탈로그 애니메이션
기본 애니메이션을 교체하기 위해 아바타 애니메이션 번들을 사용할 때, 각각의 자산 ID에 대한 다음 참조를 사용하십시오. 예를 들어, 닌자 점프 애니메이션을 적용하려면 656117878를 사용합니다. Idle에는 여러 변형이 있다는 점에 유의하십시오.
| 우주 비행사 | 달리기 891636393 걷기 891636393 점프 891627522 대기 891621366, 891633237, 1047759695 떨어짐 891617961 수영 891639666 수영 (대기) 891663592 등반 891609353 |
| 거품 | 달리기 910025107 걷기 910034870 점프 910016857 대기 910004836, 910009958, 1018536639 떨어짐 910001910 수영 910028158 수영 (대기) 910030921 등반 909997997 |
| 만화 캐릭터 | 달리기 742638842 걷기 742640026 점프 742637942 대기 742637544, 742638445, 885477856 떨어짐 742637151 수영 742639220 수영 (대기) 742639812 등반 742636889 |
| 노인 | 달리기 845386501 걷기 845403856 점프 845398858 대기 845397899, 845400520, 901160519 떨어짐 845396048 수영 845401742 수영 (대기) 845403127 등반 845392038 |
| 기사 | 달리기 657564596 걷기 657552124 점프 658409194 대기 657595757, 657568135, 885499184 떨어짐 657600338 수영 657560551 수영 (대기) 657557095 등반 658360781 |
| Levitation | 달리기 616010382 걷기 616013216 점프 616008936 대기 616006778, 616008087, 886862142 떨어짐 616005863 수영 616011509 수영 (대기) 616012453 등반 616003713 |
| 마법사 | 달리기 707861613 걷기 707897309 점프 707853694 대기 707742142, 707855907, 885508740 떨어짐 707829716 수영 707876443 수영 (대기) 707894699 등반 707826056 |
| 닌자 | 달리기 656118852 걷기 656121766 점프 656117878 대기 656117400, 656118341, 886742569 떨어짐 656115606 수영 656119721 수영 (대기) 656121397 등반 656114359 |
| 해적 | 달리기 750783738 걷기 750785693 점프 750782230 대기 750781874, 750782770, 885515365 떨어짐 750780242 수영 750784579 수영 (대기) 750785176 등반 750779899 |
| 로봇 | 달리기 616091570 걷기 616095330 점프 616090535 대기 616088211, 616089559, 885531463 떨어짐 616087089 수영 616092998 수영 (대기) 616094091 등반 616086039 |
| Rthro | 달리기 2510198475 걷기 2510202577 점프 2510197830 대기 2510197257, 2510196951, 3711062489 떨어짐 2510195892 수영 2510199791 수영 (대기) 2510201162 등반 2510192778 |
| 스타일리시 | 달리기 616140816 걷기 616146177 점프 616139451 대기 616136790, 616138447, 886888594 떨어짐 616134815 수영 616143378 수영 (대기) 616144772 등반 616133594 |
| 슈퍼히어로 | 달리기 616117076 걷기 616122287 점프 616115533 대기 616111295, 616113536, 885535855 떨어짐 616108001 수영 616119360 수영 (대기) 616120861 등반 616104706 |
| 장난감 | 달리기 782842708 걷기 782843345 점프 782847020 대기 782841498, 782845736, 980952228 떨어짐 782846423 수영 782844582 수영 (대기) 782845186 등반 782843869 |
| 흡혈귀 | 달리기 1083462077 걷기 1083473930 점프 1083455352 대기 1083445855, 1083450166, 1088037547 떨어짐 1083443587 수영 1083464683 수영 (대기) 1083467779 등반 1083439238 |
| 늑대인간 | 달리기 1083216690 걷기 1083178339 점프 1083218792 대기 1083195517, 1083214717, 1099492820 떨어짐 1083189019 수영 1083222527 수영 (대기) 1083225406 등반 1083182000 |
| 좀비 | 달리기 616163682 걷기 616168032 점프 616161997 대기 616158929, 616160636, 885545458 떨어짐 616157476 수영 616165109 수영 (대기) 616166655 등반 616156119 |