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
  • 개요
  • 임포트 가능한 에셋 종류
  • 메쉬 제작 가이드라인
  • 충돌체 생성 기준
  • 충돌 메쉬(UCX) 사용하기
  • 에셋 임포트
  • 에셋 임포트 방법
  • 메쉬 임포트 옵션
  • 주의 사항
  • 임포트한 메쉬에 텍스쳐 자동 연결
  • 오버데어에 등록
  • 등록 방법
  • Creator Hub에서 내 에셋 찾기
  • 배포 여부 설정
  • 에셋 배치하기
  • Asset Id 연결 방법
  • Asset Id가 필요한 속성의 종류
  • 연결 방법
  • Script에서 Asset Id 사용시 주의사항
  1. MANUAL
  2. 스튜디오 메뉴얼
  3. 에셋 & 리소스 제작

에셋 임포트

Previous에셋 & 리소스 제작Next애니메이션 에디터

Last updated 2 days ago

개요

OVERDARE Studio에서 제작한 월드 에셋은 에 등록할 수 있습니다. 등록된 에셋은 공개 설정에 따라 OVERDARE Studio의 Asset Drawer에서 누구나 자유롭게 활용할 수 있습니다.

Blender나 3D Max 등 외부에서 작업된 3D 모델이나, 배경음 같은 오디오, UI용 이미지 등 월드 제작을 위해 필요한 에셋들을 임포트하세요.

임포트 가능한 에셋 종류

에셋 타입
지원되는 확장자

텍스쳐

.png / .tga (용량: 15MB 이하)

메시

.fbx / .obj (트라이 수: 30,000, 용량 : 250 MB 이하)

오디오

.wav (용량: 25 MB 이하)

메쉬 제작 가이드라인

충돌체 생성 기준

OVERDARE Studio에서 메쉬를 임포트할 때, 메쉬 구조를 바탕으로 자동으로 충돌체가 생성됩니다. 만약 메쉬가 Convex(볼록한 형태)로 문제없이 감쌀 수 있다고 판단되면, 아래와 같은 방식으로 충돌체가 만들어집니다.

기본 생성 방식

  • 메쉬당 최대 32개의 Convex

  • 하나의 Convex는 최대 32개의 정점(Vertices)까지만 포함

  • Convex로 메쉬 구조를 감쌀 수 있다고 판단되면, 최대 Convex 32개 × 각 정점 32개 = 총 1024개 정점 기준의 충돌체 생성 가능

    • 충돌체로 변환되는 총합 기준이 1024이며, 이 제한을 넘으면 자동 충돌 생성이 비정상적일 수 있습니다.

이 방식은 성능상 유리하지만, 다음과 같은 문제가 발생할 수 있습니다:

  • 메쉬 구조와 맞지 않아 충돌이 허공에 뜨거나, 파손 또는 뚫리는 현상이 생길 수 있음

  • 충돌체가 허공에 뜨거나, 메쉬를 뚫는 것과 같이 다소 부정확할 수 있음

Convex 생성을 포기하고 메쉬를 충돌체로 사용하는 조건

  • 구조가 일정하지 않고 들쭉날쭉한 메쉬일 때 (평면이 아닌, 비정형 구조의 메쉬)

  • 너무 많은 Convex가 필요한 구조일 때 (Convex 정점의 수가 메쉬 정점의 수 보다 많아 질 때)

  • 메쉬 구조를 그대로 충돌체로 사용하는 게 유리할 때

현재 자동 충돌체 생성 기능은 메쉬의 형상을 정밀하게 따르기보다는, 대략적인 충돌 영역을 빠르게 생성하는 데 초점이 맞춰져 있습니다. 따라서 충돌 정확도가 중요한 콘텐츠나 상황에서는 수동으로 충돌체를 설정하는 것을 권장드립니다.

팁

  • 복잡하거나 정밀한 충돌이 필요한 경우, 직접 충돌체를 만들어 사용하는 걸 추천합니다.

  • 메쉬 구조 그대로 충돌을 만들고 싶다면, 정점 수 제한을 초과하지 않도록 주의하세요.

  • 정확한 충돌감지를 원한다면, 컨벡스 기반이 아닌 수동 충돌체 설정이 더 나을 수 있어요.

충돌 메쉬(UCX) 사용하기

Blender나 3ds Max와 같은 3D 모델링 소프트웨어에서 충돌용으로 사용할 메쉬를 생성한 후, 해당 메쉬의 이름을 UCX_메쉬이름 형식으로 지정하면 OVERDARE Studio에 임포트될 때, UCX_ 접두어가 붙은 메쉬들은 충돌체로 자동 인식됩니다.

이 기능을 이용하면 복잡한 형태의 메쉬에서 별도의 충돌용 메쉬를 따로 사용할 수 있습니다. (단, 충돌용 메쉬는 완전히 닫힌 형태여야 하며, 면이 뚫려 있으면 정상적으로 충돌 처리가 되지 않습니다.)

에셋 임포트

에셋 임포트 방법

OVERDARE Studio에서 World를 불러온 다음, 해당 월드에서 사용할 에셋을 임포트할 수 있습니다.

에셋 임포트는 OVERDARE Studio 최상단 탭 영역에서 Home탭을 선택하면 출력되는 Import 버튼 또는 BulkImport 버튼을 눌러 진행할 수 있습니다.

또는 Asset Manager 패널에서도 Import 버튼을 눌러 진행할 수 있습니다.

  • Import 버튼: 하나의 에셋만 임포트할 수 있습니다. (메쉬를 임포트할 때 상세한 옵션을 설정할 수 있습니다.)

  • BulkImport 버튼 또는 Import 버튼: 여러 에셋을 임포트할 수 있습니다. (메쉬를 임포트할 때 간소화된 옵션을 설정할 수 있습니다.)

캐릭터 애니메이션 임포트는 캐릭터 메뉴얼을 참고하세요.

메쉬 임포트 옵션

File General

구분
설명
기본값

Name

사용자가 불러온 3D 에셋의 이름을 표시합니다. 에셋의 이름을 변경하여 프로젝트에서 노출되게 할 수 있습니다.

Import Only as Model

활성화된 경우, 모델에 여러 Child Objects가 포함되어 있더라도 모델을 단일 자산으로 불러옵니다. 체크박스를 해제하여 비활성화한 경우, 모델과 여러 메쉬 등 하위 항목들을 개별 에셋으로 불러옵니다.

기본적으로 활성화되어 있습니다.

Insert in Workspace

활성화된 경우, 사용자가 불러온 3D 에셋을 Workspace와 Asset Drawer에 삽입합니다. 체크박스를 해제하여 비활성화한 경우, Toolbox, Asset Manager에만 삽입됩니다.

기본적으로 활성화되어 있습니다.

Insert Using Scene Position

활성화된 경우, 모델을 Workspace에 삽입할 때의 current scene position을 사용합니다.

기본적으로 비활성화되어 있습니다.

Set Pivot to Scene Origin

활성화된 경우, 전체 모델의 Pivot point를 Scene Origin으로 설정합니다.

기본적으로 활성화되어 있습니다.

File Transform

구분
설명
기본값

World Forward

오브젝트의 앞쪽을 향하는 축을 설정합니다. Front, Back, Left, Right 중 하나로 설정할 수 있습니다.

기본적으로 'Front'로 설정되어 있습니다.

World Up

오브젝트의 위쪽을 향하는 축을 설정합니다. Top, Bottom, Left, Right 중 하나로 설정할 수 있습니다.

기본적으로 'Top'으로 설정되어 있습니다

File Geometry

구분
설명
기본값

Scale Unit

파일을 가져올 때 적절한 크기가 되도록 파일을 모델링한 단위를 설정합니다. Stud, Metor, CM, MM, Foot, Inch 중 하나로 설정할 수 있습니다.

기본적으로 'CM'로 설정되어 있습니다.

Merge Meshes

활성화된 경우, 모델의 모든 MeshPart를 단일 MeshPart로 병합하고 모델이 아닌 하나의 MeshPart로 생성됩니다.

기본적으로 비활성화되어 있습니다.

Invert Negative Faces

메쉬에서 음수면의 방향을 반전시킵니다.

기본적으로 비활성화되어 있습니다.

Object Geometry

구분
설명
기본값

Make Double Sided

  • 비활성화된 경우, 정점/꼭짓점을 단면으로 설정합니다. 단면의 꼭짓점은 한 방향에서 볼 수 있다는 의미입니다.

  • 활성화한 경우, 정점/꼭짓점을 양면으로 설정합니다. 양면의 정점/꼭짓점은 시각적으로 양 방향으로 보임을 의미합니다.

기본적으로 비활성화되어 있습니다.

Ignore Vertex Colors

활성화된 경우, Child Object의 정점 색상 데이터를 무시합니다.

기본적으로 비활성화되어 있습니다.

주의 사항

Import한 에셋을 오버데어에 등록하지 않으면 월드를 생성한 크리에이터만 이용할 수 있으며, 맵 파일을 다른 크리에이터에게 전송했을때, 해당 크리에이터에게는 정상적으로 동작되지 않을 수 있습니다.

따라서, 하나의 맵 파일을 여러 크리에이터가 함께 작업해야 하는 경우, Import한 에셋을 반드시 오버데어에 등록하세요.

임포트한 메쉬에 텍스쳐 자동 연결

3ds Max나 Blender 같은 3D 모델링 프로그램에서 텍스쳐가 설정된 메쉬를 Export한 다음, Studio 최상단 탭 영역의 Home 탭에서 Import 버튼으로 임포트 할 때, Import Only as Model을 비활성화하면 모델에 텍스쳐가 연결된 상태로 임포트됩니다.

(Bulk Import나, Asset Manager의 Import 버튼으로 임포트할때는 Import Only as Model을 비활성화해도 텍스쳐가 연결되지 않습니다.)

오버데어에 등록

등록 방법

등록하고자 하는 World Asset을 Level Browser에서 선택한 다음, 우클릭 하면 나오는 메뉴에서 Save to OVERDARE를 통해 에셋을 Creator Hub에 등록할 수 있습니다.

Save to OVERDARE를 클릭하면 에셋 정보를 입력하는 웹 페이지로 자동 연결됩니다. 웹 페이지를 찾은 다음, 에셋의 태그, 공개 여부 등 에셋 정보를 입력합니다. (모든 정보를 입력해야 에셋을 등록할 수 있습니다.)

약관을 확인하고 동의를 선택한 다음, Complete를 눌러 등록을 완료합니다.

등록이 완료된 에셋은 Studio내 Asset Drawer에서 확인할 수 있습니다. 공개 설정된 에셋은 다른 크리에이터도 사용할 수 있습니다.

Creator Hub에서 내 에셋 찾기

Dashboard에서 World Asset 탭을 눌러 등록한 모든 에셋을 확인할 수 있습니다.

배포 여부 설정

월드 에셋 편집 페이지에서 Distribute on Asset Store 옵션으로 Studio내 Asset Drawer 패널에 해당 에셋을 표시할 지 설정할 수 있습니다. (Distribute를 활성화하면 다른 크리에이터도 사용할 수 있게 됩니다.)

에셋 배치하기

Asset Manager에서 배치할 에셋의 카테고리를 선택합니다.

배치할 에셋을 확인합니다.

에셋을 더블클릭하거나, 드래그한 다음 Viewport로 드랍하면 Workspace에 에셋이 배치됩니다.

Asset Id 연결 방법

일부 오브젝트는 에셋을 참조하여 표시됩니다. 예를 들어, MeshPart 오브젝트는 표시할 메쉬를, MeshPart나 VFX는 텍스처를, 사운드는 재생할 오디오를 참조합니다. 이러한 경우, 해당 오브젝트에 표시할 에셋의 Asset ID를 연결해야 합니다.

Asset Id가 필요한 속성의 종류

필드
관련 오브젝트

Mesh Id

MeshPart, CharacterMesh 등

Texture Id

MeshPart, BackpackItem, VFX 등

Sound Id

Sound

Image

ImageButton, ImageLabel 등

연결 방법

오브젝트를 선택한 상태에서, 프로퍼티창에서 Mesh Id나 Texture Id 등 Asset Id가 필요한 속성이 있는지 확인합니다.

Asset Id는 Asset Manager에서 에셋을 우클릭한 다음, Copy Asset ID to Clipboard를 클릭해서 복사할 수 있습니다.

또는 Asset Drawer에서 에셋에 커서를 올리면 나오는 돋모기 모양(🔍) 버튼을 클릭하고, Asset Id 오른쪽에 있는 복사 버튼을 클릭해서 복사할 수 있습니다.

복사한 Asset ID는 ovdrassetid://번호 형식으로 설정해야 합니다. (예시 : ovdrassetid://1234)

Script에서 Asset Id 사용시 주의사항

프로퍼티창이 아닌, 스크립트에서도 Asset Id를 다음과 같이 할당할 수 있습니다.

local Worksapce = game:GetService("Workspace")
local Sound = Worksapce.Sound

Sound.SoundId = "ovdrassetid://1234"

위와 같이 스크립트에서 사용하는 경우, 직접 임포트한 메쉬, 텍스처, 사운드, 애니메이션은 Level Browser에 배치하지 않아도 사용할 수 있습니다.

하지만 Asset Drawer에서 가져온 에셋은 스크립트에서 사용하려면 반드시 Level Browser에 배치되어 있어야 합니다. (Level Browser에 배치되어 있지 않으면 Studio에서는 정상적으로 로드되더라도 모바일에서는 로드되지 않습니다.)

상단 메뉴 영역에서 Dashboard - My Contents를 눌러 Dashboard로 이동합니다.

🏰
Creator Hub
캐릭터
Creator Hub