본문 바로가기
GameMaker강좌[GM8]/3D기능강좌

[게임메이커강좌-3D강좌]3D의 시작

by 타락카얀 2013. 4. 16.
728x90





게임메이커는 2D전용 툴입니다.
하지만 약간의 3D기능을 지원하는데, 사용하기에 따라 다양한 게임을 만들 수 있습니다.

우선 3D기능을 사용하기 전에, 2D의 기능들을 어느정도 사용해보시는 것을 권장합니다.
대부분이 2D기능을 응용해서 사용하기 때문이죠.

이제 3D의 기능을 약간 들여다 보도록 해요.








◈ 3D기능의 활성화



3D의 기능을 활성화할 때는 아래의 코드를 사용합니다.



     
d3d_start();


이것은 한번 활성화되면 d3d_end를 사용하지 않는한 룸을 이동해도 계속 유지됩니다.
보통 게임이 시작될 때 한번만 실행합니다.

또한, d3d_계열의 기능을 사용하려면 d3d_start는 필수로 실행해야합니다.

3D의 기능을 비활성화할 때는 아래의 코드를 사용합니다.



     
d3d_end();


이것은 3D의 기능을 끌때 사용하며, 다시 활성화하려면 d3d_start를 사용해야합니다.







◈ 3D좌표



3D의 좌표는 x,y,z의 좌표를 사용합니다.
하지만, 게임메이커는 2D 전용 툴이라 x,y좌표만 기본적으로 지원되고, z는 사용자가 직접 정의하여

사용해야합니다.

단순히 오브젝트에서 z=0; 이렇게 변수를 선언하고 z좌표를 사용하면 됩니다.







◈ 3D 카메라




     
d3d_set_projection(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup)





(▲3D 시점)


xfrom, yfrom, zfrom은 카메라의 위치이고, xto, yto, zto는 바라보는 목표지점입니다.
xup, yup, zup는 카메라의 위쪽의 시점을 지정합니다.
기본적으로 zup을 1로 xup, yup은 0으로 설정하지요.


예를 들면,



    
d3d_set_projection(0,0,32,320,240,0,0,0,1);


이것은 카메라가 (0,0,32)의 위치에서 (320,240,0)의 위치를 바라봅니다.







◈ 3D세계에서 2D변환



3D에서 2D화면을 표시할 수 있는데 이럴 땐 아래의 것을 사용한뒤에 프로그래밍하면 됩니다.



 
     d3d_set_projection_ortho(x,y,w,h,angle)


보통은 (x,y)에 (0,0), w,h는 화면의 크기 angle은 0입니다.
angle로 2D의 화면을 회전할 수 있어요.
주의 할 것은 d3d_set_projection_ortho이 3D카메라 시점인 d3d_set_projection보다 나중에

처리하도록 프로그래밍해야 3D가 제대로 표시됩니다.
물론 두개를 분리하여 사용하는 것도 좋은 방법입니다.


예를 들면,



 
    d3d_set_projection_ortho(0,0,640,480,0) ;     draw_text(32,32,"Game Maker")


이것은 (0,0)를 기점으로 640X480의 화면으로 2D를 설정하고, "Game Maker"문자열을 화면의 (32,32)위치에 표시합니다.







◈ 광원




     
d3d_set_lighting(enable)


이것은 3D에서 광원을 적용할 때 사용합니다.

기본값은 false입니다.





3D 기능에 대해 간략하게 알아보았습니다.
위에 것들은 게임메이커 3D기능에서 가장 기초적인 부분이며, 가장 중요한 부분이기도 합니다.
여기까지 알고있다면 이제 여러분은 간단한 3D게임정도는 만들 준비가 된 것입니다.





300x250

댓글