Creator Guide
Korean
Korean
  • OVERDARE
    • 🚩OVERDARE 소개
    • 🐤시작하기
      • OVERDARE App
      • OVERDARE Studio
    • 📌운영 정책
      • 커뮤니티 가이드라인
      • UGC 콘텐츠 제작 가이드라인
      • UGC의 외부 활용 가이드라인
      • LOGO 활용 가이드라인
      • 지식 재산권 정책
      • 신고 안내
      • 콘텐츠 제재 이의 신청 안내
      • 크리에이터 정산 정책
      • OVERDARE 수익화 가이드라인
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰스튜디오 메뉴얼
      • 시작하기
        • 스튜디오 인터페이스
        • 월드 템플릿
        • 좌표계
        • 스튜디오 테스트 플레이
        • 월드 퍼블리시
        • Collaboration
      • 에셋 & 리소스 제작
        • 에셋 임포트
        • 애니메이션 에디터
      • 게임 제작
        • 게임 설정
        • 스크립트 에디터
        • 정렬
        • Material Manager
        • Collision Groups
        • Tag Editor
        • 퍼포먼스 가이드
      • Object
        • 파트
        • 모델
        • 카메라
        • 물리
        • 조명
        • Tool
        • VFX
        • Sound
      • 캐릭터
        • 캐릭터 애니메이션
        • Humanoid Description
      • GUI
    • 📝스크립트 메뉴얼
      • 시작하기
        • 스크립트 개요
        • 루아 기초 가이드
        • 코딩 스타일
        • 오브젝트 참조
        • 유니티 개발자용 가이드
      • 이벤트 및 통신
        • 이벤트
        • 서버-클라 통신
        • BindableEvent
        • Value Objects
      • 입력 및 조작
        • 모바일 조작 처리
        • TPS Strafing System
      • 게임 고도화
        • Saving & Loading Data
        • 트윈
        • 모듈 스크립트
      • 디버깅 & 최적화
        • 중단점
        • 스크립트 최적화 실전 가이드
  • 💸수익화
    • Payout Guideline
  • DEVELOPMENT
    • 📚API Reference
      • Enums
        • ActuatorRelativeTo
        • AnimationPriority
        • AspectType
        • AssetTypeVerification
        • BorderMode
        • CameraMode
        • CameraType
        • ContextActionResult
        • CoreGuiType
        • DominantAxis
        • EasingDirection
        • EasingStyle
        • ForceLimitMode
        • HttpCompression
        • HttpContentType
        • HumanoidDisplayDistanceType
        • HumanoidStateType
        • KeyCode
        • Material
        • MaterialPattern
        • NormalId
        • ParticleEmitterShape
        • ParticleEmitterShapeInOut
        • ParticleEmitterShapeStyle
        • ParticleFlipbookLayout
        • ParticleFlipbookMode
        • ParticleOrientation
        • PartType
        • PlaybackState
        • RaycastFilterType
        • RollOffMode
        • RotationType
        • UserInputState
        • UserInputType
        • VelocityConstraintMode
      • DataTypes
        • BlendSpaceSampleSata
        • BrickColor
        • CFrame
        • Color3
        • ColorSequence
        • ColorSequenceKeypoint
        • Content
        • Enum
        • EnumItem
        • NumberRange
        • NumberSequence
        • NumberSequenceKeypoint
        • OverlapParams
        • PhysicalProperties
        • Ray
        • RaycastParams
        • RaycastResult
        • ScriptConnection
        • ScriptSignal
        • TweenInfo
        • Udim
        • Udim2
        • Vector2
        • Vector3
      • Classes
        • Animation
        • AngularVelocity
        • AnimationTrack
        • Animator
        • Atmosphere
        • Attachment
        • Backpack
        • BackpackItem
        • BasePart
        • BaseScript
        • Beam
        • BindableEvent
        • BlendSpace
        • BoolValue
        • Bone
        • Camera
        • CharacterMesh
        • CollectionService
        • Constraint
        • ContextActionService
        • CoreGui
        • DataStore
        • DataModel
        • DataStoreGetOptions
        • DataStoreIncrementOptions
        • DataStoreInfo
        • DataStoreKeyPages
        • DataStoreKeyInfo
        • DataStoreService
        • DataStoreListingPages
        • DataStoreSetOptions
        • FormFactorPart
        • Frame
        • Folder
        • GlobalDataStore
        • GuiBase2d
        • GuiButton
        • GuiObject
        • HttpService
        • Humanoid
        • HumanoidDescription
        • ImageButton
        • ImageLabel
        • InputObject
        • IntValue
        • LayerCollector
        • Instance
        • Light
        • Lighting
        • LinearVelocity
        • LocalScript
        • LuaSourceContainer
        • MaterialService
        • MaterialVariant
        • MeshPart
        • Model
        • ModuleScript
        • Mouse
        • OrderedDataStore
        • Pages
        • Part
        • ParticleEmitter
        • PhysicsService
        • Player
        • PlayerGui
        • Players
        • PlayerScripts
        • PointLight
        • PVInstance
        • ReplicatedStorage
        • RemoteEvent
        • ScreenGui
        • RunService
        • Script
        • ServerStorage
        • ServiceProvider
        • Skeleton
        • ServerScriptService
        • Sound
        • SoundService
        • SoundGroup
        • SpotLight
        • SpawnLocation
        • StarterCharacterScripts
        • StarterPack
        • StarterGui
        • StarterPlayer
        • StarterPlayerScripts
        • StringValue
        • SurfaceGui
        • SurfaceGuiBase
        • Team
        • Teams
        • TextLabel
        • TextButton
        • Tool
        • Trail
        • Tween
        • TweenService
        • TweenBase
        • UIAspectRatioConstraint
        • UserGameSettings
        • UserInputService
        • UserSettings
        • VectorForce
        • Workspace
        • WrapLayer
        • WorldRoot
        • WrapTarget
  • UPDATE
    • 📰Release Note
Powered by GitBook
On this page
  • 개요
  • 특징
  • 구성 요소
  • 사용 방법
  • 1. 트윈 생성하기
  • 2. 트윈으로 변화시킬 속성 설정
  • 3. 트윈 실행
  • 4. 트윈 실행 제어
  • 5. 트윈이 끝났을 때 이벤트 처리
  1. MANUAL
  2. 스크립트 메뉴얼
  3. 게임 고도화

트윈

개요

트윈(Tween)은 오브젝트의 속성을 부드럽고 자연스럽게 변화시키는 데 사용됩니다. 트윈을 이용하여 오브젝트의 위치나 회전, 크기 등 다양한 속성을 애니메이션화하여 게임에 몰입감 있고 풍부한 시각적 효과를 더할 수 있습니다.

특징

  • 트윈은 코드의 간결성과 성능 면에서 뛰어나며, 다양한 효과를 쉽게 구현할 수 있도록 도와줍니다.

  • 트윈은 다양한 Easing 스타일을 지원해 부드럽고 자연스러운 애니메이션을 제공합니다.

  • 트윈은 내부적으로 효율적으로 처리되며, 프레임별 업데이트보다 성능 부담이 적습니다.

  • 트윈은 완료 후 자동으로 종료되며, Completed 이벤트를 통해 후속 작업을 쉽게 처리할 수 있습니다.

구성 요소

  • TweenService : 트윈을 생성하고 관리하는 서비스입니다.

  • TweenInfo : 트윈의 동작 방식을 정의하는 오브젝트로 변화 시간, 방향, 반복 횟수 등을 설정합니다.

  • TweenGoals : 트윈으로 변화시킬 속성 값을 정의합니다.

사용 방법

1. 트윈 생성하기

TweenInfo.new 함수로 애니메이션의 지속 시간, 가속 및 감속 스타일, 반복 횟수 등 트윈 애니메이션의 동작 방식을 정의할 수 있습니다.

오브젝트의 위치나 회전 등 애니메이션을 적용할 속성은 TweenGoals 테이블에 설정합니다.

local TweenService = game:GetService("TweenService")
local Part = script.Parent

-- Setting Tween information
local TweenInfoData = TweenInfo.new(
    2,                        -- Easing duration (seconds)
    Enum.EasingStyle.Linear,  -- Easing style
    Enum.EasingDirection.Out, -- Easing direction
    0,                        -- Number of repetitions
    false,                    -- Whether to reverse
    0                         -- Wait time
)

-- Properties to be changed with the tween
local TweenGoals = 
{
    Position = Vector3.new(-400, 50, -350)
}

local Tween = TweenService:Create(Part, TweenInfoData, TweenGoals)

2. 트윈으로 변화시킬 속성 설정

TweenGoals에 어떤 속성을 설정하느냐에 따라 트윈의 기능이 달라집니다.

local TweenGoals = 
{
    Position = Vector3.new(-400, 50, -350)
}
local TweenGoals = 
{
    Orientation = Vector3.new(0, 180, 0)
}
local TweenGoals = 
{
    Size = Vector3.new(200, 200, 200)
}
local TweenGoals = 
{
    Color = Color3.new(0.5, 0, 0)
}
local TweenGoals = 
{
    CanCollide = false
}

3. 트윈 실행

TweenService:Create 함수에 트윈을 적용할 대상과 미리 설정한 TweenInfo와 TweenGoals을 전달하여 호출하면 트윈을 생성할 수 있으며, 생성된 트윈을 Play 함수로 실행할 수 있습니다.

local TweenService = game:GetService("TweenService")
local Part = script.Parent

-- Setting Tween information
local TweenInfoData = TweenInfo.new(
    2,                        -- Easing duration (seconds)
    Enum.EasingStyle.Linear,  -- Easing style
    Enum.EasingDirection.Out, -- Easing direction
    0,                        -- Number of repetitions
    false,                    -- Whether to reverse
    0                         -- Wait time
)

-- Properties to be changed with the tween
local TweenGoals = 
{
    Position = Vector3.new(-400, 50, -350)
}

local Tween = TweenService:Create(Part, TweenInfoData, TweenGoals)

Tween:Play()

4. 트윈 실행 제어

실행 중인 트윈은 Pause 함수로 일시정지할 수 있습니다.

...
Tween:Pause() -- Pause
wait(2)​
Tween:Play()  -- Resume

Cancel 함수로 실행 중인 트윈을 취소할 수 있습니다.

...
Tween:Cancel()

5. 트윈이 끝났을 때 이벤트 처리

Completed 이벤트를 이용하여 트윈의 실행이 끝났을 때, 필요한 처리를 작성할 수 있습니다.

local TweenService = game:GetService("TweenService")
local Part = script.Parent

-- Setting Tween information
local TweenInfoData = TweenInfo.new(
    2,                        -- Easing duration (seconds)
    Enum.EasingStyle.Linear,  -- Easing style
    Enum.EasingDirection.Out, -- Easing direction
    0,                        -- Number of repetitions
    false,                    -- Whether to reverse
    0                         -- Wait time
)

-- Properties to be changed with the tween
local TweenGoals = 
{
    Position = Vector3.new(-400, 50, -350)
}

local Tween = TweenService:Create(Part, TweenInfoData, TweenGoals)

local function OnCompleted()
    print("Tween Complete!")
end
Tween.Completed:Connect(OnCompleted)

Tween:Play()
PreviousSaving & Loading DataNext모듈 스크립트

Last updated 1 month ago

📝