카메라 뷰 매트릭스 설정
이 문서에서는 카메라의 뷰 매트릭스를 설정하는 camera_set_view_mat
함수에 대해 설명합니다. 이 함수는 특정 카메라에 대해 뷰 매트릭스를 설정합니다. 카메라 ID와 적용할 뷰 매트릭스를 입력으로 받습니다. 뷰 매트릭스를 생성하는 방법에 대한 자세한 내용은 "행렬 함수" 섹션의 matrix_build_lookat()
을 참조하세요.
주의사항
- 카메라가 자동 객체 추적을 하는 경우(예:
camera_create_view()
를 사용하여 객체 인덱스/인스턴스 ID가 -1이 아닌 경우), 또는 룸 편집기에서 정의된 카메라를 설정하는 경우, 또는 기본 카메라를 설정하는 경우, 이 매트릭스는 다음 게임 프레임에서 덮어쓰여집니다.
문법
camera_set_view_mat(camera_id, matrix)
매개변수 설명
매개변수 이름 | 타입 | 설명 |
---|---|---|
camera_id | 고유 카메라 ID 값 | 카메라를 생성할 때 반환된 값입니다. |
matrix | 고유 매트릭스 ID 값 | 매트릭스를 생성할 때 반환된 값입니다. |
반환값
이 함수는 반환값이 없습니다.
예제
다음 코드는 새로운 카메라를 생성하고 이를 뷰포트[0]에 할당한 후, 뷰 및 프로젝션 매트릭스를 설정하는 예제입니다.
view_camera[0] = camera_create();
var viewmat = matrix_build_lookat(640, 240, -10, 640, 240, 0, 0, 1, 0);
var projmat = matrix_build_projection_ortho(640, 480, 1.0, 32000.0);
camera_set_view_mat(view_camera[0], viewmat);
camera_set_proj_mat(view_camera[0], projmat);
활용 예제
- 기본 카메라 설정
gml var cam = camera_create(); var view_matrix = matrix_build_lookat(0, 0, -10, 0, 0, 0, 0, 1, 0); camera_set_view_mat(cam, view_matrix);
- 다양한 뷰 매트릭스 적용 ```gml var cam1 = camera_create(); var view_matrix1 = matrix_build_lookat(100, 100, -10, 100, 100, 0, 0, 1, 0); camera_set_view_mat(cam1, view_matrix1);
var cam2 = camera_create(); var view_matrix2 = matrix_build_lookat(200, 200, -10, 200, 200, 0, 0, 1, 0); camera_set_view_mat(cam2, view_matrix2); ```
- 룸 편집기에서 카메라 설정
gml var room_camera = camera_create_view(0, 0, 640, 480, 0); var view_matrix = matrix_build_lookat(320, 240, -10, 320, 240, 0, 0, 1, 0); camera_set_view_mat(room_camera, view_matrix);
- 동적 카메라 이동
gml var cam = camera_create(); var target_x = player.x; var target_y = player.y; var view_matrix = matrix_build_lookat(target_x, target_y, -10, target_x, target_y, 0, 0, 1, 0); camera_set_view_mat(cam, view_matrix);
이 예제들은 카메라 뷰 매트릭스를 설정하는 다양한 방법을 보여줍니다.