GAME MAKER 강좌
KAYAN
◈ 3D 기본 모델
게임메이커 스튜디오 2에서는 스튜디오 1 이전 버전과 달리 3D 기본 모델을 지원하지 않게 되었기
때문에 모델을 직접 구성해야 됩니다.
강좌에서 첨부한 스크립트들을 게임메이커 스튜디오2에 추가하면, 이전 버전과 같은 기본 모델을
사용할 수 있습니다.
- 스크립트 모음 -
[Tools] 메뉴 ▶ [Import Local Package] 로 파일을 열어 추가하시면 됩니다.
◈ 텍스쳐
3D 텍스쳐의 크기는 가로X세로의 크기가 같아야 하고, 모두 2의 제곱의 크기여야 제대로 표시가 됩니다.
만약 크기가 2의 제곱이 아니면 실제 화면에서 일부가 잘려서 제대로 표시 안 될 수도 있습니다.
그리고 스프라이트 설정의 Separate Texture Page를 체크해야 지정한 스프라이트 이미지를 텍스쳐로
적용 시킬 수 있습니다.
(▲ 스프라이트 설정)
일단 강좌에서 사용되는 텍스쳐는 아래의 그림(64X64)을 사용하도록 하겠습니다.
(▲ 텍스쳐)
이것을 텍스쳐로 사용하려면 아래의 함수를 사용해야합니다.
sprite_get_texture(spr,subimg) spr : 스프라이트 subimg : 서브이미지 예) texid=sprite_get_texture(sprite0,0); |
◈ 기본 모델 시작
강좌의 3D 기본 모델을 표시하려면, draw_3d_start 스크립트로 먼저 기능을 활성화 시켜야 합니다.
1. 기본모델 시작
draw_3d_start( ) |
모델을 사용하기 전에 draw_3d_start 스크립트를 게임 시작(Game Start 이벤트)할 때나,
Room Start이벤트 또는, Create 이벤트에서 1번만 실행해주면 됩니다.
게임을 종료할 때는, 아래의 스크립트를 사용하여 버텍스 버퍼 및 버텍스 포맷을 파기합니다.
2. 기본모델 종료
draw_3d_end( ) |
◈기본모델 - 벽
아래 스크립트는 벽으로 활용할 수 있는 3D 모델입니다.
draw_3d_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) |
(▲ 벽)
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
예) draw_3d_wall(-10,0,10,10,0,-10,texid,1,1); |
◈ 기본 모델 - 바닥
아래 스크립트는 바닥으로 활용할 수 있는 3D 모델입니다.
draw_3d_floor(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) |
(▲ 바닥)
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
예) draw_3d_floor(-10,-10,0,10,10,0,texid,1,1); |
◈ 기본모델 - 블럭
아래 스크립트는 육면체를 표시할 수 있는 3D 모델입니다.
draw_3d_block(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) |
(▲ 블럭)
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
텍스쳐 모양대로 표시하려면 아래처럼 하시면 됩니다.
예) draw_3d_block(-10,-10,10,10,10,-10,texid,1,1); |
아래 스크립트는 위의 스크립트와 모양이 같지만, x, y, z축 3방향으로 텍스쳐를 반복시키는 것이
추가된 스크립트입니다.
draw_3d_block_ext(x1,y1,z1,x2,y2,z2,texid,xrepeat,yrepeat,zrepeat) texid : 사용할 텍스처 ID를 지정, xrepeat : 텍스쳐를 x 축으로 몇번 반복시킬지를 지정(값은 1이상). yrepeat : 텍스쳐를 y 축으로 몇번 반복시킬지를 지정(값은 1이상). zrepeat : 텍스쳐를 z 축으로 몇번 반복시킬지를 지정(값은 1이상). |
◈ 기본모델 - 실린더
아래 스크립트는 실린더 모양으로 표시할 수 있는 3D 모델입니다.
draw_3d_cylinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps) |
(▲ 실린더)
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
closed : 모델의 위와 아래를 닫을지를 지정. 0(false)이면 위와 아래의 원부분을 면으로 막지 않고
열린상태가 됩니다.
steps : 모델의 각을 지정합니다. 예를 들어 8이면 8각 실린더가 됩니다.
(▲ closed가 0일 경우)
예) draw_3d_cylinder(-10,10,10,10,-10,-10,texid,2,1,0,12); |
◈ 기본모델 - 원뿔
아래 스크립트는 원뿔 모양으로 표시할 수 있는 3D 모델입니다.
draw_3d_cone(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps) |
(▲ 원뿔)
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
closed : 모델의 원부분을 닫을지를 지정. 0(false)이면 원부분을 면으로 막지 않고 열린상태가 됩니다.
steps : 모델의 각을 지정합니다. 예를 들어 8이면 8각 원뿔가 됩니다.
예) draw_3d_cone(-10,10,10,10,-10,-10,texid,2,1,1,100); |
(▲ 텍스쳐 모양대로 하려면 뒤집어야함)
◈ 기본모델 - 구형
아래 스크립트는 구형 모양으로 표시할 수 있는 3D 모델입니다.
draw_3d_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps) |
(▲ 구)
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
steps : 모델의 각을 지정합니다. 값이 클수록 부드럽게 됩니다.
예) draw_3d_ellipsoid(-10,10,-10,10,-10,10,texid,2,1,50); |
'GameMaker강좌[GMS2] > 3D기능강좌' 카테고리의 다른 글
[게임메이커 강좌-3D강좌][GMS2] 3D 멀티뷰 (6) | 2021.10.17 |
---|---|
[게임메이커 강좌-3D강좌][GMS2]1인칭 탈출게임-2-이동 설정 (4) | 2018.07.31 |
[게임메이커 강좌-3D강좌][GMS2]1인칭 탈출게임-1-시점 설정 (6) | 2018.07.30 |
[게임메이커 강좌-3D강좌][GMS2]3D의 시작-2 (0) | 2018.07.20 |
[게임메이커 강좌-3D강좌][GMS2]3D의 시작-1 (3) | 2018.07.19 |
댓글