본문 바로가기
GameMaker강좌[GMS2]/예제모음

[GMS2 예제] GMS2 에서 사용할 수 있는 3D 기본 모델 스크립트

by 타락카얀 2018. 7. 21.
728x90

 

 

 

 

게임메이커 스튜디오 2에서는 스튜디오 1 이전 버전과 달리 3D 기본 모델을 지원하지 않게

되었기 때문에 모델을 직접 구성해야 됩니다.

첨부한 스크립트들을 게임메이커 스튜디오2에 추가하면, 이전 버전과 같은 기본모델을 사용할 수

있습니다.

 

 

 

 

 


◈ 기본 모델 시작


예제의 3D 기본 모델을 사용하려면, draw_3d_start 스크립트로 먼저 기능을 활성화 시켜야 합니다.

 



draw_3d_start( )
 

 

모델을 사용하기 전에 draw_3d_start 스크립트를 게임 시작(Game Start 이벤트)할 때나,
Room Start이벤트 또는, Create 이벤트에서 1번만 실행해주면 됩니다.

게임을 종료할 때는, draw_3d_end 스크립트를 사용하여 버텍스 버퍼 및 버텍스 포맷을 파기합니다.

 



draw_3d_end( )
 

 

 

 

 

 

 

 


◈ 기본 모델 목록(직접 표시형)

 

 

Draw 이벤트에서 사용하시면 됩니다.

 



벽:
draw_3d_wall(x1,y1,z1,x2,y2,z2,tex,hrepeat,vrepeat)

바닥:
draw_3d_floor(x1,y1,z1,x2,y2,z2,tex,hrepeat,vrepeat)

블럭:
draw_3d_block(x1,y1,z1,x2,y2,z2,tex,hrepeat,vrepeat)

블럭 확장형: 위의 스크립트와 같으나 텍스쳐 반복 수를 x,y,z 방향으로 지정할 수 있음.
draw_3d_block_ext(x1,y1,z1,x2,y2,z2,tex,xrepeat,yrepeat,zrepeat)

원뿔:
draw_3d_cone(x1,y1,z1,x2,y2,z2,tex,hrepeat,vrepeat,closed,step)

실린더:
draw_3d_cylinder(x1,y1,z1,x2,y2,z2,tex,hrepeat,vrepeat,closed,step)

구:
draw_3d_ellipsoid(x1,y1,z1,x2,y2,z2,tex,hrepeat,vrepeat,step)

 

 

 

 

 

 



◈ 모델 생성용 기본 모델

 

 

모델 생성용 기본 모델을 사용하려면 먼저 draw_3d_start 스크립트로 기능을 활성화(1번만 실행)
다음 모델을 생성하면 됩니다.


● 버텍스 버퍼 생성 및 파기 스크립트

 



버텍스 버퍼 생성:
model_3d_vertex_buffer_create( )




버텍스 버퍼 파기: vbuff 는 버텍스 버퍼를 생성하여 id를 할당한 변수를 지정하면 됩니다.
model_3d_vertex_buffer_destroy(vbuff)

 



● 모델 생성 시작 및 종료 스크립트

 



모델 생성 시작:
model_3d_build_begin(vbuff)

모델 생성 종료:
model_3d_build_end(vbuff)

 

 

 

● 기본 모델 목록

 



벽:
model_3d_wall(vbuff,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat)

바닥:
model_3d_floor(vbuff,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat)

블럭:
model_3d_block(vbuff,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat)

블럭 확장형: 위의 스크립트와 같으나 텍스쳐 반복 수를 x,y,z 방향으로 지정할 수 있음.
model_3d_block_ext(vbuff,x1,y1,z1,x2,y2,z2,xrepeat,yrepeat,zrepeat)

원뿔:
model_3d_cone(vbuff,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat,closed,steps)

실린더:
model_3d_cylinder(vbuff,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat,closed,steps)

구:
model_3d_ellipsoid(vbuff,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat,steps)

 

 


● 모델 표시 스크립트

 



model_3d_draw(vbuff,x,y,z,tex)
 




 

 



모델 생성 예제


먼저, 기본 모델의 기능을 활성화하여 기본적인 버텍스 버퍼와 버텍스 포맷을 사용할 수 있게 합니다.

 



★ Game Start 이벤트

draw_3d_start( );

 



버텍스 버퍼를 먼저 생성하고, 만들고 싶은 모델을 생성합니다.

 



★ Create 이벤트

v_buffer=model_3d_vertex_buffer_create( );//모델을 저장할 버텍스 버퍼를 생성.

//모델 생성
model_3d_build_begin(v_buffer);//모델 생성 시작

model_3d_block_ext(v_buffer,-10,-10,20,10,10,0,1,1,1);//◀ 모델

model_3d_build_end(v_buffer);//모델 생성 종료

 

 

모델을 생성했다면 Draw 이벤트에서 생성한 모델을 표시하면 됩니다.

 



★ Draw 이벤트

model_3d_draw(v_buffer,x,y,0,sprite_get_texture(spr_texture,0));//모델 표시

 

 

그리고 생성한 모델이 더이상 필요 없다면 파기하면 됩니다. 예를 들어, 룸을 이동하거나,

오브젝트가 파기했을 때, 해당 모델을 표시할 필요가 없어진 경우겠지요.

 



★ Destroy 이벤트 또는 Room End 이벤트

model_3d_vertex_buffer_destroy(v_buffer);

 

 

종료시 draw_3d_end 스크립트를 통해 기본적인 버텍스 버퍼와 버텍스 포맷을 파기합니다.

 



★ Game End 이벤트

draw_3d_end( );

 

 

 

 

 

 

- 스크립트 -

 

draw_3d_script.yymps
0.02MB

 

 

 

300x250

댓글