게임메이커 스튜디오 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( ); |
- 스크립트 -
'GameMaker강좌[GMS2] > 예제모음' 카테고리의 다른 글
[GMS2 예제] 키보드 키 이름 스크립트 (1) | 2022.01.12 |
---|---|
[GMS2 예제] 사용자 키보드 키 설정 예제 (0) | 2022.01.11 |
[GMS2 예제]RTS 게임 강좌(구) 예제 (0) | 2021.02.04 |
[GMS2 예제]플랫폼 게임 예제 (0) | 2021.01.31 |
[GMS2 예제] 네트워크 채팅 예제 (3) | 2020.01.28 |
댓글