Creator Guide
Korean
Korean
  • ๐ŸšฉOVERDARE ์†Œ๊ฐœ
  • ๐Ÿค์‹œ์ž‘ํ•˜๊ธฐ
    • OVERDARE App
    • OVERDARE Studio
  • ๐Ÿ“Œ์šด์˜ ์ •์ฑ…
    • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐ€์ด๋“œ๋ผ์ธ
    • UGC ์ฝ˜ํ…์ธ  ์ œ์ž‘ ๊ฐ€์ด๋“œ๋ผ์ธ
    • UGC์˜ ์™ธ๋ถ€ ํ™œ์šฉ ๊ฐ€์ด๋“œ๋ผ์ธ
    • LOGO ํ™œ์šฉ ๊ฐ€์ด๋“œ๋ผ์ธ
    • ์ง€์‹ ์žฌ์‚ฐ๊ถŒ ์ •์ฑ…
    • ์‹ ๊ณ  ์•ˆ๋‚ด
    • ์ฝ˜ํ…์ธ  ์ œ์žฌ ์ด์˜ ์‹ ์ฒญ ์•ˆ๋‚ด
    • ํฌ๋ฆฌ์—์ดํ„ฐ ์ •์‚ฐ ์ •์ฑ…
    • OVERDARE ์ˆ˜์ตํ™” ๊ฐ€์ด๋“œ๋ผ์ธ
  • ๐Ÿฐ์ŠคํŠœ๋””์˜ค ๋ฉ”๋‰ด์–ผ
    • ์ŠคํŠœ๋””์˜ค ์ธํ„ฐํŽ˜์ด์Šค
    • ์—์…‹ ์ž„ํฌํŠธ
    • ์ขŒํ‘œ๊ณ„
    • ๊ฒŒ์ž„ ์„ค์ •
    • ์ŠคํŠœ๋””์˜ค ํ…Œ์ŠคํŠธ ํ”Œ๋ ˆ์ด
    • ์›”๋“œ ํผ๋ธ”๋ฆฌ์‹œ
    • Collaboration
    • ์Šคํฌ๋ฆฝํŠธ ์—๋””ํ„ฐ
    • ์ •๋ ฌ
    • ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—๋””ํ„ฐ
    • Material Manager
    • Collision Groups
    • Tag Editor
    • Payout Guideline
    • Object
      • ํŒŒํŠธ
      • ๋ชจ๋ธ
      • ์บ๋ฆญํ„ฐ
        • Humanoid Description
      • ์นด๋ฉ”๋ผ
      • ๋ฌผ๋ฆฌ
      • ์กฐ๋ช…
      • Tool
      • VFX
      • Sound
      • GUI
  • ๐Ÿ“์Šคํฌ๋ฆฝํŠธ ๋ฉ”๋‰ด์–ผ
    • ์Šคํฌ๋ฆฝํŠธ ๊ฐœ์š”
    • ๋ฃจ์•„ ๊ธฐ์ดˆ ๊ฐ€์ด๋“œ
    • ์ฝ”๋”ฉ ์Šคํƒ€์ผ
    • ์˜ค๋ธŒ์ ํŠธ ์ฐธ์กฐ
    • ์ด๋ฒคํŠธ
    • ์„œ๋ฒ„-ํด๋ผ ํ†ต์‹ 
    • BindableEvent
    • Value Objects
    • ๋ชจ๋ฐ”์ผ ์กฐ์ž‘ ์ฒ˜๋ฆฌ
    • ํŠธ์œˆ
    • ์ค‘๋‹จ์ 
    • ๋ชจ๋“ˆ ์Šคํฌ๋ฆฝํŠธ
    • TPS Strafing System
    • Saving & Loading Data
    • ์œ ๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž์šฉ ๊ฐ€์ด๋“œ
    • ์Šคํฌ๋ฆฝํŠธ ์ตœ์ ํ™” ์‹ค์ „ ๊ฐ€์ด๋“œ
  • ๐Ÿ“š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
  • ๐Ÿ…ฐ๏ธOVERDARE Glossary
  • ๐Ÿ“ฐRelease Note
Powered by GitBook
On this page
  • ๊ฐœ์š”
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
  • Use Strafing Animations ํ™œ์„ฑํ™”
  • ์บ๋ฆญํ„ฐ์˜ ํšŒ์ „ ๋ฐฉํ–ฅ์„ ์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •
  • ์นด๋ฉ”๋ผ ์˜คํ”„์…‹ ์ ์šฉ
  • ์ƒ์ฒด ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณ€๊ฒฝ
  • ํ™œ์šฉ ์˜ˆ์‹œ
  1. ์Šคํฌ๋ฆฝํŠธ ๋ฉ”๋‰ด์–ผ

TPS Strafing System

Previous๋ชจ๋“ˆ ์Šคํฌ๋ฆฝํŠธNextSaving & Loading Data

Last updated 9 days ago

๊ฐœ์š”

TPS Strafing System์€ 3์ธ์นญ ์ŠˆํŒ…(TPS) ๊ฒŒ์ž„์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ด๋™ ๋ฐฉ์‹์œผ๋กœ, ์บ๋ฆญํ„ฐ๊ฐ€ ์นด๋ฉ”๋ผ์˜ ๋ฐฉํ–ฅ์„ ๊ธฐ์ค€์œผ๋กœ ์›€์ง์ด๋ฉฐ, ์ƒ์ฒด๋Š” ์กฐ์ค€์ ์„ ํ–ฅํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํ•˜์ฒด๋Š” ์ด๋™ ๋ฐฉํ–ฅ์— ๋งž์ถฐ ์›€์ง์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒํ•˜์ฒด ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋…๋ฆฝ์ ์œผ๋กœ ์žฌ์ƒ๋˜๋ฉฐ, ๋ณด๋‹ค ์ž์œ ๋กœ์šด ์กฐ์ค€ ๋ฐ ์ด๋™ ์ปจํŠธ๋กค์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Use Strafing Animations ํ™œ์„ฑํ™”

Level Browser์—์„œ Players๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ, Use Strafing Animations๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉด ๋‹จ์ผ ์ด๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•  ๊ฒฝ์šฐ, ๋Œ€๊ฐ์„ ์„ ํฌํ•จํ•œ ์ƒํ•˜์ขŒ์šฐ 8๋ฐฉํ–ฅ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ด๋™ ๋ฐฉํ–ฅ์— ๋งž์ถฐ ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฒŒ๊ฑธ์Œ(Strafing), ํ›„์ง„, ๋Œ€๊ฐ์„  ์ด๋™ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉํ–ฅ์˜ ์ด๋™์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

Use Strafing Animations ์˜ต์…˜๋งŒ ๋‹จ๋…์œผ๋กœ ํ™œ์„ฑํ™”ํ–ˆ์„ ๊ฒฝ์šฐ, ์‹œ๊ฐ์ ์ธ ์ฐจ์ด๊ฐ€ ๋šœ๋ ทํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์•„๋ž˜์˜ ์„ค์ •๋“ค๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํšจ๊ณผ๋ฅผ ์ œ๋Œ€๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์บ๋ฆญํ„ฐ์˜ ํšŒ์ „ ๋ฐฉํ–ฅ์„ ์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •

UserGameSettings์˜ RotationType์„ CameraRelative๋กœ ์„ค์ •ํ•˜์—ฌ ์บ๋ฆญํ„ฐ๊ฐ€ ์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

(๊ธฐ์กด ์„ค์ •์œผ๋กœ ๋ณต๊ตฌํ•˜๋ ค๋ฉด Enum.RotationType.MovementRelative๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.)

StarterCharacterScripts์—์„œ LocalScript๋กœ ์•„๋ž˜์˜ ์ฝ”๋“œ ์ž‘์„ฑ:

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

repeat wait() until LocalPlayer.Character
local Character = LocalPlayer.Character
local Humanoid = Character:WaitForChild("Humanoid")

local UserGameSettings = UserSettings().GameSettings
UserGameSettings.RotationType = Enum.RotationType.CameraRelative

Use Strafing Animations ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ์บ๋ฆญํ„ฐ์˜ ํšŒ์ „ ๋ฐฉํ–ฅ์„ ์นด๋ฉ”๋ผ ๊ธฐ์ค€(CameraRelative)์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, ์บ๋ฆญํ„ฐ๋Š” ํ•ญ์ƒ ์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ์„ ๋ฐ”๋ผ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒ์ฒด๋Š” ์นด๋ฉ”๋ผ(์กฐ์ค€ ๋ฐฉํ–ฅ)์„ ๊ธฐ์ค€์œผ๋กœ, ํ•˜์ฒด๋Š” ์ด๋™ ๋ฐฉํ–ฅ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์ธ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค.

RotationType์ด CameraRelative๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ์บ๋ฆญํ„ฐ๊ฐ€ ์นด๋ฉ”๋ผ ๋ฐฉํ–ฅ์„ ๋”ฐ๋ผ ํšŒ์ „ํ•˜๋Š” ์†๋„๋Š” CharacterTurnRateWhenUsingCameraRelative ๊ฐ’์„ ํ†ตํ•ด ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ด ๊ฐ’์˜ ๊ธฐ๋ณธ๊ฐ’์€ -1์ด๋ฉฐ, ์ด๋Š” ์ฆ‰์‹œ ํšŒ์ „ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.)

UserGameSettings.CharacterTurnRate = 200

์นด๋ฉ”๋ผ ์˜คํ”„์…‹ ์ ์šฉ

CameraOffset ์†์„ฑ์œผ๋กœ ์นด๋ฉ”๋ผ์˜ ์ƒ๋Œ€ ์œ„์น˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ TPS ๊ฒŒ์ž„์—์„œ๋Š” ์บ๋ฆญํ„ฐ๋ฅผ ํ™”๋ฉด ์ค‘์•™์—์„œ ์•ฝ๊ฐ„ ๋ฒ—์–ด๋‚œ ์œ„์น˜์— ๋ฐฐ์น˜ํ•จ์œผ๋กœ์จ, ์กฐ์ค€์ ๊ณผ ์บ๋ฆญํ„ฐ๊ฐ€ ์‹œ๊ฐ์ ์œผ๋กœ ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

StarterCharacterScripts์—์„œ LocalScript๋กœ ์•„๋ž˜์˜ ์ฝ”๋“œ ์ž‘์„ฑ:

local Workspace = game:GetService("Workspace")
local Camera = Workspace:WaitForChild("Camera")

Camera.CameraOffset = Vector3.new(90, 90, -120)

์ƒ์ฒด ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณ€๊ฒฝ

Use Strafing Animations ์˜ต์…˜๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์บ๋ฆญํ„ฐ๋Š” ์ƒ์ฒด์™€ ํ•˜์ฒด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ๋‹ˆ๋ฉ”์ด์…˜ ํŠธ๋ž™์˜ UpperBodyAnimation ์†์„ฑ์„ true๋กœ ์„ค์ •ํ•˜๋ฉด, ํ•ด๋‹น ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ์ƒ์ฒด์—๋งŒ ์ ์šฉ๋˜์–ด ์žฌ์ƒ๋ฉ๋‹ˆ๋‹ค.

StarterCharacterScripts์—์„œ LocalScript๋กœ ์•„๋ž˜์˜ ์ฝ”๋“œ ์ž‘์„ฑ:

local Animation = Instance.new("Animation")
Animation.AnimationId = "BasicHandgunIdleAnimation"

local Animator = Humanoid:FindFirstChild("Animator")
local AnimationTrack = Animator:LoadAnimation(Animation)
AnimationTrack.UpperBodyAnimation = true

AnimationTrack.Looped = true
AnimationTrack:Play()

Use Strafing Animations ์˜ต์…˜๊ณผ UpperBodyAnimation์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด, ์ƒ์ฒด๋Š” ์กฐ์ค€ ๋ฐฉํ–ฅ, ํ•˜์ฒด๋Š” ์ด๋™ ๋ฐฉํ–ฅ์„ ๊ธฐ์ค€์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ๋ณด๋‹ค ์ž์—ฐ์Šค๋Ÿฝ๊ณ  ์—ญ๋™์ ์ธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™œ์šฉ ์˜ˆ์‹œ

  • ์ด๊ธฐ ์žฅ์ฐฉ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ RotationType ์„ค์ •

    • ์ด๊ธฐ๋ฅผ ์žฅ์ฐฉํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” MovementRelative๋กœ ์„ค์ •ํ•˜์—ฌ ์ผ๋ฐ˜ ์ด๋™ ์ฒ˜๋ฆฌ

    • ์ด๊ธฐ๋ฅผ ์žฅ์ฐฉํ•œ ์ƒํƒœ์—์„œ๋Š” CameraRelative๋กœ ์„ค์ •ํ•˜์—ฌ ์‹œ์•ผ ๊ณ ์ • ์ด๋™ ์ฒ˜๋ฆฌ

  • ํˆฌ์ฒ™๋ฅ˜ ๋ฌด๊ธฐ๋ฅผ ์žฅ์ฐฉํ•œ ์ƒํƒœ์—์„œ ์กฐ์ค€ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ RotationType ์„ค์ •

    • ๋ฏธ์กฐ์ค€์‹œ์—๋Š” MovementRelative๋กœ ์„ค์ •ํ•˜์—ฌ ์ผ๋ฐ˜ ์ด๋™ ์ฒ˜๋ฆฌ

    • ์กฐ์ค€์‹œ์—๋Š” CameraRelative๋กœ ์„ค์ •ํ•˜์—ฌ ์‹œ์•ผ ๊ณ ์ • ์ด๋™ ์ฒ˜๋ฆฌ

  • ๋ฌด๊ธฐ ์ข…๋ฅ˜๋ณ„๋กœ CameraOffset๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ

๐Ÿ“
Use Strafing Animations ๋น„ํ™œ์„ฑํ™”
Use Strafing Animations ํ™œ์„ฑํ™”