본문 바로가기

레퍼런스

(41)
고도엔진 튜토리얼 #23 파티클 시스템 (2D) (Particle Systems (2D)) 소개(Intro) 간단한 (하지만 대부분의 사용에 충분히 유연한) 파티클 시스템이 제공됩니다. 파티클 시스템은 복잡한 물리적인 이펙트, 스파크, 불, 마법 파티클, 연기, 안개, 마법 등을 시뮬레이트할 때 사용해 왔습니다. "파티클"이라는 생각은 고정된 기간동안 고정된 생명시간을 가지고 방출되는 겁니다. 그 생존기간동안 모든 파티클은 같은 기본 행동을 가집니다. 모든 파티클을 다르게 만들고 더 유기적인 모습을 보여주기위해 "randomness(임의성)"이라는 각 매개 변수와 연관되어 있습니다. 필수적으로, 파티클 시스템을 만든다는 것은 기본 물리 매개변수를 설정하고 임의성을 더해준다는 뜻입니다. 파티클2D(Particles2D) 파티클 시스템은 씬에 Particle2D 노드를 통해 추가됩니다. 기본 설정..
고도엔진 튜토리얼 #22 2D에서 커스텀으로 그리기(Custom drawing in 2D) 왜? 고도는 스프라이트, 다각형, 파티클, 그런 것들에 대한 노드를 가집니다. 항상은 아니지만 많은 경우에 이로 충분합니다. 그 특정 노드가 없는 것에 공포와 분노로 울부짖기 전에... 커스텀 커맨드로 그려서 어느 2D 노드든 쉽게 만들 수 있다는 것을 알아야 합니다 (컨트롤이나 Node2D 기반의). 정말 쉽게 할 수 있습니다. 하지만... 노드에서 커스텀 드로잉을 수동으로 하는 것은 매우 유용합니다. 여기 몇몇 예제가 있습니다 : 모양이나 로직을 그리는 것은 노드에 의해 다루어지지 않습니다 (예 : 원을 그리고, 흔적을 가진 이미지, 특별한 종류의 애니메이션 다각형 등 노드를 만드는 것)노드와 호환 가능하지 않은 시각화 (예 : 테트리스 보드). 블록을 그리기 위해 커스텀 드로우 함수를 이용한 테트리..
고도엔진 튜토리얼 #21 타일맵 사용하기(Using tilemaps) 서론 타일맵은 2D 게임 레벨을 만드는 간단하고 빠른 방법입니다. 기본적으로 원할 때마다 격자판(grid)에 올릴 수 있는 참조 타일 더미부터 시작합니다 : 2D 사이드 스크롤링과 탑타운 게임에서 허용되는 충돌도 타일에 추가될 수 있습니다. 타일셋 만들기 시작하려면 타일셋을 만들어야 합니다. 이를 위한 몇몇 타일이 있습니다. 타일들이 같은 이미지에 한꺼번에 있는데, 아티스트들이 종종 이를 선호합니다. 다른 이미지에 나누어 가지고 있는 것도 쓸만합니다. 새로운 프로젝트를 만들고 위의 png 이미지를 디렉토리에 넣어주세요. 우린 이제 TileSet 리소스를 만들겁니다. 이 리소스는 속성을 내보내는데 반하여, 복잡한 데이터를 얻고 유지하는 건 힘듭니다. 수동으로 리소스를 편집하는 건 이와 같은 모습입니다 : ..
고도엔진 튜토리얼 #20 캔버스 층(Canvas layer) 뷰포트와 캔버스 아이템 모든 2D 노드의 기본이 되는 일반적인 2D 노드 Node2D 또는 컨트롤은 CanvasItem에서 상속됩니다. CanvasItem은 트리 모양으로 수덩될 수 있으며 그들의 변환을 상속받을 수 있습니다. 이것은 부모를 움직이면 자식도 움직인다는 것을 뜻합니다. 이 노드들은 뷰포트의 직접 혹은 간접적인 자식으로 위치되며 뷰포트를 통해 볼 수 있습니다. 뷰포트는 커스텀 행렬32 변환에 의한 모든 CanvasItem 계층 구조의 변환을 허용하는 "canvas_transform" Viewport.set_canvas_transform() 속성을 가집니다. 노드는 Camera2D처럼 변환을 바꾸면서 작동합니다. 캔버스 변환을 바꾸는 것은 유용합니다. 왜냐하면 루트 캔버스 아이템을 움직이는 것..
고도엔진 튜토리얼 #19 뷰포트와 캔버스 변환(Viewport and canvas transforms) 도입 이 튜토리얼은 대부분의 사용자에게 다소 어두울 항목을 다룬 후 생성됩니다. 그리고 노드에 대해 로컬에서 콘텐츠를 그리는 시점부터 화면에 그려지는 시점까지 2D 변환되는 모든 사항을 설명합니다. 캔버스 변환 이전 튜토리얼인, 캔버스 층에서 언급했듯이 모든 CanvasItem 노드(Node2D와 제어가 CanvasItem을 공통된 루트로 사용한다는 것을 기억하세요)는 캔버스 층에 있습니다. 모든 캔버스층은 행렬32를 통해 접근 가능한 변환(이동, 회전, 스케일 등)을 가집니다. 또한 앞의 튜토리얼에서 다루었듯이, 노드는 내장된 캔버스인 기본으로 설정된 레이어 0에 그려집니다. 노드를 다른 레이어에 놓고 싶다면, CanvasLayer 노드를 사용할 수 있습니다. 전역 캔버스 변환 뷰포트도 전역 캔버스 변..
고도엔진 튜토리얼 #18 행렬과 변환(Matrices and transforms) 도입 이 튜토리얼를 읽기 전에 벡터 수학과 연속적인 내용이기 때문에 벡터 수학에 대한 설명을 읽어보는 것이 좋습니다. 이 튜토리얼에서는 변환에 대해서 다룰 것이며 행렬에 대해 조금 다룰 것입니다(그렇게 깊은 탐구는 하지 않습니다). 변환은 대부분의 시간을 이동, 회전, 크기 조정을 조정하는 데에 대부분의 시간을 사용하므로 이들이 가장 높은 우선순위로 고려될 것입니다. 객체 좌표 시스템 (OCS) 우주선이 공간 어디엔가 있다고 생각해보세요. 고도에서 이 우주선을 움직이고 회전하는 건 쉬운 일입니다 : 좋습니다, 2D에서 위치와 각을 회전에 사용하는 것은 간단해보입니다. 하지만 우리는 여기까지 오면서 각을 사용하지 않았다는 것을 기억하세요 (추가적으로, 각은 3D에서조차 그렇게 유용하게 사용되지 않습니다)...
고도엔진 튜토리얼 #17 벡터 수학(Vector math) 도입 이 자그마한 튜토리얼은 3D와 2D에 유용한 벡터 수학의 짧고 실용적인 소개를 하는 것이 목표입니다. 다시, 벡터 수학은 3D 뿐만 아니라 2D 게임에도 유용합니다. 여러분이 한 번만 잡아두면 복잡한 행동도 더욱 쉽게 프로그래밍 하게 해주는 놀라운 도구가 됩니다. 종종 젊은 프로그래머들이 2D 게임의 벡터 수학 대신 삼각 함수를 사용하는 것과 같이, 광범위한 문제를 해결하기 위해 잘못된 수학에 너무 많이 의존하게 되는 경우가 있습니다. 이 튜토리얼은 즉시 게임의 예술에 적용 가능한 실용적인 부분에 초점을 맞추었습니다. 좌표 시스템 (2D) 전통적으로, 좌표는 x는 수평값을 그리고 y는 수직값을 지니는 (x, y)의 한 쌍으로 정의합니다. 주어진 스크린이 2차원의 사각형인 경우에만 이것이 성립합니다...
고도엔진 튜토리얼 #16 커맨드라인 튜토리얼(Command line tutorial) 몇몇 개발자는 널리 커맨드라인을 이용하는 것을 좋아합니다. 고도는 이들에게 친화적으로 설계되었습니다. 그래서 완전히 커맨드라인을 이용해 작업하는방법을 단계적으로 보여드리죠. 엔진이 외부 라이브러리에 거의 의존하지 않는 경우 초기화 시간이 매우 빠르므로 이 워크플로우에 적합합니다. 경로 고도 바이너리는 결로 설정 환경 변수에 포함 시키는 것이 좋으며, 그러면 godot을 입력해 어디에서나 쉽게 실행할 수 있습니다. 리눅스에서는 /usr/usr/local/bin에 고도 이진파일을 넣고 godot이라고 불리는 것을 확인해 그렇게 할 수 있습니다. 프로젝트 만들기 커맨드라인으로 프로젝트를 만드는 것은 간단합니다. 쉘을 다니다가 원하는 곳에 만약 비어있다면 engine.cfg 파일을 만드세요. user@host:..