API

레드브릭 스튜디오의 API 개요에 대해 안내합니다.

THREE Default API

Redbrick Studio는 3D 그래픽 라이브러리인 three.js 기반으로 만들어져 있습니다. 프로젝트 내의 모든 오브젝트는 Mesh, Audio, Light 등 three.js의 다양한 오브젝트로 구성됩니다.

이에 따라 스크립트 내에서 three.js의 API를 사용할 수 있습니다.

three.js 오브젝트 클래스들은 모두 기본이 되는 Object3D 클래스로부터 확장됩니다. 몇몇 three.js 오브젝트는 더욱 세분화되어 확장되기도 합니다. 예를 들어 Light 클래스의 경우 AmbientLight, PointLight 등으로 확장됩니다. 클래스가 확장되는 것은 클래스의 성격이 더 구체화되는 것을 의미하며 그에 따라 사용할 수 있는 API 또한 더욱 구체적인 방향으로 확장됩니다.

가장 기본적인 Object3D 클래스만으로도 모든 오브젝트의 기본적인 부분은 다룰 수 있기 때문에 Object3D 클래스에 먼저 익숙해지는 것이 좋습니다.

API Extensions

기본적으로 모든 오브젝트는 각각의 클래스에 맞는 three.js의 API를 사용할 수 있지만 일부 오브젝트의 경우 오브젝트의 특수한 목적을 위해, 혹은 사용 편의를 위해 API Extension을 추가하였습니다. 자세한 내용은 API Extensions 페이지에서 확인할 수 있습니다.

ℹ️

Redbrick Studio의 Object Library에는 몇가지 카테고리가 있습니다. 각 카테고리의 오브젝트는 다음과 같은 three.js 오브젝트로 구성되어 있으니 참고 바랍니다.

Redbrick Objectthree.js Object
AssetGroup | Mesh | Object3D
CameraCamera
MeshMesh
GUISprite | CSS2DObject
VideoMesh
SoundObject3D | Audio
LightLight
EffectObject3D | Sprite
SpawnGroup | Mesh
Ad AssetGroup | Mesh | Object3D
ℹ️

추가적으로, 모든 오브젝트를 담고 있는 Scene과 이를 보기 위한 눈 역할을 하는 Camera는 다음과 같은 three.js 오브젝트로 구성되어 있습니다.

Redbrick Objectthree.js Object
WORLDScene

Built-in Module

위에서 소개한 three.js 기반 API로 오브젝트를 다룰 수 있게 됐지만 월드를 제작하다보면 단순히 오브젝트를 다루는 것 외에도 이를 융합하여 게임적인 요소를 만들거나 흐름을 설계하고 멀티플레이를 구현하는 등 다양한 작업이 필요합니다. 이에 필요한 API들을 모아서 Builtin Module로써 제공하고 있습니다. 자세한 내용은 Builtin Modules 페이지에서 확인할 수 있습니다.