본문 바로가기

레퍼런스

(41)
고도엔진 튜토리얼 #15 유니티에서 고도엔진까지(From Unity3D to Godot Engine) 이번 번역은 긴 문장이 많아서 문맥 상 이상한 점이 있을 수 있습니다. 영어를 하실 줄 아시면 직접 페이지를 보는 걸 추천드려요.-------------------------------------------------------------------------------------------------------------------------------------------- 이 가이드는 유니티 사용자의 관점에서 고도엔진을 살펴볼 수 있도록 합니다. 그리고 여러분의 유니티 사용 경험을 고도의 세상에서 사용할 수 있도록 도와주는 것이 목표입니다. 차이점 유니티 고도 라이센스 수익 한도 및 사용 제한이 있는 독점적, 폐쇄적, 무료 라이센스 MIT 라이센스, 무료이며 아무 제한없는 오픈 소스 운영체제(편집기..
고도엔진 튜토리얼 #14 2D와 3D 키바인딩(2D and3D keybindings) 2D 뷰포트 Q, W, E로 마우스, 시점 이동, 시점 회전 선택 선택 :F : 선택한 것 보기Delete : 선택한 것 삭제Ctrl-D : 선택한 것 복사하기 작동 :오른쪽 마우스 : 취소S : 스냅을 가능하게 하다V : 피봇 변환(스프라이트) 뷰포트 : 가운데 마우스 / 스페이스와 움직이는 키 : 패닝휠 업 : 줌 인휠 다운 : 줌 아웃 선택 모드에서 :Ctrl + 왼쪽 마우스 : 선택된 것 돌리기Shift + 왼쪽 마우스 : 선택된 것 움직이기 3D 뷰포트 Q, W, E, R 각각 마우스 모드, 시점 이동, 시점 회전, 줌 인과 줌 아웃 모드 선택 :F : 선택된 것 보기Delete : 선택된 것 삭제Ctrl-D : 선택된 것 복사 작동 : 가운데 마우스 : 축 고정오른쪽 마우스 : 샂게S : 스냅..
고도엔진 튜토리얼 #13 하나씩 일어나는 일(오토로드) (Singletons (AutoLoad)) 도입 씬 싱글톤(하나씩 일어나는 일 - 싱글톤)은 씬 사이에 지속적인 정보를 저장해야 하는 일반적인 사용 사례에 맞게 구성하는데 굉장히 유용합니다. 매우 강력하기는 하지만, 씬 시스템 자체에 몇 가지 단점이 있습니다 : 하나 이상의 씬에서 필요한 정보(플레이어의 아이템 등)를 저장할 공동의 공간이 없습니다.다른 씬을 로드하고 언로드하기 위한 장면의 경우에는 자식들이 그런 자식 씬에 공통된 정보를 저장하는 것이 가능하지만, 이러한 장면들이 스스로 실행되고 제대로 작동하기를 기대할 수는 없다.정보가 디스크의 'user://'에 저장될 수 있고 이 정보가 필요한 씬에서 로드될 수 있습니다. 계속해서 씬이 바뀔 때 이 데이터를 저장하고 로드하면 번거롭고 느릴 것입니다. 하지만 고도에서는 여전히 씬의 부분을 만드..
고도엔진 튜토리얼 #12 씬트리(SceneTree) 도입 여기가 추상적으로 변해가기 시작하는 지점입니다. 하지만 이것보다 더 어려운 것은 없으니 겁내지 마세요. 앞선 튜토리얼에서 노드의 개념과 노드로 이루어진 씬들이 돌아다니고 있습니다. 이것들은 씬 트리에 들어가면 활성화됩니다. 이 개념은 좀 더 자세히 볼 필요가 있습니다. 사실 씬 시스템은 고도의 핵심 구성요소도 아닙니다. 서버에 직접 연결되는 스크립트(또는 C++ 코드_를 작성하고 건너뛸 수 있기 때문입니다. 하지만 그런 식으로 게임을 만드는 것은 많은 일을 해야 할 것입니다. 메인 루프 고도가 내부적으로 작동하는 방법은 다음과 같습니다. 여기에 처음에 실행되는 유일한 인스턴스인 운영체제 클래스가 있습니다. 그런 다음, 모든 드라이버, 서버, 스크립팅 언어, 장면 시스템 등이 로드됩니다. 초기화가 완..
고도엔진 튜토리얼 #11 파일 시스템(File system) 도입 파일시스템은 아직 엔진 개발에서 뜨거운 주제입니다. 파일 시스템은 어떻게 에셋이 저장되고 접근되는 지 관리합니다. 잘 설계된 파일시스템은 다수의 개발자에게 협업할 때 같은 소스 파일과 에셋을 편집할 수 있게 해줍니다. 고도엔진의 초기 버전은 (그리고 고도라고 이름 붙이기도 전의 것들도) 데이터베이스를 사용햇습니다. 에셋은 데이터베이스 안에 저장되고 ID를 할당받았습니다. 로컬 데이터베이스, 메타 데이터 파일 등 다른 방식도 시도했습니다. 결국 간단한 접근이 채택되어 지금의 고도는 모든 에셋을 파일로 파일 시스템에 저장합니다. 이행 파일시스템은 자원을 디스크에 저장합니다. 스크립트, 씬 또는 PNG 이미지 등 어떤 것도 엔진의 자원입니다. 만약 자원이 디스크에 있는 다른 자원을 참조하는 속성을 포함하..
고도엔진 튜토리얼 #10 자원, 리소스(Resources) 노드와 리소스 지금까지, 노드는 엔진의 행동과 특징을 고도의 가장 중요한 데이터 타입인 노드를 통해서 암시했습니다. 고도에는 그 만큼 중요한 데이터 타입이 하나 더 있는데요. 바로 자원(Resource)입니다. 노드는 스프라이트를 그리고, 3D 모델을 그리며 물리, GUI 컨트롤 등의 행동에 집중합니다. 자원은 단순히 데이터 저장소입니다. 이것은 그들이 어떠한 행동이나 정보의 프로세스를 수행하지 않는다는 뜻입니다. 자원은 그저 데이터를 담고 있을 뿐입니다. 자원의 예로는 Texture, Script, Mesh, Animation, Sample, AudioStream, Font, Translation 등이 있습니다. 고도에서 씬(.scn 또는 .xml), 이미지(.png, .jpg), 스크립트(.gd)나 ..
고도엔진 튜토리얼 #9 애니메이션(Animations) 도입 이 튜토리얼은 고도에서 애니메이션화를 어떻게 해야하는 지 보여줍니다. 고도의 애니메이션 시스템은 정말 강력하고 유연합니다. 시작하면서, 이전의 튜토리얼에서 사용한 씬을 사용합시다(Splash screen). 목표는 간단한 애니메이션을 추가하는 것입니다. 만약을 위한 복사본입니다 : 애니메이션 생성 우선, AnimationPlayer 노드를 "bg"(루트 노드)의 자식으로 씬에 추가합니다. 노드 타입이 선택되면, 애니메이션 에디터 패널이 나타납니다 : 새로운 애니메이션을 만들 시간입니다! new animation 버튼을 누르고 이름을 "intro"로 해주세요. 애니메이션이 만들어지면, 편집을 할 시간입니다. "edit" 버튼을 누르세요. 애니메이션 편집 이제 마법같은 일이 일어납니다! "edit" 버..
고도엔진 튜토리얼 #8 화면을 뿌리다(Splash screen). 튜토리얼 GUI 하위 시스템이 어떻게 작동하는지 기본적인 아이디어를 만들어주는 간단한 튜토리얼입니다. 목표는 간단한데, 정적인 화면을 뿌리는 것입니다. 아래 파일의 에셋을 사용하세요. 여러분의 프로젝트 폴더에 직접 더해질 수 있습니다 - 따로 import 할 필요가 없습니다 : 설정 Project Settings에서 화면 해상도를 800x450으로 하고, 새로운 씬을 다음과 같이 만드세요 : "background"와 "logo" 노드는 TextureFrame 타입입니다. 표시할 텍스쳐를 설정할 수 있는 특수한 속성이 있습니다. 일치하는 파일을 로드하기만 하면 됩니다. "start" 노드는 TextureButton입니다. 서로 다른 상태에 대한 몇몇 이미지가 있겠지만, 이 예에서는 정상과 눌림 이미지만 제..