KR101399204B1 - 화상 생성 장치 및 방법, 및 기록 매체 - Google Patents

화상 생성 장치 및 방법, 및 기록 매체 Download PDF

Info

Publication number
KR101399204B1
KR101399204B1 KR1020080068552A KR20080068552A KR101399204B1 KR 101399204 B1 KR101399204 B1 KR 101399204B1 KR 1020080068552 A KR1020080068552 A KR 1020080068552A KR 20080068552 A KR20080068552 A KR 20080068552A KR 101399204 B1 KR101399204 B1 KR 101399204B1
Authority
KR
South Korea
Prior art keywords
camera
subject
obstacle
viewpoint
virtual camera
Prior art date
Application number
KR1020080068552A
Other languages
English (en)
Other versions
KR20090023072A (ko
Inventor
요이치 구로다
노부치카 니시오카
Original Assignee
가부시키가이샤 스퀘어.에닉스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 스퀘어.에닉스 filed Critical 가부시키가이샤 스퀘어.에닉스
Publication of KR20090023072A publication Critical patent/KR20090023072A/ko
Application granted granted Critical
Publication of KR101399204B1 publication Critical patent/KR101399204B1/ko

Links

Images

Classifications

    • A63F13/10
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/74Projection arrangements for image reproduction, e.g. using eidophor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5258Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6653Methods for processing data by generating or executing the game program for rendering three dimensional images for altering the visibility of an object, e.g. preventing the occlusion of an object, partially hiding an object
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Abstract

본 발명은 가상 카메라의 시점의 위치와 피사체의 위치 사이에 장해물이 존재해 버리는 것을 피하면서, 가상 카메라의 시점의 위치를 순조롭게 이동시키는 것을 과제로 한다.
가상 카메라의 시점(201)을 중심으로 하는 반경 R의 카메라 주변 영역(301)과, 가상 카메라의 시축(視軸; 203)이 향하는 피사체(202)를 중심으로 하는 반경 r의 피사체 주변 영역(302)과, 그 사이의 원뿔대의 영역으로 이루어지는 카메라 피사체 간 영역(303)을, 장해물이 존재할 수 없는 카메라 콜리젼(camera collision; 300)으로서 설정한다. 가상 카메라의 시점(201)의 위치는, 피사체(202)의 이동에 추종하여 이동하고, 카메라 콜리젼(300)에 장해물이 존재하면 거리 D가 기준 거리 Ds보다도 짧아지는 위치로 이동되지만, 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r은, 가상 카메라의 시점(201)의 위치와 피사체(202) 사이의 거리 D가 기준 거리 Ds보다도 짧아지면, 기준 거리 Ds에 있어서의 반경 R, r의 표준치 Rs, rs보다도 작아진다.

Description

화상 생성 장치 및 방법, 및 기록 매체{IMAGE GENERATING APPARATUS AND METHOD THEREFOR, AND RECORDING MEDIUM}
본 발명은 투시 변환에 의해 화상을 생성하는 화상 생성 장치 등에 관한 것으로, 장해물을 회피하기 위한 가상 카메라의 시점의 이동에 관한 것이다.
3차원 비디오 게임에 있어서, 플레이어의 조작에 의해 가상 3차원 공간을 이동하는 플레이어 캐릭터를 피사체로 해서 투시 변환을 행한 화상을 게임 화면으로서 표시하고 있는 것이 있다. 여기서, 가상 카메라의 시점의 위치와 피사체가 되는 플레이어 캐릭터의 위치 사이에, 지형이나 건물 등의 장해물이 되는 오브젝트(이하, 단순히 장해물)가 들어가 버리면, 플레이어가 게임 화면에서 플레이어 캐릭터를 시인(視認)할 수 없게 되어 버려, 게임의 진행에 지장이 생겨 버리는 경우가 있다.
이와 같이 가상 카메라의 시점의 위치와 피사체가 되는 플레이어 캐릭터의 위치 사이에 장해물이 들어가 버려도 게임의 진행에 지장을 일으키지 않기 위하여, 장해물을 표시하지 않도록 하는 수법이나, 장해물을 와이어 프레임으로 표시한다고 하는 수법이 고려되어 왔다. 또한, 게임의 분위기를 손상시키지 않고 피사체가 되 는 플레이어 캐릭터를 게임 화면에 표시시키기 위하여, 장해물에 대하여 투과 처리를 실시한다고 하는 수법도 고려되고 있다(예컨대, 특허 문헌 1 참조).
[특허 문헌 1] 일본 특허 제3141737호 공보(단락 0007, 0061, 0071 등)
그러나, 특허 문헌 1의 수법에서는, 가상 카메라의 시점의 위치와 피사체 사이에 장해물이 존재할 때에, 상기 장해물의 후면에 있는 본래는 보이지 않을 오브젝트가 투과 표시되어 버린다. 그러면, 플레이어가 항상 피사체를 시인(視認)할 수 있기 때문에 게임의 진행을 위해서는 편리하긴 해도, 플레이어가 본래는 보이지 않을 피사체가 보여 버림으로써 게임의 화면에 위화감을 느껴 버리는 경우가 있다.
이에 대하여, 종래의 많은 3차원 비디오 게임에 있어서, 가상 카메라의 시점의 위치와 피사체의 위치 사이에 장해물이 들어가 버린 경우, 피사체의 위치와의 사이에 장해물이 들어가지 않게 되는 위치까지 가상 카메라의 시점의 위치를 이동시키는 수법도 채용되고 있었다. 장해물을 회피하기 위한 가상 카메라의 시점의 위치의 이동처로서는, 극좌표 상의 상방향의 위치나, 장해물보다도 피사체에 가까운 위치로 하는 것이 일반적이었다.
그러나, 게임에서 적용되는 가상 3차원 공간에는 플레이어 캐릭터보다도 높이가 있는 벽 등의 오브젝트도 많아, 극좌표 상의 상방향의 위치로 가상 카메라의 시점의 위치를 이동하는 수법에서는, 피사체를 보는 각도가 상당히 변해 버린다는 문제가 있다. 또한, 장해물보다도 피사체에 가까운 위치로 가상 카메라의 시점의 위치를 이동하는 수법에서는, 특히 장해물이 피사체 근처에 있는 경우에는, 가상 카메라의 시점의 위치의 이동량이 너무 커져 버린다는 문제가 있다.
또한, 장해물을 회피하기 위하여 가상 카메라의 시점의 위치를 이동시키는 수법으로서 상기의 어떠한 수법을 채용한다고 해도, 가상 카메라의 시점의 위치와 피사체의 위치 사이에 장해물이 존재하지 않는 상태로부터 돌연히 양자 사이에 장해물이 존재하는 상태가 발생하기 때문에, 가상 카메라의 시점의 위치가 순간적으로 전혀 다른 위치로 이동해 버리게 되어 있었다. 현실의 세계에서 한 사람의 카메라맨이 촬영을 행하고 있는 경우에는, 이러한 카메라의 순간 이동은 일어날 수 없기 때문에, 게임 화면에 있어서 플레이어에게 위화감을 느끼게 해버릴 우려가 있다.
또한, 일정한 시간을 두고 가상 카메라의 시점의 위치를 장해물을 회피할 수 있는 위치로 이동시키는 것으로 한 경우라도, 가상 카메라의 시점의 위치가 급속하게 이동시켜지는 일이 많기 때문에, 플레이어에게 이른바 카메라 멀미를 발생시켜 버릴 우려가 있다. 또한, 애당초 현실의 세계라면, 특히 장해물이 카메라맨에게 가까운 경우에는, 실제로 카메라와 피사체 사이에 장해물이 들어가 버릴 때까지 카메라맨이 장해물의 존재를 알아차리지 못하는 등의 일은 거의 일어날 수 없으며, 피사체와의 사이에 장해물이 들어가 버릴 우려가 있으면, 미리 그것을 회피하도록 카메라맨이 움직이는 것이 보통이다.
본 발명은 가상 카메라의 시점의 위치와 피사체의 위치 사이에 장해물이 존재해 버리는 것을 피하면서, 가상 카메라의 시점의 위치를 순조롭게 이동시킬 수 있는 화상 생성 장치 등을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여, 본 발명의 제1 관점에 따른 화상 생성 장치 는, 가상 3차원 공간에 존재하는 소정의 피사체에 가상 카메라의 시축(視軸)을 향하게 하여 투시 변환한 화상을 생성하는 화상 생성 장치로서, 상기 가상 3차원 공간에서 상기 소정의 피사체의 위치를 이동시키는 피사체 제어 수단과, 상기 가상 카메라의 시축을 상기 소정의 피사체에 향하게 하면서, 상기 가상 3차원 공간에서 상기 가상 카메라의 시점의 위치를, 상기 소정의 피사체의 위치의 이동에 추종하여 이동시키는 가상 카메라 제어 수단과, 상기 가상 카메라 제어 수단에 의해 제어되는 가상 카메라에 따라서 상기 소정의 피사체를 포함하는 상기 가상 3차원 공간을 가상 스크린 상에 투시 변환하여, 표시 장치에 표시되는 2차원 화상을 생성하는 투시 변환 수단과, 적어도 상기 가상 카메라의 시점의 위치를 기준으로 해서 상기 시점의 위치 주위에 정해지는 카메라 주변 영역과, 상기 카메라 주변 영역으로부터 연속해서 적어도 상기 소정의 피사체 근방의 위치까지 이어지는 영역을, 장해물 회피역으로 설정하는 장해물 회피역 설정 수단과, 상기 장해물 회피역 설정 수단에 의해 설정된 장해물 회피역에, 장해물이 존재하는지의 여부를 판정하는 장해물 판정 수단을 구비하고, 상기 가상 카메라 제어 수단은, 상기 장해물 판정 수단에 의해 상기 장해물 회피역에 상기 장해물이 존재한다고 판정된 경우에, 상기 장해물 회피역에 상기 장해물이 들어가지 않는 위치까지 상기 가상 카메라의 시점의 위치를 이동시키는 장해물 회피 제어 수단을 포함하며, 상기 장해물 회피역 설정 수단은, 상기 가상 3차원 공간에서의 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체의 위치 사이의 거리에 따라서, 상기 장해물 회피역의 크기를 변화시키는 장해물 회피역 변화 수단을 포함하는 것을 특징으로 한다.
상기 화상 생성 장치에서는, 가상 3차원 공간에서 소정의 피사체의 위치가 이동하지만, 이 소정의 피사체를 포함하는 가상 3차원 공간을 가상 카메라에 의해 가상 스크린 상에 투시 변환함으로써, 표시 장치에 표시되는 2차원 화상이 생성된다. 여기서, 가상 카메라의 시점의 위치는, 기본적으로는 소정의 피사체의 위치의 이동에 추종하여 이동되지만, 피사체의 위치에 추종한 위치에서는 가상 카메라의 시점의 위치를 기준으로 해서 상기 시점의 위치 주위에 정해지는 카메라 주변 영역과 상기 카메라 주변 영역으로부터 연속해서 피사체의 근방까지 이어지는 영역을 포함하는 장해물 회피역에 장해물이 존재해 버리게 되는 경우에는, 상기 장해물 회피역에 장해물이 들어가지 않는 위치까지 가상 카메라의 시점의 위치가 이동된다.
여기서, 장해물 회피역의 크기는, 가상 카메라의 시점의 위치와 소정의 피사체의 위치 사이의 거리에 따라서 변화하는 것으로 되어 있으며, 예컨대, 가상 카메라의 시점의 위치와 피사체 사이의 거리가 짧아지면, 작아지는 것으로 되어 있다. 이 때문에, 가상 카메라의 시점의 위치로부터 비교적 떨어진 위치에서 장해물 회피역에 장해물이 존재하고 있는 경우에는, 가상 카메라의 시점의 위치를 소정의 피사체의 위치에 접근시키면 장해물 회피역의 크기가 작아져서, 장해물 회피역에 장해물이 들어가지 않게 되는 위치로서 가상 카메라의 시점의 위치를 정할 수 있다.
이 때문에, 예컨대, 가상 카메라의 시점의 위치와 피사체의 위치를 연결하는 직선과 장해물 사이의 거리가 서서히 짧아져 가는 것과 같은 경우에, 가상 카메라의 시점의 위치를 피사체의 위치를 향해서 서서히 접근시켜 가는 것이 가능해진다. 그리고, 이 직선 상에 장해물이 들어갈 때에는, 그 직전까지 가상 카메라의 시점의 위치는 상당히 피사체의 위치 쪽으로 이동하고 있기 때문에, 장해물의 위치보다도 피사체의 위치로부터의 거리가 짧은 위치까지 가상 카메라의 시점을 이동시킨다고 해도, 가상 카메라의 시점의 위치가 급격하게 이동되어 버리는 일이 없다.
이와 같이, 가상 카메라의 시점의 위치와 소정의 피사체의 위치 사이에 장해물이 들어가 버리는 것을 회피하도록 가상 카메라의 시점의 위치를 제어하는 것으로 해도, 상기 가상 카메라의 시점의 위치의 이동이 순조롭게 행해지기 때문에, 표시 장치에 표시된 화상을 보고 있는 사람에게 위화감을 느끼게 해 버리거나, 카메라 멀미를 발생시켜 버리거나 하는 것을 방지할 수 있다. 또한, 장해물에 대하여 투과 처리를 행하는 것도 아니며, 표시 장치에 표시된 화상에 있어서 본래 보이지 않을 것이 보여 버리거나 하는 일도 없기 때문에, 표시된 화상을 보고 있는 사람에게 위화감을 느끼게 해 버리는 일이 없다.
또, 상기 장해물 회피 제어 수단은, 상기 장해물 회피역에 상기 장해물이 존재하는 것을 회피하기 위하여, 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체를 연결하는 직선 상에서 상기 가상 카메라의 시점의 위치를 이동시키는 것으로 하는 것이 바람직하지만, 상황에 따라서는, 이 직선 상 이외라도 상기 가상 카메라의 시점의 위치를 이동시키는 것으로 해도 좋다. 또한, 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체를 연결하는 직선 상에서 상기 가상 카메라의 시점의 위치를 이동시키는 경우에, 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체의 위치 사이의 거리에 따라서, 상기 가상 카메라의 시계의 넓이도 변화시키는 것으로 해도 좋다.
상기 화상 생성 장치는, 상기 가상 3차원 공간에서 상기 장해물의 위치를 이동시키는 장해물 이동 수단을 더 구비하는 것으로 해도 좋다. 이 경우에 있어서, 상기 장해물 판정 수단은, 상기 소정의 피사체의 위치 및 상기 가상 카메라의 시점의 위치의 이동뿐만이 아니라, 상기 장해물의 위치의 이동에 의해서도, 상기 장해물 회피역 설정 수단에 의해 설정된 장해물 회피역에, 상기 장해물이 존재하는지의 여부를 판정하는 것으로 할 수 있다.
또, 상기 화상 생성 장치에 있어서, 상기 가상 카메라 제어 수단은, 상기 소정의 피사체의 위치의 이동에 추종하여 상기 가상 카메라의 시점의 위치를 이동시키는 것 외에, 예컨대, 사용자의 입력 장치로부터의 소정의 입력에 따라서 상기 가상 카메라의 시점의 위치를 이동시키는 것으로 해도 좋다.
상기 화상 생성 장치에 있어서, 상기 장해물 회피역 설정 수단은, 상기 카메라 주변 영역과, 상기 소정의 피사체의 위치를 기준으로 해서 상기 피사체의 위치 주위에 정해지는 피사체 주변 영역과, 상기 카메라 주변 영역과 상기 피사체 주변 영역 사이의 영역인 카메라 피사체 간 영역을, 상기 장해물 회피역으로 설정하는 것으로 할 수 있다.
또한, 상기 장해물 회피역 설정 수단은, 상기 카메라 주변 영역과, 상기 카메라 주변 영역과 상기 소정의 피사체 사이의 영역인 카메라 피사체 간 영역을, 상기 장해물 회피역으로 설정하는 것으로 할 수도 있다.
전자의 경우에는, 피사체의 위치에 매우 가까운 위치에서 장해물이 서서히 접근해 오는 것과 같은 경우에도, 가상 카메라의 시점의 위치를 순조롭게 이동시키 면서 가상 카메라의 시점의 위치와 피사체의 위치 사이에 장해물이 들어가 버리는 것을 회피할 수 있게 된다. 한편, 후자의 경우에는, 카메라 피사체 간 영역을 추 형상으로 할 수 있기 때문에, 전자의 경우보다도 적은 처리 부하로 장해물 회피역에 장해물이 존재하는지의 여부를 판정하는 것으로 할 수 있다.
상기 화상 생성 장치에 있어서, 상기 장해물 회피역 설정 수단은, 적어도 상기 가상 카메라의 시점의 위치를 중심으로 한 구(球)에 포함되는 영역을 상기 카메라 주변 영역으로서 상기 장해물 회피역으로 설정하고, 상기 장해물 회피역 설정 수단은, 상기 가상 3차원 공간에서의 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체의 위치 사이의 거리에 따라서, 상기 카메라 주변 영역으로서 설정되는 구의 반경을 변화시키는 것으로 해도 좋다.
여기서, 상기 카메라 주변 영역 외에, 상기 피사체 주변 영역과 상기 카메라 피사체 간 영역이 상기 장해물 회피역으로 설정되는 경우에는, 상기 장해물 회피역 설정 수단은, 상기 소정의 피사체의 위치를 중심으로 한 구에 포함되는 영역을 상기 피사체 주변 영역으로서 상기 장해물 회피역으로 설정하고, 상기 장해물 회피역 설정 수단은, 상기 가상 3차원 공간에서의 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체의 위치 사이의 거리에 따라서, 상기 피사체 주변 영역으로서 설정되는 구의 반경도 변화시키는 것으로 해도 좋다.
이와 같이, 카메라 주변 영역이나 피사체 주변 영역을, 가상 카메라의 시점의 위치나 소정의 피사체의 위치를 중심으로 한 구에 포함되는 영역으로 설정함으로써, 카메라 주변 영역이나 피사체 주변 영역에 장해물이 존재하는지의 여부를, 가상 카메라의 시점의 위치나 소정의 피사체의 위치와 장해물의 위치 사이의 거리계산으로 용이하게 판단할 수 있다. 또한, 가상 카메라의 시점의 위치와 소정의 피사체의 위치 사이의 거리에 따라서 카메라 주변 영역이나 피사체 주변 영역의 크기를 변화시키는 것으로 해도, 계산이 복잡해지는 일은 없다.
또, 상기 카메라 주변 영역과 상기 피사체 주변 영역이 모두 구형의 영역으로 설정되는 경우에는, 상기 카메라 주변 영역과 상기 피사체 주변 영역 사이에 포함되는 원뿔대 형상의 영역이 상기 카메라 피사체 간 영역으로서 상기 장해물 회피역으로 설정되는 것으로 해도 좋다. 단, 상기 카메라 주변 영역과 상기 피사체 주변 영역이 모두 구형의 영역으로 설정되는 경우라도, 상기 카메라 주변 영역과 상기 피사체 주변 영역 사이에 포함되는 각뿔대 형상(원뿔대 형상을 근사한 것)의 영역이 상기 카메라 피사체 간 영역으로서 상기 장해물 회피역으로 설정되는 것으로 해도 좋다.
한편, 상기 카메라 주변 영역 외에, 상기 피사체 주변 영역이 상기 장해물 회피역으로 설정되지 않고, 상기 카메라 피사체 간 영역이 상기 장해물 회피역으로 설정되며, 상기 카메라 주변 영역이 구형의 영역으로 설정되는 경우에는, 상기 카메라 주변 영역과 상기 피사체 주변 영역 사이에 포함되는 원뿔 형상의 영역이 상기 카메라 피사체 간 영역으로서 상기 장해물 회피역으로 설정되는 것으로 해도 좋다. 단, 상기 카메라 주변 영역이 구형의 영역으로 설정되는 경우라도, 상기 카메라 주변 영역과 상기 피사체 주변 영역 사이에 포함되는 각뿔 형상(원뿔 형상을 근사한 것)의 영역이 상기 카메라 피사체 간 영역으로서 상기 장해물 회피역으로 설 정되는 것으로 해도 좋다.
카메라 주변 영역이나 피사체 주변 영역이 구 형상의 영역이 되는 경우에는, 카메라 피사체 간 영역의 형상은, 본래적으로는 원뿔대 형상이나 원뿔 형상이 된다. 단, 이러한 원뿔대 형상의 영역이나 원뿔 형상의 영역에 장해물이 존재하는 지의 여부를 판단하는 것은, 구 형상의 영역에 장해물이 존재하는 지의 여부를 판단하는 경우 정도의 간단한 계산으로는 구해지지 않는다. 카메라 피사체 간 영역을 각뿔대 형상 또는 각뿔 형상의 영역으로 함으로써, 카메라 피사체 간 영역에 장해물이 존재하는 지의 여부를 판단할 때의 처리 부하를 작게 할 수 있다.
또한, 상기 카메라 주변 영역은, 상기 가상 카메라의 시점의 위치를 (대략) 무게 중심 위치로 하는 다면체의 영역으로 설정되는 것으로 할 수 있으며, 상기 피사체 주변 영역도 상기 장해물 회피역으로 설정되는 경우에는, 상기 피사체 주변 영역도, 상기 소정의 피사체의 위치를 (대략) 무게 중심 위치로 하는 다면체의 영역으로 설정되는 것으로 할 수 있다. 이들 다면체의 면 수, 또는 카메라 피사체 간 영역을 형성하는 각뿔대 또는 각뿔의 저면의 면 수는, 상기 가상 카메라의 위치를 순조롭게 이동시킨다는 관점에서는 많은 편이 바람직하지만, 처리량의 관점에서는 적은 편이 바람직하기 때문에, 본 발명의 화상 생성 장치가 적용되는 컴퓨터 장치의 처리 능력 등에 따라서 적당히 선택하는 것으로 하면 된다.
상기 화상 생성 장치에 있어서, 상기 가상 카메라의 시점의 위치와 상기 피사체의 위치 사이의 거리에는, 소정의 한계 거리가 정해져 있어도 좋다. 여기서, 상기 카메라 주변 영역을 구 형상의 영역으로 하는 경우, 상기 가상 카메라의 시점 의 위치와 상기 피사체의 위치 사이의 거리가 상기 한계 거리에 있을 때에는, 상기 가상 카메라 주변 영역을 구성하는 구의 반경을 0으로 할 수 있다.
상기 화상 생성 장치에 있어서, 상기 가상 카메라 제어 수단은, 상기 가상 3차원 공간에서의 높이 방향의 위치를 유지하면서 상기 가상 카메라의 시점의 위치를 이동시키는 것이어도 좋다. 이 경우에 있어서, 상기 장해물 회피역 설정 수단은, 상기 가상 카메라의 시점과 상기 소정의 피사체를 연결하는 직선과, 상기 직선과 직교하는 상기 가상 3차원 공간에서의 높이 방향에 평행한 직선이 이루는 평면 내에서 상기 장해물 회피역을 설정하는 것으로 할 수 있다.
이와 같이 가상 카메라의 시점의 위치의 이동에 가상 3차원 공간에서의 높이 방향의 위치를 유지한다고 하는 제약이 있는 경우에 한하는 것이기는 하지만, 이 제약 하에 있어서는 장해물 회피역을 평면 내에 설정할 수 있다. 평면 내의 영역에 있어서 장해물이 존재하는 지의 여부는, 2차원 계산으로 행할 수 있기 때문에, 장해물 회피역에 장해물이 존재하는 지의 여부의 판단을 보다 간단한 계산으로 행할 수 있는 것이 된다.
상기 화상 생성 장치에 있어서, 상기 가상 3차원 공간은, 비디오 게임의 게임 공간이어도 좋다. 즉, 상기 화상 생성 장치는, 비디오 게임의 화상을 생성하는 것으로 할 수 있다. 이 경우에 있어서, 상기 장해물 회피역 변화 수단은, 또한 상기 비디오 게임의 진행 상황에 따라서, 상기 장해물 회피역의 크기를 변화시키는 것으로 할 수 있다.
예컨대, 상기 장해물 회피역 변화 수단은, 상기 장해물이 될 수 있는 오브젝 트가 다수 존재하는 장면일수록, 상기 장해물 회피역의 크기를 작게 하도록 상기 장해물 회피역의 크기를 변화시키는 것으로 할 수 있다.
이와 같이 게임의 진행 상황에 따라서도 장해물 회피역의 크기를 변화시키는 것으로 함으로써, 예컨대, 게임의 장면에 따라 가상 카메라의 시점의 위치를 순조롭게 이동시키거나, 비교적 크게 이동시키거나 하는 것을 구분하여 사용할 수 있어, 비디오 게임의 화상으로서 게임의 진행 상황에 따른 임장감이 있는 화상을 생성할 수 있는 것이 된다. 또한, 장해물이 될 수 있는 오브젝트가 다수 존재하는 장면에서 장해물 회피역의 크기를 작게 함으로써, 이러한 장면에서도 장해물 회피역에 장해물이 들어가는 것을 방지하기 위하여 가상 카메라의 시점의 위치를 이동하는 제어를 필요 이상으로 행하지 않고 끝나게 된다.
또, 상기 가상 카메라의 위치와 상기 피사체의 위치 사이의 거리에는 기준치가 마련되어 있으며, 상기 가상 카메라의 위치와 상기 피사체의 위치 사이의 거리가 상기 기준치의 상태에 있을 때의 상기 장해물 회피역의 크기를 표준치로서 미리 설정해 두어도 좋다. 이 경우에 있어서, 상기 장해물 회피역 변환 수단은, 상기 비디오 게임의 진행 상황에 따라서, 상기 장해물 회피역의 표준치를 변화시키는 것으로 할 수 있다.
상기 목적을 달성하기 위하여, 본 발명의 제2 관점에 따른 화상 생성 방법은, 가상 3차원 공간에 존재하는 소정의 피사체에 가상 카메라의 시축을 향하게 하여 투시 변환한 화상을 생성하는 화상 생성 방법으로서, 상기 가상 3차원 공간에서 상기 소정의 피사체의 위치를 이동시키고, 상기 피사체의 위치를 기억 장치에 기억 시키는 단계와, 상기 가상 카메라의 시축을 상기 소정의 피사체에 향하게 하면서, 상기 가상 3차원 공간에서 상기 가상 카메라의 시점의 위치를 상기 소정의 피사체의 위치의 이동에 추종하여 이동시키고, 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와, 적어도 상기 가상 카메라의 시점의 위치를 기준으로 해서 상기 시점의 위치 주위에 정해지는 카메라 주변 영역과, 상기 카메라 주변 영역으로부터 연속해서 적어도 상기 소정의 피사체 근방의 위치까지 이어지는 영역을, 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체의 위치 사이의 거리에 따라서 크기가 변화하는 장해물 회피역으로 설정하고, 상기 장해물 회피역에 관한 정보를 상기 기억 장치에 기억시키는 단계와, 상기 기억 장치에 정보가 기억된 장해물 회피역에 장해물이 존재하는지의 여부를, 상기 장해물의 위치에 대하여 상기 기억 장치에 기억된 정보에 따라서 판정하는 단계와, 상기 장해물 회피역에 상기 장해물이 존재한다고 판정된 경우에, 상기 장해물 회피역에 상기 장해물이 들어가지 않는 위치까지 상기 가상 카메라의 시점의 위치를 재차 이동시키고, 상기 재차의 이동 후의 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와, 상기 기억 장치에 정보가 기억된 가상 카메라의 시축 및 시점의 위치에 관한 정보에 따라서 상기 소정의 피사체를 포함하는 상기 가상 3차원 공간을 가상 스크린 상에 투시 변환하고, 표시 장치에 표시되는 2차원 화상을 생성하여, 상기 기억 장치에 기록하는 단계를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위하여, 본 발명의 제3 관점에 따른 프로그램은, 가상 3차원 공간에 존재하는 소정의 피사체에 가상 카메라의 시축을 향하게 하여 투시 변환한 화상을 생성하기 위한 처리를 컴퓨터 장치에 실행시키는 프로그램으로서, 상기 가상 3차원 공간에서 상기 소정의 피사체의 위치를 이동시키고, 상기 피사체의 위치를 상기 컴퓨터 장치가 구비하는 기억 장치에 기억시키는 단계와, 상기 가상 카메라의 시축을 상기 소정의 피사체에 향하게 하면서, 상기 가상 3차원 공간에서 상기 가상 카메라의 시점의 위치를 상기 소정의 피사체의 위치의 이동에 추종하여 이동시키고, 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와, 적어도 상기 가상 카메라의 시점의 위치를 기준으로 해서 상기 시점의 위치 주위에 정해지는 카메라 주변 영역과, 상기 카메라 주변 영역으로부터 연속해서 적어도 상기 소정의 피사체 근방의 위치까지 이어지는 영역을, 상기 가상 카메라의 시점의 위치와 상기 소정의 피사체의 위치 사이의 거리에 따라서 크기가 변화하는 장해물 회피역으로 설정하고, 상기 장해물 회피역에 관한 정보를 상기 기억 장치에 기억시키는 단계와, 상기 기억 장치에 정보가 기억된 장해물 회피역에, 장해물이 존재하는 지의 여부를, 상기 장해물의 위치에 대하여 상기 기억 장치에 기억된 정보에 따라서 판정하는 단계와, 상기 장해물 회피역에 상기 장해물이 존재한다고 판정된 경우에, 상기 장해물 회피역에 상기 장해물이 들어가지 않는 위치까지 상기 가상 카메라의 시점의 위치를 재차 이동시키고, 상기 재차의 이동 후의 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와, 상기 기억 장치에 정보가 기억된 가상 카메라의 시축 및 시점의 위치에 관한 정보에 따라서 상기 소정의 피사체를 포함하는 상기 가상 3차원 공간을 가상 스크린 상에 투시 변환하고, 표시 장치에 표시되는 2차원 화상을 생성하여, 상기 기억 장치에 기록하는 단계를 상기 컴퓨터 장치에 실행시키는 것을 특징으로 한다.
상기 제3 관점에 따른 프로그램은, 컴퓨터 판독 가능한 기록 매체에 기록하여 제공할 수 있다. 이 컴퓨터 판독 가능한 기록 매체는, 상기 컴퓨터 장치에 착탈 가능하게 구성되며, 상기 컴퓨터 장치와는 별개로 제공되는 기록 매체로 해도 좋다. 이 컴퓨터 판독 가능한 기록 매체는, 상기 컴퓨터 장치 내에 설치되며, 상기 컴퓨터 장치와 함께 제공되는 고정 디스크 장치 등의 기록 매체로 해도 좋다. 상기 제3 관점에 따른 프로그램은, 네트워크 상에 존재하는 서버 장치로부터, 그 데이터 신호를 반송파에 중첩하여, 네트워크를 통해 상기 컴퓨터 장치에 배송할 수도 있다.
본 발명에 따르면, 가상 카메라의 시점의 위치와 피사체의 위치 사이에 장해물이 존재하는 것을 방지하면서, 가상 카메라의 시점의 위치를 순조롭게 이동시킬 수 있는 화상 생성 장치 및 방법을 획득할 수 있다.
이하, 첨부 도면을 참조해서, 본 발명의 실시 형태에 대하여 설명한다. 여기서는, 본 발명을 비디오 게임에 있어서의 화상의 생성에 적용한 경우를 예로 해서 설명한다.
도 1은 이 실시 형태에 적용되는 비디오 게임 장치의 구성을 도시하는 블록 도이다. 도시하는 바와 같이, 비디오 게임 장치(100)는, 장치 본체(101)를 중심으로 해서 구축된다. 이 장치 본체(101)는, 그 내부 버스(119)에 접속된 제어부(103), RAM(Random Access Memory)(105), 하드 디스크·드라이브(HDD)(107), 사운드 처리부(109), 그래픽 처리부(111), DVD/CD-ROM 드라이브(113), 통신 인터페이스(115), 및 인터페이스부(117)를 포함한다.
이 장치 본체(101)의 사운드 처리부(109)는 스피커인 사운드 출력 장치(125)에, 그래픽 처리부(111)는 표시 화면(122)을 갖는 표시 장치(121)에 접속되어 있다. DVD/CD-ROM 드라이브(113)에는, 기록 매체(본 실시 형태에서는, DVD-ROM 또는 CD-ROM)(131)를 장착할 수 있다. 통신 인터페이스(115)는 네트워크(151)에 접속된다. 인터페이스부(117)에는, 입력부(컨트롤러)(161)와 메모리 카드(162)가 접속되어 있다.
제어부(103)는, CPU(Central Processing Unit)나 ROM(Read Only Memory) 등을 포함하며, HDD(107)나 기록 매체(131) 상에 저장된 프로그램을 실행하여, 장치 본체(101)의 제어를 행한다. 제어부(103)는 내부 타이머를 구비하고 있다. RAM(105)은 제어부(103)의 워크 에어리어이며, 후술하는 플레이어 캐릭터의 위치, 가상 카메라의 시점의 위치나 시축의 방향, 카메라 콜리젼의 크기, 투시 변환된 각 폴리곤의 정점의 좌표 등에 관한 정보는, RAM(105)에 일시 기억된다. HDD(107)는 프로그램이나 데이터를 보존하기 위한 기억 영역이다. 사운드 처리부(109)는, 제어부(103)에 의해 실행되어 있는 프로그램이 사운드 출력을 행하도록 지시하고 있는 경우에, 그 지시를 해석하여, 사운드 출력 장치(125)에 사운드 신호를 출력한다.
그래픽 처리부(111)는, 제어부(103)로부터 출력되는 묘화 명령에 따라서, 프레임 메모리(112)(도면에서는, 그래픽 처리부(111)의 외측에 그려져 있으나, 그래픽 처리부(111)를 구성하는 칩에 포함되는 RAM 내에 설치된다)에 화상 데이터를 전개하고, 표시 장치(121)의 표시 화면(122) 상에 화상을 표시하는 비디오 신호를 출력한다. 그래픽 처리부(111)로부터 출력되는 비디오 신호에 포함되는 화상의 1프레임 시간은, 예컨대 60분의 1초이다. 프레임 메모리(112)는, 2세트 설치되어 있으며, 데이터의 기록용과 판독용이 프레임 기간마다 전환된다.
그래픽 처리부(111)는, 가상 3차원 공간에 존재하는 오브젝트(플레이어 캐릭터, 넌 플레이어 캐릭터(non-player character), 및 캐릭터 이외의 오브젝트)를 가상 카메라에 의해 투시 변환한 2차원 화상의 화상 데이터를 생성하여, 프레임 메모리(112)에 기록한다. 가상 카메라의 시축의 방향은, 항상 플레이어 캐릭터(보다 구체적으로는, 플레이어 캐릭터의 대략 무게 중심 위치로 설정된 기준점)를 향하도록 되어 있다. 즉, 플레이어 캐릭터는, 항상 투시 변환 시의 피사체가 된다.
DVD/CD-ROM 드라이브(113)는, 기록 매체(131)에 대하여 프로그램 및 데이터의 판독을 행한다. 통신 인터페이스(115)는, 네트워크(151)에 접속되어, 다른 컴퓨터와의 통신을 행한다. 입력부(161)는 방향키 및 복수의 조작 버튼을 구비하고 있다. 가상 3차원 공간에서의 플레이어 캐릭터의 위치는, 입력부(161)의 방향키로부터 입력되는 지시에 의해 이동시켜진다.
또한, 입력부(161)의 조작 버튼에는, 플레이어 캐릭터의 동작 등을 지정하기 위한 버튼 외에, L1, R1, L2, R2의 4개의 버튼(이하, 이들을 통합하여 LR 버튼이라 고 부르는 경우가 있다)이 설치되어 있다. 가상 카메라의 시점의 위치는, 방향키로부터 입력되는 지시에 따라서 플레이어 캐릭터에 추종하여 이동하는 것 외에, L1 버튼 또는 R1 버튼으로부터 입력되는 지시에 따라서 플레이어 캐릭터의 위치를 중심으로 좌측 방향 또는 우측 방향으로 주회(周回) 이동시켜지고, L2 버튼 또는 R2 버튼으로부터 입력되는 지시에 따라서 플레이어 캐릭터의 위치를 원점으로 하는 극좌표 상에서 상방향 또는 하방향으로 이동시켜진다.
단, 가상 카메라의 시점의 위치의 이동은, 후술하는 카메라 콜리젼에 장해물(이 실시 형태에서는, 플레이어 캐릭터 및 넌 플레이어 캐릭터 이외의 오브젝트가 장해물이 될 수 있다)이 존재하는 경우에는, 카메라 콜리젼 내에 장해물이 들어가지 않도록 제어되는 것이 된다. 카메라 콜리젼 및 장해물의 회피의 상세한 것에 대해서는 후술한다.
인터페이스부(117)는, 입력부(161)로부터의 입력 데이터를 RAM(105)에 출력하고, 제어부(103)가 그것을 해석하여 연산 처리를 실시한다. 인터페이스부(117)는 또한, 제어부(103)로부터의 지시에 기초하여, RAM(105)에 기억되어 있는 게임의 진행 상황을 나타내는 데이터를 메모리 카드(162)에 보존시키고, 메모리 카드(162)에 보존되어 있는 중단 시의 게임의 데이터를 판독하여, RAM(105)에 전송한다.
비디오 게임 장치(100)에서 게임을 행하기 위한 프로그램 및 데이터는, 최초에는, 예컨대 기록 매체(131)에 기억되어 있다. 기록 매체(131)에 기억되어 있는 데이터로서는, 게임 공간(가상 3차원 공간)에 존재하는 오브젝트를 구성하기 위한 그래픽 데이터를 포함하고 있다. 기록 매체(131)에 기억된 프로그램 및 데이터는, 실행 시에 DVD/CD-ROM 드라이브(113)에 의해 판독되어, RAM(105)에 로드된다. 제어부(103)는, RAM(105)에 로드된 프로그램 및 데이터를 처리하여, 묘화 명령을 그래픽 처리부(111)에 출력하고, 사운드 출력의 지시를 사운드 처리부(109)에 출력한다. 제어부(103)가 처리를 행하고 있는 동안의 중간적인 데이터는, RAM(105)에 기억된다.
이 실시 형태에 따른 비디오 게임에서는, 게임 공간이 되는 가상 3차원 공간에 복수의 3차원 오브젝트가 존재하고, 이들 오브젝트를 가상 카메라에 의해 투시 변환한 화상이 게임의 화상으로서 표시 장치(121)의 표시 화면(122)에 표시된다. 가상 3차원 공간에 존재하는 오브젝트로서는, 플레이어의 입력부(161)로부터의 입력에 의해 이동시켜지는 플레이어 캐릭터, 플레이어 캐릭터 이외의 캐릭터인 넌 플레이어 캐릭터(제어부(103)에 의해 동작시켜진다), 캐릭터 이외의 지형, 건물 등의 가상 3차원 공간 내에서의 위치가 이동하지 않는 오브젝트가 포함되어 있다.
플레이어 캐릭터는, 투시 변환될 때에, 가상 카메라의 시축의 위치가 항상 향해지는 피사체로 되어 있다. 넌 플레이어 캐릭터는, 투시 변환 시에 장해물이 되지 않는 오브젝트이며, 후술하는 카메라 콜리젼의 범위 내에 넌 플레이어 캐릭터가 존재하고 있어도, 이것에 의해 가상 카메라의 시점의 위치가 변경되는 일은 없다. 캐릭터 이외의 오브젝트는, 모두 장해물이 되는 오브젝트이며, 후술하는 카메라 콜리젼의 범위 내에 캐릭터 이외의 오브젝트(장해물)가 존재하면, 카메라 콜리젼에 장해물이 존재하지 않게 되는 위치까지 가상 카메라의 시점의 위치가 이동시켜진다.
다음으로, 이 실시 형태에 따른 비디오 게임에 있어서, 장해물을 회피하도록 가상 카메라의 시점의 위치를 제어하기 위해서 설정되는 카메라 콜리젼에 대하여 설명한다. 도 2는 이 실시 형태에 따른 비디오 게임에서 설정되는 카메라 콜리젼의 예를 도시하는 도면이다. 도시하는 바와 같이, 카메라 콜리젼(300)은 가상 카메라의 시점(201)을 중심으로 한 반경 R의 구로 설정되는 카메라 주변 영역(301)과, 피사체(플레이어 캐릭터)(202)를 중심으로 한 반경 r의 구로 설정되는 피사체 주변 영역(302)과, 카메라 주변 영역(301)과 피사체 주변 영역(302) 사이의 원뿔대 형상의 영역으로 설정되는 카메라 피사체 간 영역(303)으로 이루어진다.
카메라 주변 영역(301)의 반경 R과, 피사체 주변 영역(302)의 반경 r은, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 변화시켜진다. 즉, 가상 카메라의 시점(201)과 피사체(202)의 위치 사이의 거리 D가 소정의 기준치인 거리(기준 거리) Ds로 되어 있을 때에 있어서의 반경 R, r의 표준치를 각각 Rs, rs로 한 경우, 카메라 주변 영역(301)의 반경 R, 피사체 주변 영역(302)의 반경 r은, 각각 수학식 1에 나타내는 바와 같이 구해진다.
R=Rs×(D/Ds)α
r=rs×(D/Ds)β
여기서, α, β는 소정의 상수이며, α=β로 해도 좋다.
이 수학식 1로부터 알 수 있듯이, 카메라 콜리젼(300)의 크기를 정하는 카메라 주변 영역(301)의 반경 R, 피사체 주변 영역(302)의 반경 r은, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds보다도 작아지면, 표준치 Rs, rs보다도 작아진다. 가상 카메라의 시점(201)의 위치는, 통상은 피사체(202)의 위치와의 사이의 거리 D가 기준 거리 Ds가 되는 위치로 설정되지만, 카메라 콜리젼(300)에 장해물이 존재하면, 피사체(202)의 위치에 보다 가까운 위치로 설정된다.
가상 카메라의 시점(201)의 위치는, 카메라 콜리젼(300)에 장해물이 존재하고 있지 않으면, 피사체(202)가 되는 플레이어 캐릭터의 이동 또는 LR 버튼의 입력에 따라서, 피사체(202)와의 사이의 거리를 기준 거리 Ds로 유지하면서 이동시켜진다. 즉, 카메라 콜리젼(300)에 장해물이 존재하고 있지 않으면, 플레이어 캐릭터(피사체(202))가 이동하면, 플레이어 캐릭터와 평행하게 동일한 거리만큼, 시축(203)의 방향을 변화시키지 않고 가상 카메라의 시점(201)의 위치가 이동한다. 또한, LR 버튼으로부터의 지시가 입력되면, 피사체(202)가 되는 플레이어 캐릭터와의 거리를 거리 Ds로 유지하면서, 피사체(202)를 중심으로 소정 각도만큼 회전 이동하고, 이에 따라, 가상 카메라의 시축(203)의 방향이 변화시켜진다.
가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds로 되어 있는 상태로부터 피사체(202)의 이동 또는 LR 버튼으로부터의 입 력에 따라서 다음으로 가상 카메라의 시점(201)이 이동되는 위치(다음 후보 위치)에 있어서, 카메라 콜리젼(300)의 범위 내에 장해물이 존재하게 되는 경우에는, 가상 카메라의 시점(201)의 위치는, 다음 후보 위치보다도 더욱 피사체(202)를 향해서 소정 거리만큼 이동시켜진다(시축(203)의 방향에 변화 없음).
가상 카메라의 시점(201)의 위치가 피사체(202)를 향해서 이동되는, 즉 거리 D가 작아지면, 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r이 작아져서, 카메라 콜리젼(300)의 크기가 축소되지만, 축소된 카메라 콜리젼(300)에 장해물이 존재하지 않으면, 가상 카메라의 시점(201)의 위치가 고정된다. 축소된 카메라 콜리젼(300)이라도 장해물이 존재하는 것 같으면, 카메라 콜리젼(300) 내에 장해물이 존재하지 않게 되는 위치까지, 가상 카메라의 시점(201)의 위치는 피사체(202)의 방향으로 접근시켜진다(시축(203)의 방향에 변화 없음).
또한, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds보다도 짧아져 있는 상태로부터 피사체(202)의 이동 또는 LR 버튼으로부터의 입력에 따라서 다음으로 가상 카메라의 시점(201)이 이동되는 위치(다음 후보 위치)에 있어서, 카메라 콜리젼(300)의 범위 내에 장해물이 존재하지 않게 되는 경우에는, 가상 카메라의 시점(201)의 위치는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds보다 작다는 것을 조건으로 하여, 다음 후보 위치보다도 피사체(202)로부터 소정 거리만큼 먼 곳으로 이동된다(시축(203)의 방향에 변화 없음).
가상 카메라의 시점(201)의 위치가 피사체(202)로부터 먼 곳으로 이동되는, 즉 거리 D가 커지면, 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r이 커져서, 카메라 콜리젼(300)의 크기가 확대되지만, 확대된 카메라 콜리젼(300)에 장해물이 존재하면, 가상 카메라의 시점(201)의 위치가 다시 피사체(202)를 향해서 소정 거리만큼 이동시켜져서, 원래의 다음 후보 위치까지 복귀된다(시축(203)의 방향에 변화 없음).
또한, 가상 카메라의 시점(201)의 위치가 피사체(202)로부터 먼 곳으로 이동되고, 이에 따라 크기가 확대된 카메라 콜리젼(300)에 있어서도 장해물이 존재하지 않으면, 거리 D가 기준 거리 Ds가 될 때까지나, 카메라 콜리젼(300)에 장해물이 존재하는 상태에서의 최대 거리가 될 때까지, 가상 카메라(201)의 위치가 더욱 피사체(202)로부터 먼 곳으로 소정 거리만큼 이동시켜진다(시축(203)의 방향에 변화 없음).
이와 같이 가상 카메라의 시점(201)의 위치와 피사체(202) 사이의 거리 D에 따라서 크기가 변화하는 카메라 콜리젼(300)에 장해물이 존재하지 않게 되도록 가상 카메라의 시점(201)의 이동을 제어함으로써, 가상 카메라의 시점(201)의 위치가 장해물의 존재에 의해 급격하게 변화시켜지는 일이 없어, 순조롭게 이동되게 된다. 또, 카메라 콜리젼(300)의 설정과 가상 카메라의 시점(201)의 위치의 이동의 관계에 대해서는, 자세히 후술한다.
또, 카메라 콜리젼(300)에 장해물이 존재하는 지의 여부는, 카메라 주변 영 역(301), 피사체 주변 영역(302), 및 카메라 피사체 간 영역(303)의 각각에 대하여 판단되고, 카메라 주변 영역(301), 피사체 주변 영역(302), 및 카메라 피사체 간 영역(303) 중 어느 하나에 장해물이 존재한다고 판단되면, 카메라 콜리젼(300)에 장해물이 존재한다고 판단되게 된다.
여기서, 카메라 주변 영역(301)에 장해물이 존재하는지의 여부는, 가상 카메라의 시점(201)의 위치와 장해물이 될 수 있는 각 오브젝트 사이의 거리가 반경 R 이하인지의 여부에 의해 판단하면 된다. 마찬가지로, 피사체 주변 영역(302)에 장해물이 존재하는지의 여부는, 피사체(202)의 위치와 장해물이 될 수 있는 각 오브젝트 사이의 거리가 반경 r 이하인지의 여부에 의해 판단하면 된다.
카메라 피사체 간 영역(303)에 대해서는, 예컨대, 가상 카메라의 시점(201)의 위치, 피사체(202)의 위치, 및 카메라 주변 영역(301) 및 피사체 주변 영역(302)의 반경 R, r에 따라서 정의되는 원뿔(카메라 피사체 간 영역(303)을 구성하는 원뿔대의 일부가 된다)에 장해물이 존재하는지의 여부를 상기 원뿔의 정점으로부터의 각도의 계산에 의해 판단하고, 또한 상기 장해물이 존재하는 것이 상기 원뿔의 정점으로부터의 거리의 계산에 의해 카메라 피사체 간 영역(303)을 구성하는 원뿔대에 포함되지 않는 부분인지를 판단하면 된다.
상기와 같이 해서 가상 카메라의 시점(201)의 위치 및 시축(203)의 방향이 정해지면, 투시 변환의 처리에 의해, 시점(201) 및 시축(203)을 기준으로 해서 소정의 각도의 범위로 설정되는 시계 및 전방 클립면 및 후방 클립면에 의해 형성되는 클리핑(clipping) 범위에 포함되는 각 오브젝트를 가상 스크린 상에 투영한 화 상이 생성된다.
보다 구체적으로 설명하면, 제어부(103)는, 가상 카메라의 시점(201)의 위치 및 시축(203)의 방향에 따른 클리핑 범위에 포함되는 각 오브젝트를 구성하는 각 폴리곤의 각 정점의 월드 좌표계(가상 3차원 공간의 좌표계)를, 투시 변환의 처리에 의해 시점 좌표계의 좌표로 변환하고, 또한 스크린 좌표계(가상 스크린 상에 있어서의 좌표계)의 좌표로 변환한다. 그리고, 스크린 좌표계로 변환한 각 폴리곤의 정보와 함께 그래픽 처리부(111)에 묘화 명령을 출력한다.
묘화 명령을 수취한 그래픽 처리부(111)는, 제어부(103)로부터 건네받은 각 폴리곤의 정보에 따라서, 은면 소거의 처리를 행하면서 클리핑 범위에 포함되는 각 오브젝트를 가상 스크린에 투영한 화상의 화상 데이터를 프레임 메모리(112)(상기 프레임 기간에 있어서 기록용)에 기록해 간다. 그래픽 처리부(111)는, 또한, 앞의 프레임 기간에서 프레임 메모리(112)에 기록된 화상 데이터를 판독하고, 비디오 신호로서 표시 장치(121)에 출력하는 것이 된다.
이하, 이 실시 형태에 따른 비디오 게임에 있어서의 처리에 대하여 설명한다. 이 실시 형태에 따른 비디오 게임은, 플레이어가 입력부(161)의 조작에 의해 플레이어 캐릭터를 게임 공간이 되는 가상 3차원 공간 내에서 이동시킴으로써 게임이 진행된다. 가상 카메라의 시점(201)의 위치는, 피사체(202)가 되는 플레이어 캐릭터의 이동에 추종하여 이동한다. 또한, 플레이어는, 게임을 진행시키고 있을 때에 있어서, 입력부(161)의 LR 버튼의 조작에 의해 가상 카메라의 시점(201)의 위치를 이동시킬 수 있다. 또, 게임 공간에는 여러 가지 이벤트가 설정되어 있으며, 플 레이어 캐릭터가 이동한 위치에 따라서 이벤트가 발생하지만, 이벤트의 발생에 대해서는 본 발명과는 관계가 없기 때문에, 상세한 설명을 생략한다.
이 실시 형태에 따른 비디오 게임에 있어서 게임이 진행되어 가는 모습은, 1프레임 기간마다 게임의 진행 상황에 따라서 생성되는 게임 화면으로서 플레이어에게 나타난다. 도 3은 이 실시 형태에 따른 비디오 게임에 있어서, 게임 화면으로서 표시 장치(121)의 표시 화면(122)에 표시되는 화상의 화상 데이터를 생성하기 위하여, 제어부(103)가 1프레임 기간마다 행하는 화상 생성 처리를 도시하는 플로우차트이다.
1 프레임의 기간이 개시되면, 제어부(103)는, 앞의 프레임 기간에 있어서의 투시 변환의 처리(단계 S110: 후술)에서 스크린 좌표계의 좌표로 변환된 클리핑 범위 내에 포함되는 각 오브젝트를 구성하는 각 폴리곤의 정점에 관한 좌표를 그래픽 처리부(111)에 건네주고, 그래픽 처리부(111)에 묘화 명령을 출력한다(단계 S101).
그래픽 처리부(111)는, 묘화 명령이 출력되면, 제어부(103)로부터 수취한 각 폴리곤의 정보에 따라서 프레임 메모리(112)(이번회의 프레임 기간에 있어서 기록용)에 화상 데이터를 기록한다. 또한, 그래픽 처리부(111)는, 앞의 프레임 기간에서 프레임 메모리(112)(이번회의 프레임 기간에 있어서 판독용)로부터의 화상 데이터의 판독을 개시하고, 1 프레임 분의 비디오 신호의 출력을 개시시킨다.
다음으로, 제어부(103)는, 게임의 진행 상황에 따라서 가상 3차원 공간에 존재하는 각 넌 플레이어 캐릭터의 위치를 이동시킨다(단계 S102). 여기서는, 모든 넌 플레이어 캐릭터의 위치를 이동시키지 않으면 안 되는 것은 아니고, 게임의 진 행 상황에 따라서는, 위치가 이동되는 넌 플레이어 캐릭터가 하나도 없어도 좋다. 또, 넌 플레이어 캐릭터의 위치의 이동에 대해서는, 종래부터 이러한 종류의 비디오 게임에서 행해지고 있던 것과 동일한 처리를 적용하면 된다.
다음으로, 제어부(103)는, 입력부(161)의 방향키로부터의 지시가 입력되어 있는 지의 여부에 의해, 피사체(202)가 되는 플레이어 캐릭터를 가상 3차원 공간에서 이동시키기 위한 지시가 입력되어 있는지의 여부를 판정한다(단계 S103). 플레이어 캐릭터를 이동시키기 위한 지시가 입력되어 있는 경우에는, 제어부(103)는, 가상 카메라의 시축(203)의 방향 및 상기 입력된 지시에 따라서 플레이어 캐릭터의 가상 3차원 공간에서의 위치를 이동시키고(단계 S104), 또한, 플레이어 캐릭터의 이동에 추종하여 가상 카메라의 시점(201)의 위치를 이동시킨다(단계 S105). 그리고, 단계 S109의 처리로 진행된다
플레이어 캐릭터를 이동시키기 위한 지시가 입력되어 있지 않은 경우에는, 제어부(103)는, 입력부(161)의 LR키로부터의 지시가 입력되어 있는지의 여부에 의해, 가상 카메라의 시점(201)의 위치를 이동시키기 위한 지시가 입력되어 있는지의 여부를 판정한다(단계 S106). 가상 카메라의 시점(201)의 위치를 이동시키기 위한 지시가 입력되어 있지 않으면, 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치는 이전회의 프레임 기간과 동일한 상태이며, 이 위치에서 카메라 콜리젼(300) 내에 장해물이 존재하는 일은 없기 때문에, 그대로 단계 S110의 처리로 진행된다.
가상 카메라의 시점(201)의 위치를 이동시키기 위한 지시가 입력되어 있으면, 제어부(103)는, 상기 입력된 지시에 따라서 가상 카메라의 시점(201)의 위치를 이동시키고(단계 S107), 또한, 이동한 시점(201)의 위치에 있어서 플레이어 캐릭터(피사체(202))를 향하도록 가상 카메라의 시축(203)의 방향을 변경한다(단계 S108). 그리고, 단계 S109의 처리로 진행된다.
단계 S109에서는, 제어부(103)는, 상세를 후술하는 가상 카메라 제어 처리를 행하여, 가상 카메라의 시점(201)의 위치를 카메라 콜리젼(300) 내에 장해물이 되는 오브젝트가 존재하지 않는 위치로 제어한다. 가상 카메라 제어 처리에 의해 가상 카메라의 시점(201)의 위치가 최종적으로 설정되면, 단계 S110의 처리로 진행된다.
단계 S110에서는, 제어부(103)는 단계 S109까지 정해진 이번회의 프레임 기간에 있어서의 가상 카메라의 시점(201)의 위치 및 시축(203)의 방향에 따라서 정해지는 클리핑 범위에 존재하는 각 오브젝트를 구성하는 각 폴리곤의 정점의 좌표를, 월드 좌표계의 좌표로부터 스크린 좌표계의 좌표로 변환하는 투시 변환의 처리를 행한다. 그리고, 투시 변환의 처리가 종료되면, 이번회의 프레임 기간에 있어서의 화상 생성 처리가 종료된다. 또한, 다음의 프레임 기간이 개시되면, 새롭게 화상 생성 처리가 개시되는 것이 된다.
도 4는 단계 S108의 가상 카메라 제어 처리를 상세하게 도시하는 플로우차트이다. 가상 카메라 제어 처리에서는, 제어부(103)는, 현시점에서의 가상 카메라의 시점(201)의 위치 및 피사체(202)(플레이어 캐릭터)의 위치 사이의 거리 D를 산출한다(단계 S201). 제어부(103)는, 산출한 거리 D에 따라서 상술한 수학식 1의 연산을 행하여, 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r을 산출한다(단계 S202).
다음으로, 제어부(103)는, 현시점에서의 가상 카메라의 시점(201) 및 피사체(202)의 위치, 및 산출한 반경 R, r에 따라서 정해지는 카메라 콜리젼(300)의 범위 내에, 플레이어 캐릭터 및 넌 플레이어 캐릭터 이외의 장해물이 되는 오브젝트가 존재하는지의 여부를 판정한다(단계 S203). 단계 S203에서 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하는 경우에는, 제어부(103)는, 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치를 향해서 소정 거리만큼 접근시킨다(단계 S204). 그리고, 단계 S201의 처리로 되돌아간다.
단계 S203에서 카메라 콜리젼의 범위 내에 장해물이 되는 오브젝트가 존재하지 않는 경우에는, 제어부(103)는, 단계 S201에서 최근에 산출한 거리 D가 기준 거리 Ds로 되어 있는지의 여부를 판정한다(단계 S205). 거리 D가 기준 거리 Ds로 되어있는 경우에는, 현시점에서 구해지고 있는 시점(201)의 위치가 이번회의 프레임 기간에 있어서의 가상 카메라의 시점(201)의 위치가 되기 때문에, 그대로 가상 카메라 제어 처리를 종료하고, 도 3의 플로우차트로 복귀한다.
산출한 거리 D가 기준 거리 Ds로 되어 있지 않은 경우에는, 제어부(103)는, 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치로부터 소정 거리만큼 멀리한다(단계 S206). 제어부(103)는, 여기서 또한 현시점에서의 가상 카메라의 시점(201)의 위치 및 피사체(202)(플레이어 캐릭터)의 위치 사이의 거리 D를 산출한다(단계 S207). 제어부(103)는, 산출한 거리 D에 따라서 상술한 수학식 1의 연산을 행하여, 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r을 산출한다(단계 S208).
다음으로, 제어부(103)는, 현시점에서의 가상 카메라의 시점(201) 및 피사체(202)의 위치, 및 산출한 반경 R, r에 따라서 정해지는 카메라 콜리젼(300)의 범위 내에, 플레이어 캐릭터 및 넌 플레이어 캐릭터 이외의 장해물이 되는 오브젝트가 존재하는지의 여부를 판정한다(단계 S209).
단계 S209에서 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하는 경우에는, 제어부(103)는, 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치를 향해서 소정 거리만큼 접근시킨다(단계 S210). 이에 따라, 현시점에서 구해지고 있는 시점(201)의 위치가 카메라 콜리젼(300)의 범위 내에 장해물이 존재하지 않는 조건으로 거리 D가 기준 거리 Ds에 가장 가까워지는 위치가 되기 때문에, 이것으로 가상 카메라 제어 처리를 종료하고, 도 3의 플로우차트로 복귀한다.
단계 S209에서 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하지 않는 경우에는, 제어부(103)는, 단계 S201에서 최근에 산출한 거리 D가 기준 거리 Ds로 되어 있는지의 여부를 판정한다(단계 S211). 거리 D가 기준 거리 Ds로 되어 있는 경우에는, 현시점에서 구해지고 있는 시점(201)의 위치가 이번회의 프레임 기간에 있어서의 가상 카메라의 시점(201)의 위치가 되기 때문에, 그대로 가상 카메라 제어 처리를 종료하고, 도 3의 플로우차트로 복귀한다.
단계 S211에서 거리 D가 기준 거리 Ds로 되어 있지 않은 경우에는, 적어도 현시점에서의 가상 카메라의 시점(201)의 위치에서는 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트는 존재하지 않으나, 거리 D가 기준 거리 Ds에 보다 가까워지는 위치까지 가상 카메라의 시점(201)의 위치를 이동해도 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하고 있지 않을 가능성도 있다. 따라서, 이 경우, 제어부(103)는, 단계 S206의 처리로 되돌아가서, 또한 처리를 계속하는 것이 된다.
이하, 이 실시 형태에 따른 비디오 게임에 있어서, 장해물이 존재하는 영역에서의 피사체(202)의 이동에 따른 가상 카메라의 시점(201)의 이동에 대하여 구체적으로 설명한다. 도 5의 (a)~(h), 도 6의 (a)~(g)는, 이 실시 형태에 따른 비디오 게임에 있어서의 카메라 콜리젼(300)의 설정과, 투시 변환 시에 장해물을 피하도록 하기 위한 가상 카메라의 시점(201)의 위치의 이동의 구체예를 모식적으로 도시하는 도면이다.
우선, 도 5의 (a)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치와 피사체(플레이어 캐릭터)(202)의 위치 사이의 거리가 D1(=Ds)이며, 여기서 설정되는 카메라 주변 영역(301), 피사체 주변 영역(302) 및 카메라 피사체 간 영역(303)으로 구성되는 카메라 콜리젼(300)의 범위 내에는, 장해물(400)이 존재하고 있지 않은 것으로 한다. 다음으로, 도 5의 (b)에 도시하는 바와 같이, 피사체(202)의 위치가 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해 물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 5의 (c)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 접근시켜진다. 이렇게 해서 가상 카메라의 시점(201)의 위치 및 피사체(플레이어 캐릭터)(202)의 위치 사이의 거리가 D2(<D1)가 되면, 카메라 콜리젼(300)의 크기가 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다. 단, 도 5의 (d)에 도시하는 바와 같이, 피사체(202)의 위치가 더 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 5의 (e)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 더욱 접근시켜진다. 이렇게 해서 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치 사이의 거리가 D3(<D2)가 되면, 카메라 콜리젼(300)의 크기가 더욱 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다. 단, 도 5의 (f)에 도시하는 바와 같이, 피사체(202)의 위치가 더 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 5의 (g)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 더욱 접근시켜진다. 이렇게 해서 가상 카메라의 시 점(201)의 위치 및 피사체(202)의 위치 사이의 거리가 D4(<D3)가 되면, 카메라 콜리젼(300)의 크기가 더욱 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다. 단, 도 5의 (h)에 도시하는 바와 같이, 피사체(202)의 위치가 더 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 6의 (a)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 더욱 접근시켜진다. 이렇게 해서 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치 사이의 거리가 D5(<D4)가 되면, 카메라 콜리젼(300)의 크기가 더욱 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다. 단, 도 6의 (b)에 도시하는 바와 같이, 피사체(202)의 위치가 더 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 6의 (c)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 더욱 접근시켜진다. 이렇게 해서 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치 사이의 거리가 D6(<D5)가 되면, 카메라 콜리젼(300)의 크기가 더욱 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다. 단, 도 6의 (d)에 도시하는 바 와 같이, 피사체(202)의 위치가 더 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 6의 (e)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 더욱 접근시켜진다. 이렇게 해서 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치 사이의 거리가 D7(<D6)이 되면, 카메라 콜리젼(300)의 크기가 더욱 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다. 단, 도 6의 (f)에 도시하는 바와 같이, 피사체(202)의 위치가 더 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치를 이동하면, 장해물(400)이 카메라 콜리젼(300)의 범위 내에 들어가 버리게 되는 것으로 한다.
이 경우에는, 도 6의 (g)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 더욱 접근시켜진다. 이렇게 해서 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치 사이의 거리가 D8(<D7)이 되면, 카메라 콜리젼(300)의 크기가 더욱 작아지고, 이 크기에서의 카메라 콜리젼(300)의 범위 내에는 장해물(400)이 들어가지 않게 되는 것이 된다.
이와 같이, 이 실시 형태에 따른 비디오 게임에서는, 도 5의 (a), 도 5의 (c), 도 5의 (e), 도 5의 (g), 도 6의 (a), 도 6의 (c), 도 6의 (e), 도 6의 (g)에 도시하는 위치에서 가상 카메라의 시점(201)의 위치가 이동해 가는 경우, 이들 도 면에 화살표로 나타내는 바와 같이, 가상 카메라의 시점(201)의 이동은, 순조롭게 행해지고 있는 것을 알 수 있다. 특히, 도 6의 (a), 도 6의 (c), 도 6의 (e), 도 6의 (g)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치보다도 후측(피사체(202)보다도 먼 측)에 장해물이 있는 경우도, 카메라 주변 영역(301)이 가상 카메라의 시점(201)의 위치보다 후측의 영역까지를 포함하고 있기 때문에, 가상 카메라의 시점(201)의 이동이 순조롭게 행해지고 있는 것을 알 수 있다.
또, 도 5, 도 6에서는, 피사체(202)가 되는 플레이어 캐릭터의 이동에 추종하여 가상 카메라의 시점(201)의 위치가 이동하고, 이에 따라 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치를 연결하는 직선에 장해물(400)이 서서히 접근해 오는 경우를 설명하였으나, 입력부(161)의 LR 버튼으로부터 입력된 지시에 의해 가상 카메라의 시점(201)의 위치가 이동하고, 이에 따라 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치를 연결하는 직선에 장해물(400)이 서서히 접근해 오는 경우에도, 가상 카메라의 시점(201)의 위치가 순조롭게 이동되는 것이 된다.
또한, 피사체(202)가 되는 플레이어 캐릭터의 이동 또는 입력부(161)의 LR 버튼으로부터의 지시의 입력에 따라서 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치를 연결하는 직선으로부터 장해물(400)이 서서히 멀어져 가는 경우에는, 도 5의 (a), 도 5의 (c), 도 5의 (e), 도 5의 (g), 도 6의 (a), 도 6의 (c), 도 6의 (e), 도 6의 (g)의 순서와는 반대의 관계로 가상 카메라의 시점(201)의 위치가 이동해 가게 되기 때문에, 가상 카메라의 시점(201)의 위치가 순조롭게 이동 되는 것이 된다.
비교예로서, 종래예에 따른 비디오 게임에 있어서, 장해물이 존재하는 영역에서의 피사체(202)의 이동에 따른 가상 카메라의 시점의 이동에 대하여 구체적으로 설명한다. 도 7의 (a)~(d)는, 종래예에 따른 비디오 게임에 있어서, 투시 변환 시에 장해물을 피하도록 하기 위한 가상 카메라의 시점(201)의 위치의 이동의 구체예를 모식적으로 도시하는 도면이다.
우선, 도 7의 (a)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치 및 피사체(플레이어 캐릭터)(202)의 위치 사이의 거리가 D1(=Ds)에 있는 것으로 한다. 여기서의 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치 관계는, 도 5의 (a)에 도시한 것과 동일하다고 한다. 여기서는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이에 장해물(400)은 존재하지 않는다.
다음으로, 도 7의 (b)에 도시하는 바와 같이, 도 5의 (a)의 상태로부터 도 5 의 (b)에 도시하는 상태로 이동하는 경우와 동일한 만큼 피사체(202)의 위치가 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치가 이동한 것으로 한다. 도 5의 (b)에서는 카메라 콜리젼(300)의 범위 내에 장해물(400)이 존재하게 되었으나, 도 7의 (b)에서는 가상 카메라의 시점(201)의 위치와 피사체(202) 사이에 장해물(400)이 존재하지 않기 때문에, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 접근시켜지는 일은 없으며, 가상 카메라의 시점(201)의 위치를 이 위치에 있어서 투시 변환의 처리가 행해진다.
또한, 도 7의 (c)에 도시하는 바와 같이, 도 5의 (c)의 상태로부터 도 5의 (d)에 도시하는 상태로 이동하는 경우와 동일한 만큼 피사체(202)의 위치가 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치가 이동한 것으로 한다. 도 5의 (d)에서도 카메라 콜리젼(300)의 범위 내에 장해물(400)이 존재하게 되었으나, 도 7의 (c)에서도 가상 카메라의 시점(201)의 위치와 피사체(202) 사이에 장해물(400)이 존재하지 않기 때문에, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치에 접근시켜지는 일은 없으며, 가상 카메라의 시점(201)의 위치를 이 위치에 있어서 투시 변환의 처리가 행해진다.
그 후, 도 7의 (d)에 도시하는 바와 같이, 도 5의 (e)의 상태로부터 도 5의 (f)에 도시하는 상태로 이동하는 경우와 동일한 만큼 피사체(202)의 위치가 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치가 이동한 것으로 한다. 도 7의 (d)의 상태에서는, 가상 카메라의 시점(201)의 위치와 피사체(202) 사이에 장해물(400)이 존재해 버리게 된다.
그래서, 도 7의 (e)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치와 피사체(202) 사이에 장해물(400)이 존재하지 않게 되는 위치, 즉 가상 카메라의 시점(201)의 위치와 피사체(202) 사이의 거리 D가 D0(≪D1)가 되는 위치까지, 가상 카메라의 시점(201)의 위치가 이동되게 된다. 그 후는, 도 7의 (f)에 도시하는 바와 같이, 피사체(202)의 위치의 이동에 추종하여, 피사체(202)의 위치와의 사이의 거리를 일정하게 유지하면서 가상 카메라의 시점(201)의 위치가 이동된다.
그 후도, 도 7의 (g)에 도시하는 바와 같이, 피사체(202)의 위치가 이동하고, 이것에 추종하여, 가상 카메라의 시점(201)의 위치와 피사체(202) 사이에 장해물(400)이 존재해 버리게 될 때까지, 가상 카메라의 시점(201)의 위치가 이동한 것으로 한다. 그래서, 도 7의 (h)에 도시하는 바와 같이, 가상 카메라의 시점(201)의 위치와 피사체(202) 사이에 장해물(400)이 존재하지 않게 되는 위치, 즉 가상 카메라의 시점(201)의 위치와 피사체(202) 사이의 거리 D가 D00(≪D0)가 되는 위치까지, 가상 카메라의 시점(201)의 위치가 이동되게 된다.
이와 같이, 비교예에 따른 종래의 비디오 게임에서는, 도 7의 (a), (b), (c), (e), (f), (h)에 도시하는 위치에서 가상 카메라의 시점(201)의 위치가 이동해 가는 경우, 도 7의 (e), (f), (h)에 화살표로 나타내는 바와 같이, 가상 카메라의 시점(201)의 이동이 급격하게 행해져 버리는 것을 알 수 있다.
이상 설명한 바와 같이, 이 실시 형태에 따른 비디오 게임에서는, 플레이어 캐릭터를 피사체(202)로 해서 투시 변환의 처리가 행해지고, 표시 장치(121)의 표시 화면(122)으로서 표시되는 게임의 화상이 1 프레임 기간마다 생성된다. 여기서, 플레이어가 입력부(161)의 방향키로부터 지시를 입력하면, 입력된 지시에 따른 방향으로 피사체(202)가 되는 플레이어 캐릭터가 이동하고, 이것에 추종하여 가상 카메라의 시점(201)의 위치도 이동한다. 또한, 플레이어가 입력부(161)의 LR 버튼으로부터 지시를 입력하면, 가상 카메라의 시축(203)의 방향을 피사체(202)가 되는 플레이어 캐릭터를 향하도록 변화시키면서, 가상 카메라의 시점(201)의 위치가 주 회 이동, 또는 극좌표 상에서 이동시켜진다.
이와 같이 가상 카메라의 시점(201)의 위치는, 피사체(202)가 되는 플레이어 캐릭터의 이동에 추종하여 이동되거나, 입력부(161)의 LR 버튼으로부터의 입력에 의해 이동되는 것이지만, 카메라 콜리젼(300)의 범위 내에 장해물이 존재하게 되면, 상기 카메라 콜리젼(300)의 범위 내에 장해물이 들어가지 않는 위치가 될 때까지, 가상 카메라의 시점(201)의 위치가 피사체(202)의 위치의 방향을 향해서 이동된다.
여기서, 카메라 콜리젼(300)은, 가상 카메라의 시점(201)의 위치를 중심으로 하는 반경 R의 구로 설정되는 카메라 주변 영역(301)과, 피사체(202)의 위치를 중심으로 하는 반경 r의 구로 설정되는 피사체 주변 영역(302)과, 그 사이의 원뿔대 형상의 카메라 피사체 간 영역(303)으로 구성되어 있다. 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r은, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds보다도 작아지면, 기준 거리 Ds일 때의 표준치인 반경 Rs, rs보다도 작아져서, 카메라 콜리젼(300)의 크기가 축소되는 것으로 되어 있다.
이 때문에, 가상 카메라의 시점(201)의 위치로부터 비교적 떨어진 위치에서 카메라 콜리젼(300)의 범위 내에 장해물이 존재하고 있는 경우에는, 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치에 접근시키면 카메라 콜리젼(300)의 크기가 축소되기 때문에, 피사체(202)의 위치에 접근시킨 위치를 카메라 콜리젼(300)의 범위 내에 장해물이 존재하지 않는 위치로서 가상 카메라의 시점(201)의 위치를 정할 수 있다.
이 때문에, 예컨대, 가상 카메라(201)의 시점의 위치와 피사체(202)의 위치를 연결하는 직선과 장해물 사이의 거리가 서서히 짧아져 가는 것과 같은 경우에, 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치를 향해서 서서히 접근시켜 가는 것이 가능해진다. 그리고, 이 직선 상에 장해물이 들어갈 때에는, 그 직전까지 가상 카메라의 시점(201)의 위치는 상당히 피사체(202)의 위치 쪽으로 이동하고 있기 때문에, 장해물의 위치보다도 피사체(202)의 위치로부터의 거리가 짧은 위치까지 가상 카메라의 시점(201)의 위치를 이동시킨다고 해도, 가상 카메라의 시점(201)의 위치가 급격하게 이동되어 버리는 일이 없다.
또한, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치를 연결하는 직선과 장해물 사이의 거리가 서서히 길어져 가는 것과 같은 경우에는, 가상 카메라의 시점(201)의 위치를 피사체(202)로부터 단숨에 너무 멀리하면 카메라 콜리젼(300)이 커져서 카메라 콜리젼(300)에 장해물이 들어가 버리게 되기 때문에, 가상 카메라의 시점(201)의 위치는, 피사체(202)의 위치로부터 서서히 멀어져 가는 것이 된다.
이와 같이, 이 실시 형태에 따른 비디오 게임에서는, 가상 카메라(201)의 시점의 위치와 피사체(202)의 위치 사이에 장해물이 들어가 버리는 것을 회피하도록 가상 카메라의 시점(201)의 위치를 제어하는 것으로 해도, 가상 카메라의 시점(201)의 위치의 이동이 순조롭게 행해지는 것으로 되어 있다. 이에 따라, 표시 장치(121)의 표시 화면(122)에 표시된 화상을 보고 있는 플레이어가, 표시되는 화상의 변화에 위화감을 일으켜 버리는 일이 없다. 또한, 가상 카메라의 시점(201)의 위치가 급격하게 전환되는 일이 없기 때문에, 표시되어 있는 화상을 보고 있음으로써 플레이어가 카메라 멀미를 해 버리는 일도 없다.
또한, 카메라 콜리젼(300)의 범위 내에 존재하는 장해물에 대하여 투과 처리를 행하는 것도 아니기 때문에, 표시 장치(121)의 표시 화면(122)에 표시된 화상에 있어서 본래 장해물에 숨겨져서 보일 리가 없는 오브젝트가 플레이어에게 보여 버린다는 일도 없다. 이에 따라, 표시 장치(121)의 표시 화면(122)에 표시된 화상을 보고 있는 플레이어가, 표시되는 화상에 있어서 시인하고 있는 오브젝트에 위화감을 일으켜 버리는 일도 없다.
또한, 카메라 주변 영역(301)과 피사체 주변 영역(302)은, 각각 가상 카메라의 시점(201)의 위치, 피사체(202)의 위치를 중심으로 하는 구에 포함되는 영역으로 설정되어 있다. 이 때문에, 카메라 콜리젼(300) 중에서 카메라 주변 영역(301)이나 피사체 주변 영역(302)에 장해물이 존재하는지의 여부는, 가상 카메라의 시점(201)의 위치나 피사체(202)의 위치와 장해물이 될 수 있는 각 오브젝트를 구성하는 폴리곤의 정점의 위치 사이의 거리 계산으로 용이하게 판단할 수 있다. 또한, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리에 따라서 카메라 주변 영역(301)이나 피사체 주변 영역(302)의 크기를 변화시키는 것으로 해도, 계산이 복잡해지는 일은 없다.
또한, 카메라 콜리젼(300)을 구성하는 카메라 주변 영역(301)은, 가상 카메 라의 시점(201)의 위치를 중심으로 하는 구로 이루어지며, 피사체(202)의 위치로부터의 거리가 시점(201)의 위치보다도 먼 영역까지 포함하고 있기 때문에, 가상 카메라의 시점(201)의 위치가 장해물의 위치보다도 피사체(202) 근처로 돌아 들어가 있는 경우라도, 더욱 순조롭게 시점(201)의 위치를 계속 이동시킬 수 있다.
또한, 카메라 콜리젼(300)은, 피사체(202)의 위치를 중심으로 하는 구의 영역으로 설정되는 피사체 주변 영역(302)까지도 포함하고 있기 때문에, 피사체의 위치에 매우 가까운 위치에서 가상 카메라(201)의 시점의 위치와 피사체(202)의 위치를 연결하는 직선에 장해물이 서서히 접근해 오는 것과 같은 경우에도, 가상 카메라의 시점(201)의 위치를 순조롭게 이동시키면서 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이에 장해물이 들어가 버리는 것을 회피할 수 있게 된다.
본 발명은, 상기의 실시 형태에 한정되지 않으며, 여러 가지 변형, 응용이 가능하다. 이하, 본 발명에 적용 가능한 상기의 실시 형태의 변형 형태에 대하여 설명한다.
상기의 실시 형태에서는, 가상 카메라의 시점(201)의 위치는, 피사체(202)의 위치와의 사이의 거리 D가 최대라도 기준 거리 Ds가 되는 위치로 설정되어 있었으나, 거리 D가 기준 거리 Ds보다도 크게 되는 위치로 설정되는 경우가 있어도 좋다. 이 경우에 있어서, 카메라 주변 영역(301)의 반경 R, 피사체 주변 영역(302)의 반경 r은, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds보다도 크게 되면, 거리 D가 기준 거리 Ds인 경우의 표준치 Rs, rs보다 도 크게 되는 것으로 할 수 있다.
상기의 실시 형태에서는, 가상 카메라의 시축(203)의 방향은, 항상 플레이어 캐릭터를 향해서 제어되는, 즉 플레이어 캐릭터를 피사체(202)로 해서 제어되는 것으로 되어 있었다. 그러나, 가상 카메라의 시축(203)이 향하는 피사체(202)가 되는 오브젝트는, 반드시 플레이어 캐릭터에 한정되는 것은 아니다. 피사체(202)가 되는 오브젝트는, 무색 투명한 오브젝트 또는 영역의 폭을 갖지 않는 오브젝트와 같이, 표시 화면(122)에 표시되는 일이 없는 오브젝트여도 좋다.
상기의 실시 형태에서는, 가상 카메라의 시점(201)의 위치는, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하지 않는 경우에는, 입력부(161)의 LR 버튼으로부터의 지시의 입력에 따라서 이동시켜지는 경우를 제외하고는, 피사체(202)가 되는 플레이어 캐릭터의 위치의 이동에 추종하여 이동시켜지는 것으로 하고 있었다. 단, 입력부(161)의 방향키로부터의 지시의 입력에 의해 플레이어 캐릭터의 위치뿐만이 아니라 방향도 변화시켜지는 경우에는, 이 방향의 변화에 추종하여 이동시켜지는 것으로 해도 좋다.
또한, 가상 카메라의 시점(201)의 위치는, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재함으로써 이동되는 경우 이외는, 피사체(202)가 되는 플레이어 캐릭터의 위치의 이동(및 방향의 변화)에 완전히 추종하여 이동시켜지는 것이어도 좋다. 또한, 가상 카메라의 시점(201)의 위치는, 예컨대, L1 버튼 및 R1 버튼으로부터의 지시의 입력에 의해 피사체(202)를 중심으로 주회 이동시켜지지만, 극좌표 방향으로는 이동되지 않는 것으로 해도 좋다.
또한, 가상 카메라의 시점(201)의 위치는, 피사체(202)와 가상 카메라의 시점(201) 사이의 거리를 조정하여 장해물을 회피하는 경우 이외에도, 가능한 한 피사체(202)와 가상 카메라(201) 사이의 거리를 변화시키지 않고 피사체(202)를 향하도록 시축(203)의 각도를 제어하는 것을 조건으로 해서, 종래부터 알려져 있는 임의의 수법에 의해 제어하는 것으로 할 수 있다. 예컨대, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 소정의 범위 내에 있을 때에는 피사체(202)의 위치가 이동해도 시점(201)의 위치를 고정한 채 시축(203)의 각도의 조정만으로(피사체(202)와 가상 카메라의 시점(201) 사이의 거리를 변경시키지 않고) 가상 카메라를 피사체(202)에 추종시키지만, 거리 D가 소정의 범위를 넘는 위치까지 이동했을 때에는 거리 D가 소정의 범위 내가 되는 위치에 가상 카메라의 시점(201)의 위치를 이동시키는 것으로 할 수 있다.
상기의 실시 형태에서는, 카메라 콜리젼(300)의 범위 내에 장해물이 존재할 때에는, 가상 카메라의 시점(201)의 위치를 피사체(202)의 방향으로 이동시키고, 이렇게 해서 장해물이 카메라 콜리젼(300)의 범위 내에 들어가 버리는 것을 회피하는 것으로 하고 있었다. 그러나, 장해물을 회피하기 위한 가상 카메라의 시점(201)의 이동 방향은, 피사체(202)의 방향에 한정되는 것은 아니다. 상황에 따라서 가상 카메라의 시점(201)을 피사체(202)의 방향으로 이동시키는 경우와, 그 이외의 방향으로 이동시키는 경우를 병용할 수도 있다. 그 이외의 방향으로 이동시키는 하기의 각종 수법도, 임의의 2개 이상의 것을 병용할 수 있다.
예컨대, 카메라 콜리젼(300)의 범위 내에 장해물이 들어가지 않게 될 때까 지, 가상 카메라의 시점(201)의 위치를 극좌표 상에서 상방향으로 이동시키는 것으로 해도 좋다. 또한, 카메라 콜리젼(300)의 범위 내에 장해물이 들어가지 않게 될 때까지, 가상 카메라의 시점(201)의 위치를 가상 3차원 공간의 Z축 방향으로 이동시키는 것으로 해도 좋다. 또한, 가상 카메라의 시점(201)을 높이를 일정하게 유지시키면서 이동시키는 경우에는, 카메라 콜리젼(300)의 범위 내에 장해물이 들어갔을 때에는, 가상 카메라의 시점(201)의 위치를 좌측 방향 또는 우측 방향으로 회전 이동시켜서, 카메라 콜리젼(300)의 범위 내에 장해물이 들어가지 않게 되도록 해도 좋다.
장해물을 회피하기 위해서, 가상 카메라의 시점(201)을 피사체(202)의 방향으로 이동시키는 경우도, 극좌표 상에서 상하 방향으로 이동시키는 경우도, 좌측 방향 또는 우측 방향으로 회전 이동시키는 경우도, 또한 이들을 조합하는 경우도, 가상 카메라의 시점(201)의 위치는, 시축(203)을 피사체(202)에 향하게 하면서 가상 3차원 공간에서 임의의 위치로 이동시키는 것으로 할 수 있다.
상기의 실시 형태에서는, 플레이어 캐릭터 및 넌 플레이어 캐릭터 이외의 가상 3차원 공간에서의 위치가 변화하지 않는 오브젝트가 투시 변환 시의 장해물이 될 수 있는 오브젝트로 되어 있었으나, 가상 3차원 공간에서의 위치가 변화하는 오브젝트(피사체(202)가 되지 않는 넌 플레이어 캐릭터를 포함하고 있어도 좋다)도, 투시 변환 시의 장해물이 될 수 있는 오브젝트로 해도 좋다.
가상 3차원 공간에서의 위치가 변화하는 오브젝트도 장해물이 될 수 있는 경우에는, 가상 카메라의 시점(201)의 위치 및 피사체(202)의 위치가 이동하지 않아 도, 장해물이 될 수 있는 오브젝트의 위치가 이동함으로써, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재해 버리는 경우가 있다. 이러한 경우에도, 단계 S109의 가상 카메라 제어 처리(도 3)를 행하는 것으로 하여, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 포함되지 않도록 가상 카메라의 시점(201)의 위치를 이동시키는 것으로 하면 된다.
또한, 상기의 실시 형태에서는 스탠드 얼론형의 비디오 게임을 전제로 설명하였기 때문에, 플레이어 캐릭터 이외의 캐릭터는 모두 넌 플레이어 캐릭터인 것으로서 설명하였으나, 네트워크(151)를 통해 접속된 복수의 비디오 게임 장치(100)로부터 각 플레이어가 참가하는 네트워크 게임에서는, 각각의 플레이어에 대응한 플레이어 캐릭터가 가상 3차원 공간에 존재하게 된다. 이 경우는, 다른 플레이어에 대응한 플레이어 캐릭터는 투시 변환 시의 장해물이 될 수 있는 오브젝트로 하는 것도, 장해물이 될 수 없는 오브젝트로 하는 것도 가능하다. 게임에 있어서 일정한 관계를 갖는 플레이어의 플레이어 캐릭터만을 장해물이 될 수 없는 오브젝트로 할 수도 있다.
상기의 실시 형태에서는, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하지 않는 것을 조건으로 해서, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 기준 거리 Ds에 가장 가까워지는 위치까지 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치로부터 멀리하는 것으로 하고 있었다. 단, 특히 장해물이 되는 오브젝트가 가상 3차원 공간 내를 이동하는 것이 거나, 가상 3차원 공간으로부터 돌연히 없어지는 경우가 있는 오브젝트이거나 한 경우에는, 거리 D가 기준 거리 Ds가 될 때까지 1프레임 기간에서 단숨에 가상 카메라의 시점(201)의 위치를 이동시켜 버리면, 시점(201)의 위치가 너무 급격하게 되어 버리는 경우가 있다.
그래서, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하지 않는 경우라도, 가상 카메라의 시점(201)의 위치는, 이전회의 프레임 기간에 있어서의 거리 D와 이번회의 프레임 기간에 있어서의 거리 D와의 차가 일정한 범위 내가 되는 것을 조건으로 해서, 거리 D가 기준 거리 Ds에 접근하도록 이동시키는 것으로 해도 좋다. 예컨대, 도 4의 단계 S209의 처리에서 카메라 콜리젼(300)의 범위 내에 장해물이 존재하지 않는다고 판정된 경우에, 그대로 가상 카메라 제어 처리를 종료시키는 것 등에 의해, 이러한 수법을 실현할 수 있다.
상기의 실시 형태에서는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 카메라 콜리젼(300)의 크기를 변화시키는 것으로 하고 있었으나, 가상 카메라의 시계는 항상 소정의 각도로 되어 있었다. 이 때문에, 가상 카메라의 시점(201)의 위치를 피사체(202)에 접근시키면, 투시 변환에 의해 생성되는 화상에 표시되는 범위의 크기가 변해 버린다. 그래서, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서, 가상 카메라의 시계의 크기도 변화시키는 것으로 해도 좋다.
이에 따라, 표시 화면(122)으로서 표시되는 가상 3차원 공간의 범위의 크기 를, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D의 변화에 관계없이 거의 동일한 크기로 유지할 수 있기 때문에, 장해물을 회피하기 위하여 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치에 접근시키거나 멀리하거나 해도, 플레이어가 화면 상에서 그다지 위화감을 일으키지 않고 끝나게 된다.
상기의 실시 형태에서는, 카메라 콜리젼(300)을 구성하는 카메라 주변 영역(301)의 반경 R도, 피사체 주변 영역(302)의 반경 r도, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 변화하는 것으로 되어 있었다. 이에 비해서, 카메라 주변 영역(301)의 반경 R은 거리 D에 따라서 가변으로 하지만, 피사체 주변 영역(302)의 반경 r은 거리 D에 관계없이 일정한 것으로 할 수 있다. 단, 피사체 주변 영역(302)의 반경 r도 거리 D에 따라서 변화시키는 편이, 가상 카메라의 시점(201)의 움직임을 스무스하게 할 수 있다.
상기의 실시 형태에서는, 카메라 콜리젼(300)의 크기(카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r)는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 정해지는 것으로 하고 있었다. 단, 게임의 진행 상황의 차이에 의해, 가상 카메라의 시점(201)의 위치가 순조롭게 흐르도록 움직이는 편이 임장감이 얻어지는 화상을 생성할 수 있는 경우도, 가상 카메라의 시점(201)의 위치가 크게 변화하는 편이 임장감이 얻어지는 화상을 생성할 수 있는 경우도 있다. 또한, 장해물이 될 수 있는 오브젝트가 많은 장면에서는, 카메라 콜리젼(300)의 크기를 너무 크게 하면, 장해물을 피하기 위하여 가상 카메라의 시점(201)의 위치의 이동되는 양이 너무 크게 되어 버리는 경우가 있다.
그래서, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 뿐만이 아니라, 게임의 장면의 차이에 의해서도, 카메라 콜리젼(300)의 크기(카메라 주변 영역(301)의 반경 R 및/또는 피사체 주변 영역(302)의 반경 r)를 변화시키는 것으로 해도 좋다. 게임의 장면의 차이에 의해 카메라 콜리젼(300)의 크기를 변화시키는 방법으로서는, 장면마다 카메라 콜리젼(300)의 기본 크기(반경 R, r의 표준치)를 미리 정해 두는 것을 적용해도, 게임의 장면을 판단하여 카메라 콜리젼(300)의 기본 크기(반경 R, r의 표준치)를 동적으로 변화시키는 것으로 해도 좋다.
여기서, 카메라 콜리젼(300)의 크기를 변화시키는 게임의 장면의 차이로서는, 예컨대, 낮의 신(scene)과 밤의 신의 차이를 적용할 수 있다. 현실의 세계에서는, 밝을 때에는 카메라맨이 장해물에 직전까지 접근하고 나서 장해물을 피하도록 움직일 수 있는 한편, 어두울 때에는 카메라맨이 장해물에 충돌해 버리는 것을 피하기 위하여 빨리 빨리 장해물을 회피하는 행동을 취하는 것이 일반적이기 때문이다. 이 경우, 게임의 상황에 따른 임장감이 있는 화상을 생성할 수 있게 된다. 낮의 신과 밤의 신의 차이로 카메라 콜리젼(300)의 크기를 변화시키는 것에서는, 동적으로 카메라 콜리젼(300)의 크기를 변화시키는 수법이 적합한 것이 된다.
또한, 카메라 콜리젼(300)의 크기를 변화시키는 게임의 장면의 차이로서는, 예컨대, 장해물이 될 수 있는 오브젝트가 많은 신/적은 신의 차이를 적용할 수 있다. 이 경우, 장해물이 될 수 있는 오브젝트가 많은 장면이 되어도, 카메라 콜리젼(300)에 장해물이 들어가지 않도록 하기 위한 가상 카메라의 시점(201)의 위치의 제어가 너무 빈번해지지 않고 끝나게 된다. 이와 같이 장해물이 될 수 있는 오브젝트가 많은 신/적은 신의 차이로 카메라 콜리젼(300)의 크기를 변화시키는 것에서는, 장해물이 될 수 있는 오브젝트가 많은지 적은지는 장소마다 미리 정해져 있는 경우가 많기 때문에, 장소마다 정해진 기본 크기의 카메라 콜리젼(300)을 사용하는 수법이 적합한 것이 된다.
상기의 실시 형태에서는, 카메라 콜리젼(300)은, 반경 R의 구로 이루어지는 카메라 주변 영역(301)과, 반경 r의 구로 이루어지는 피사체 주변 영역(302)과, 원뿔대 형상의 영역으로 이루어지는 카메라 피사체 간 영역(303)으로 구성되고, 카메라 주변 영역(301)의 반경 R, 피사체 주변 영역(302)의 반경 r 모두, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 변화시켜지는 것으로 하고 있었다.
이에 대하여, 가상 카메라의 시점(201)의 위치에서 보아 피사체(202)보다도 후측에 장해물이 존재해도 문제는 되지 않기 때문에, 피사체 주변 영역(302)은, 구형의 영역으로 하는 것이 아니라, 가상 카메라의 시점(201)이 가까운 부분만큼의 반구 형상의 영역으로 해도 좋다. 단, 카메라 피사체 간 영역(303)이 원뿔대 형상의 영역으로 설정된다면, 피사체 주변 영역(302) 그 자체가 없어도 좋다.
또한, 피사체 주변 영역(302)이 카메라 콜리젼(300)에 포함되지 않는 것으로 하고, 카메라 주변 영역(300)과, 피사체(202)의 위치를 정점으로 해서 카메라 주변 영역(300)과의 사이에 형성되는 원뿔 형상의 카메라 피사체 간 영역으로 카메라 콜리젼(300)이 구성되는 것으로 해도 좋다. 이 경우의 카메라 피사체 간 영역에 장해 물이 되는 오브젝트가 존재하는지의 여부는, 피사체(202)의 위치를 중심으로 해서 가상 카메라의 시점(201)의 위치와 장해물이 될 수 있는 오브젝트의 각 정점의 위치가 이루는 각도와, 피사체(202)의 위치와 장해물이 될 수 있는 오브젝트의 확장점의 위치가 이루는 거리에 의해 구할 수 있다.
또한, 카메라 콜리젼(300)에 카메라 주변 영역(301)과 피사체 주변 영역(302)이 포함되는 경우에는, 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r 중 어느 한쪽만이, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 변화시켜지는 것으로 해도 좋다.
또한, 카메라 피사체 간 영역(303)의 형상은, 카메라 주변 영역(301)과 피사체 주변 영역(302)의 형상이 구형이면 이상적으로는 원뿔대 형상(또는 카메라 콜리젼(300)에 피사체 주변 영역(302)이 포함되지 않는 경우에는 원뿔 형상)이 되지만, 제어부(103)의 처리 부하를 경감하기 위하여, 각뿔대 형상(또는 각뿔 형상)으로 해도 좋다. 이 각뿔대(또는 각뿔)의 저면은, 각의 수가 많은 다각형으로 되어 있을 수록 이상적인 형상에 가까워지지만, 제어부(103)의 처리 부하가 커지기 때문에, 제어부(103)의 처리 부하와의 밸런스에 의해 적당한 획수로 정하는 것으로 할 수 있다. 또한, 카메라 주변 영역(301) 및/또는 피사체 주변 영역(302)의 형상도, 다면체 형상으로 할 수 있다. 카메라 주변 영역(301) 및/또는 피사체 주변 영역(302)의 형상은, 가상 카메라의 시점(201)의 위치로부터 피사체(202)의 위치까지의 방향을 길게 한 타원구로 할 수도 있다.
또한, 카메라 주변 영역(301)은, 가상 카메라의 시점(201)의 위치를 중심으 로 한 영역으로 설정되는 것이 아니라, 가상 카메라의 시점(201)의 위치보다도 약간 피사체(202)에 가까운 위치를 중심으로 한 영역으로 설정되는 것으로 해도 좋다. 예컨대, 카메라 주변 영역(301)의 반경 R의 구로 구성하는 것으로 한 경우, 카메라 주변 영역(301)의 중심 위치를 가상 카메라의 시점(201)의 위치보다도 R보다도 적은 소정 거리만큼 피사체(202)에 접근시킨 위치로 설정하는 것으로 해도 좋다. 또한, 카메라 주변 영역(301) 및/또는 피사체 주변 영역(302)의 형상은, 높이 방향의 길이를 수평 방향의 길이보다도 짧게 한 다면체(정다면체가 아니다)로 해도 좋다. 이 경우, 카메라 피사체 간 영역(303)도, 타원각뿔(대) 형상이 된다.
또한, 가상 카메라의 시점(201)의 위치가 수평 방향의 높이를 유지하여 이동되는 경우에는, 카메라 콜리젼(300)이 평면 형상이 되는 것으로 해도 좋다(예컨대, 카메라 주변 영역(301) 및 피사체 주변 영역(302)을 원형으로 하고, 카메라 피사체 간 영역(303)을 사다리꼴로 한다). 여기서는, 가상 카메라의 시점(201)의 위치가 수평 방향의 높이를 유지하여 이동된다고 하는 제약이 있는 것이 조건으로 되지만, 이러한 제약하에서는 카메라 콜리젼(300)을 평면 형상으로 설정할 수 있어, 보다 적은 계산량으로 카메라 콜리젼(300)에 장해물이 존재하는지의 여부를 판단할 수 있게 된다.
상기의 실시 형태에서는, 카메라 콜리젼(300)은, 가상 카메라의 시점(201)의 위치를 중심으로 해서 설정되는 카메라 주변 영역(301)과, 피사체(202)의 위치를 중심으로 해서 설정되는 피사체 주변 영역(302)과, 그 사이의 카메라 피사체 간 영역(303)을 포함하고 있었다. 다시 말하면, 가상 카메라의 시점(201)의 위치뿐만이 아니라, 피사체(202)의 위치도 포함하는 것으로 하고 있었다. 그리고, 카메라 콜리젼(300)에 장해물이 되는 오브젝트가 존재하게 되면, 가상 카메라의 시점(201)의 위치를 피사체(202)의 방향으로 이동시키는 것으로 하고 있었다.
단, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재한다고 해서, 가상 카메라의 시점(201)의 위치를 지나치게 피사체(202)에 접근시키면, 피사체(202)가 클리핑 범위에 포함되지 않게 되어 버려, 어떻게 하더라도 표시 화면(122)에 있어서 피사체(202)가 표시되지 않게 되어 버린다. 또한, 피사체(202)가 클리핑 범위에 포함되어 있었다고 해도, 가상 카메라의 시점(201)의 위치에 너무 가까우면, 피사체(202)가 되는 플레이어 캐릭터의 일부만이 확대되어 표시되어 버리게 된다.
이러한 문제점을 회피하기 위하여, 예컨대, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재하는 경우에는, 이것을 피하기 위하여 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치에 접근시키는 것을 기본으로 하지만, 피사체(202)의 위치로부터 매우 가까운 위치에 장해물이 되는 오브젝트가 존재할 때에는, 이것과는 다른 방향, 예컨대, 극좌표의 상방향으로 가상 카메라의 시점(201)의 위치를 이동시키는 것으로 해도 좋다.
또는, 피사체(202)의 위치로부터 매우 가까운 위치에 장해물이 되는 오브젝트가 존재하는 경우에는, 카메라 콜리젼(300)의 범위 내에 장해물이 되는 오브젝트가 존재해도, 가상 카메라의 시점(201)의 위치를 피사체(202)의 방향으로 이동시키지 않는 것으로 해도 좋다. 또한, 카메라 콜리젼(300)은, 피사체(202)의 근방의 위 치로까지 설정하지만, 피사체(202)의 위치가 포함되지 않는 영역에 설정하는 것으로 해도 좋다.
이들의 경우, 피사체(202)의 위치로부터 매우 가까운 위치에 장해물이 되는 오브젝트가 존재하는 경우에는, 가령 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이에 장해물이 되는 오브젝트가 존재하면, 표시 화면(122)에 있어서 피사체(202)가 표시되지 않게 되어 버린다. 단, 이러한 경우라도, 플레이어가 입력부(161)의 LR 버튼을 조작함으로써 가상 카메라의 시점(201)의 위치를 이동시켜서, 피사체(202)가 표시되도록 할 수 있기 때문에, 특별히 문제점이 생기는 일은 없다.
상기의 실시 형태에서는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 관해서 기준 거리 Ds를 정하고, 이 기준 거리 Ds일 때의 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r을 표준치 Rs, rs로서 정해 둠으로써, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서 카메라 주변 영역(301)의 반경 R과 피사체 주변 영역(302)의 반경 r을 구하는 것으로 하고 있었다. 그러나, 이와 같이 기준 거리 Ds, 표준치 Rs, rs를 미리 정해 두는 것은 반드시 필요한 것은 아니며, 예컨대, 수학식 2와 같이 카메라 주변 영역(301)의 반경 R, 피사체 주변 영역(302)의 반경 r을 구하는 것으로 할 수도 있다.
R=a×Dc
r=b×Dd
여기서, a, b, c, d는 소정의 상수이며, c=d로 해도 좋다.
또한, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 작아짐에 따라서 카메라 주변 영역(301)의 반경 R(및 피사체 주변 영역(302)의 반경 r)이 작아지는 것을 조건으로 해서, 수학식 1, 수학식 2에 적합하지 않은 연산식도 채용할 수 있다. 또한, 카메라 주변 영역(301)(및 피사체 주변 영역(302))이 구 형상의 영역이 아닌 경우에는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D가 작아짐에 따라서 카메라 주변 영역(301)(및 피사체 주변 영역(302))의 크기가 작아지는 것을 조건으로 해서, 임의의 연산식에 따라서 카메라 주변 영역(301)(및 피사체 주변 영역(302))의 크기를 산출하는 것으로 할 수 있다.
상기의 실시 형태에서는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 근거리 한계는 정하고 있지 않았다. 단, 가상 카메라의 시점(201)의 위치를 피사체(202)의 위치에 너무 접근시키면, 클리핑 범위에 피사체(202)가 포함되어 있었다고 해도, 표시 화면(122)으로서 표시되는 게임의 화상에 있어서의 피사체(202)의 크기가 너무 커지거나, 또한, 게임의 화상에 있어서 피사체(202) 이외의 오브젝트가 비치지 않다거나 하는 문제점이 생길 수 있다. 이러한 문제점을 피하기 위하여, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 일정한 근거리 한계를 정하는 것으로 해도 좋다.
도 8의 (a) 및 도 8의 (b)는, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 근거리 한계를 마련한 경우에 있어서의 카메라 콜리젼의 예를 도시하는 도면이다. 여기서, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 표준 거리를 D1, 근거리 한계가 되는 거리를 D2로 한다. 또한, 가상 카메라의 시점(201S)의 위치와 피사체(202)의 위치 사이의 거리 D가 표준거리 D1일 때의 카메라 주변 영역(301S)의 반경 R을 R1으로 한다.
도 8의 (a)의 예에서는, 가상 카메라의 시점(201N)의 위치와 피사체(202)의 위치 사이의 거리 D가 근거리 한계가 되는 거리 D2일 때에 있어서의 카메라 주변 영역(301N)의 반경 R을 R2(>O)로 하고 있다. 이러한 경우에 있어서의 카메라 주변 영역(301)의 반경은, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서, 수학식 3에 따라 산출하는 것으로 할 수 있다.
R=R2+(R1-R2)×(D-D2)/(D1-D2)
도 8의 (b)의 예에서는, 가상 카메라의 시점(201N)의 위치와 피사체(202)의 위치 사이의 거리 D가 근거리 한계가 되는 거리 D2일 때에 있어서의 카메라 주변 영역(301N)의 반경 R을 0으로 하고 있다. 이러한 경우에 있어서의 카메라 주변 영역(301)의 반경은, 가상 카메라의 시점(201)의 위치와 피사체(202)의 위치 사이의 거리 D에 따라서, 수학식 4에 따라 산출하는 것으로 할 수 있다.
R=R1×(D-D2)/(D1-D2)
상기의 실시 형태에서는, 본 발명에 따른 화상 생성의 수법을 비디오 게임에서의 화상을 생성하는 경우에 적용하고, 각 플레이어가 게임을 진행시키기 위하여 사용하는 단말 장치로서 게임 전용기인 비디오 게임 장치(100)를 적용하고 있었다. 이에 대하여, 본 발명은, 3차원 컴퓨터 그래픽에 의한 화상 생성이면, 비디오 게임 이외에서 화상을 생성하는 경우에도 적용할 수 있다.
또한, 본 발명에 따른 수법으로 화상 생성의 처리를 행하는 장치는, 비디오 게임 장치(100)와 동일한 구성 요소를 구비하고, 화상을 묘화하는 기능을 갖는 것이면, 범용의 퍼스널 컴퓨터 등을 적용해도 좋다. 3차원 컴퓨터 그래픽스를 처리할 수 있는 능력이 있으면, 표시 장치(121) 및 사운드 출력 장치(125)를 장치 본체(101)와 동일한 케이스 내에 수납한 구성을 갖는 휴대 게임기(애플리케이션의 실행 기능을 갖는 휴대 전화기를 포함한다)를 적용하는 것으로 해도 좋다.
기록 매체(131)로서는, DVD-ROM이나 CD-ROM 대신에 반도체 메모리 카드를 적용할 수 있다. 이 메모리 카드를 삽입하기 위한 카드 슬롯을 DVD/CD-ROM 드라이브(113) 대신에 설치할 수 있다. 범용의 퍼스널 컴퓨터의 경우에는, 본 발명에 따른 프로그램 및 데이터를 기록 매체(131)에 저장하여 제공하는 것이 아니라, HDD(107)에 미리 저장하여 제공해도 좋다. 본 발명에 따른 프로그램 및 데이터를 저장하여 제공하기 위한 기록 매체는, 하드웨어의 물리적 형태 및 유통 형태에 따라서 임의의 것을 적용할 수 있다.
상기의 실시 형태에서는, 비디오 게임 장치(100)의 프로그램 및 데이터는, 기록 매체(131)에 저장되어 배포되는 것으로 하고 있었다. 이에 대하여, 이들 프로그램 및 데이터를 네트워크(151) 상에 존재하는 서버 장치가 갖는 고정 디스크 장치에 저장해 두고, 장치 본체(101)에 네트워크(151)를 통해 배송하는 것으로 해도 좋다. 비디오 게임 장치(100)에 있어서, 통신 인터페이스(115)가 서버 장치로부터 수신한 프로그램 및 데이터는, HDD(107)에 보존하고, 실행 시에 RAM(105)에 로드할 수 있다.
도 1은 본 발명의 실시 형태에 적용되는 비디오 게임 장치의 구성을 도시하는 블록도이다.
도 2는 본 발명의 실시 형태에 따른 비디오 게임에서 설정되는 카메라 콜리젼의 예를 도시하는 도면이다.
도 3은 본 발명의 실시 형태에 따른 비디오 게임에 있어서, 1 프레임 기간마다 행해지는 화상 생성 처리를 도시하는 플로우차트이다.
도 4는 도 3의 가상 카메라 제어 처리를 상세하게 도시하는 플로우차트이다.
도 5는 본 발명의 실시 형태에 따른 비디오 게임에 있어서의 카메라 콜리젼의 설정과 가상 카메라의 시점 위치의 이동의 구체예를 모식적으로 도시하는 도면이다.
도 6은 종래예에 따른 비디오 게임에 있어서의 가상 카메라의 시점 위치의 이동의 대비예를 모식적으로 도시하는 도면이다.
도 7은 카메라 콜리젼의 변형예를 도시하는 도면이다.
도 8은 가상 카메라의 시점의 위치와 피사체의 위치 사이의 거리(D)에 근거리 한계를 마련한 경우의 카메라 콜리젼의 예를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 비디오 게임 장치 101: 비디오 게임 본체
103: 제어부 105: RAM
107: HDD 109: 사운드 처리부
111: 그래픽 처리부 112: 프레임 메모리
113: DVD/CD-ROM 드라이브 115: 통신 인터페이스
117: 인터페이스부 119: 내부 버스
121: 표시 장치 122: 표시 화면
125: 사운드 출력 장치 131: 기록 매체
151: 네트워크 161: 입력부
162: 메모리 카드

Claims (9)

  1. 가상 3차원 공간에 존재하는 정해진 피사체에 가상 카메라의 시축(視軸)을 향하게 하여 투시 변환한 화상을 생성하는 화상 생성 장치로서,
    상기 가상 3차원 공간에서 상기 정해진 피사체의 위치를 이동시키는 피사체 제어 수단과,
    상기 가상 카메라의 시축을 상기 정해진 피사체에 향하게 하면서, 상기 가상 3차원 공간에서 상기 가상 카메라의 시점의 위치를, 상기 정해진 피사체의 위치의 이동에 추종하여 이동시키는 가상 카메라 제어 수단과,
    상기 가상 카메라 제어 수단에 의해 제어되는 가상 카메라에 따라서 상기 정해진 피사체를 포함하는 상기 가상 3차원 공간을 가상 스크린 상에 투시 변환하여, 표시 장치에 표시되는 2차원 화상을 생성하는 투시 변환 수단과,
    적어도 상기 가상 카메라의 시점의 위치를 중심으로 한 구(球)에 포함되는 영역에 정해지는 카메라 주변 영역과, 상기 카메라 주변 영역으로부터 연속해서 적어도 상기 정해진 피사체의 근방의 위치까지 이어지는 영역을, 장해물 회피역으로 설정하는 장해물 회피역 설정 수단과,
    상기 장해물 회피역 설정 수단에 의해 설정된 장해물 회피역에 장해물이 존재하는지의 여부를 판정하는 장해물 판정 수단
    을 구비하고,
    상기 가상 카메라 제어 수단은, 상기 장해물 판정 수단에 의해 상기 장해물 회피역에 상기 장해물이 존재한다고 판정된 경우에, 상기 장해물 회피역에 상기 장해물이 들어가지 않는 위치까지 상기 가상 카메라의 시점의 위치를 이동시키는 장해물 회피 제어 수단을 포함하며,
    상기 장해물 회피역 설정 수단은, 상기 가상 3차원 공간에서의 상기 가상 카메라의 시점의 위치와 상기 정해진 피사체의 위치 사이의 거리에 따라서, 상기 카메라 주변 영역으로서 설정되는 구의 반경을 변화시키는 것에 의해 상기 장해물 회피역의 크기를 변화시키는 장해물 회피역 변화 수단을 포함하는 것을 특징으로 하는 화상 생성 장치.
  2. 제1항에 있어서, 상기 장해물 회피역 설정 수단은, 상기 카메라 주변 영역과, 상기 정해진 피사체의 위치를 기준으로 해서 상기 피사체의 위치 주위에 정해지는 피사체 주변 영역과, 상기 카메라 주변 영역과 상기 피사체 주변 영역 사이의 영역인 카메라 피사체 간 영역을, 상기 장해물 회피역으로 설정하는 것을 특징으로 하는 화상 생성 장치.
  3. 제1항에 있어서, 상기 장해물 회피역 설정 수단은, 상기 카메라 주변 영역과, 상기 카메라 주변 영역과 상기 정해진 피사체 사이의 영역인 카메라 피사체 간 영역을, 상기 장해물 회피역으로 설정하는 것을 특징으로 하는 화상 생성 장치.
  4. 삭제
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 가상 카메라 제어 수단은, 상기 가상 3차원 공간에서의 높이 방향의 위치를 유지하면서 상기 가상 카메라의 시점의 위치를 이동시키고,
    상기 장해물 회피역 설정 수단은, 상기 가상 카메라의 시점과 상기 정해진 피사체를 연결하는 직선과, 상기 직선과 직교하는 상기 가상 3차원 공간에서의 높이 방향에 평행한 직선이 이루는 평면 내에서 상기 장해물 회피역을 설정하는 것을 특징으로 하는 화상 생성 장치.
  6. 제1항에 있어서, 상기 가상 3차원 공간은 비디오 게임의 게임 공간이고,
    상기 장해물 회피역 변화 수단은, 또한 상기 비디오 게임의 진행 상황에 따라서, 상기 장해물 회피역의 크기를 변화시키는 것을 특징으로 하는 화상 생성 장치.
  7. 제6항에 있어서, 상기 장해물 회피역 변화 수단은, 상기 장해물이 될 수 있 는 오브젝트가 다수 존재하는 장면일수록, 상기 장해물 회피역의 크기를 작게 하도록 상기 장해물 회피역의 크기를 변화시키는 것을 특징으로 하는 화상 생성 장치.
  8. 가상 3차원 공간에 존재하는 정해진 피사체에 가상 카메라의 시축을 향하게 하여 투시 변환한 화상을 생성하는 화상 생성 방법으로서,
    상기 가상 3차원 공간에서 상기 정해진 피사체의 위치를 이동시키고, 상기 피사체의 위치를 기억 장치에 기억시키는 단계와,
    상기 가상 카메라의 시축을 상기 정해진 피사체에 향하게 하면서, 상기 가상 3차원 공간에서 상기 가상 카메라의 시점의 위치를 상기 정해진 피사체의 위치의 이동에 추종하여 이동시키고, 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와,
    적어도 상기 가상 카메라의 시점의 위치를 중심으로 한 구(球)에 포함되는 영역에 정해지는 카메라 주변 영역과, 상기 카메라 주변 영역으로부터 연속해서 적어도 상기 정해진 피사체의 근방의 위치까지 이어지는 영역을, 상기 가상 카메라의 시점의 위치와 상기 정해진 피사체의 위치 사이의 거리에 따라서, 상기 카메라 주변 영역으로서 설정되는 구의 반경을 변화시키는 것에 의해 크기가 변화하는 장해물 회피역으로 설정하고, 상기 장해물 회피역에 관한 정보를 상기 기억 장치에 기억시키는 단계와,
    상기 기억 장치에 정보가 기억된 장해물 회피역에 장해물이 존재하는지의 여부를, 상기 장해물의 위치에 대하여 상기 기억 장치에 기억된 정보에 따라서 판정하는 단계와,
    상기 장해물 회피역에 상기 장해물이 존재한다고 판정된 경우에, 상기 장해물 회피역에 상기 장해물이 들어가지 않는 위치까지 상기 가상 카메라의 시점의 위치를 재차 이동시키고, 상기 재차 이동 후의 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와,
    상기 기억 장치에 정보가 기억된 가상 카메라의 시축 및 시점의 위치에 관한 정보에 따라서 상기 정해진 피사체를 포함하는 상기 가상 3차원 공간을 가상 스크린 상에 투시 변환하고, 표시 장치에 표시되는 2차원 화상을 생성하여, 상기 기억 장치에 기록하는 단계
    를 포함하는 것을 특징으로 하는 화상 생성 방법.
  9. 가상 3차원 공간에 존재하는 정해진 피사체에 가상 카메라의 시축을 향하게 하여 투시 변환한 화상을 생성하기 위한 처리를 컴퓨터 장치에 실행시키는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    상기 가상 3차원 공간에서 상기 정해진 피사체의 위치를 이동시키고, 상기 피사체의 위치를 상기 컴퓨터 장치가 구비하는 기억 장치에 기억시키는 단계와,
    상기 가상 카메라의 시축을 상기 정해진 피사체에 향하게 하면서, 상기 가상 3차원 공간에서 상기 가상 카메라의 시점의 위치를 상기 정해진 피사체의 위치의 이동에 추종하여 이동시키고, 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와,
    적어도 상기 가상 카메라의 시점의 위치를 중심으로 한 구(球)에 포함되는 영역에 정해지는 카메라 주변 영역과, 상기 카메라 주변 영역으로부터 연속해서 적어도 상기 정해진 피사체의 근방의 위치까지 이어지는 영역을, 상기 가상 카메라의 시점의 위치와 상기 정해진 피사체의 위치 사이의 거리에 따라서 상기 카메라 주변 영역으로서 설정되는 구의 반경을 변화시키는 것에 의해 크기가 변화하는 장해물 회피역으로 설정하고, 상기 장해물 회피역에 관한 정보를 상기 기억 장치에 기억시키는 단계와,
    상기 기억 장치에 정보가 기억된 장해물 회피역에 장해물이 존재하는지의 여부를, 상기 장해물의 위치에 대하여 상기 기억 장치에 기억된 정보에 따라서 판정하는 단계와,
    상기 장해물 회피역에 상기 장해물이 존재한다고 판정된 경우에, 상기 장해물 회피역에 상기 장해물이 들어가지 않는 위치까지 상기 가상 카메라의 시점의 위치를 재차 이동시키고, 상기 재차 이동 후의 상기 가상 카메라의 시축 및 시점의 위치에 관한 정보를 상기 기억 장치에 기억시키는 단계와,
    상기 기억 장치에 정보가 기억된 가상 카메라의 시축 및 시점의 위치에 관한 정보에 따라서 상기 정해진 피사체를 포함하는 상기 가상 3차원 공간을 가상 스크린 상에 투시 변환하고, 표시 장치에 표시되는 2차원 화상을 생성하여, 상기 기억 장치에 기록하는 단계
    를 상기 컴퓨터 장치에 실행시키는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020080068552A 2007-08-30 2008-07-15 화상 생성 장치 및 방법, 및 기록 매체 KR101399204B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-00224908 2007-08-30
JP2007224908A JP4489800B2 (ja) 2007-08-30 2007-08-30 画像生成装置及び方法、並びにプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
KR20090023072A KR20090023072A (ko) 2009-03-04
KR101399204B1 true KR101399204B1 (ko) 2014-05-26

Family

ID=40043034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080068552A KR101399204B1 (ko) 2007-08-30 2008-07-15 화상 생성 장치 및 방법, 및 기록 매체

Country Status (4)

Country Link
US (1) US8259112B2 (ko)
EP (1) EP2030661B1 (ko)
JP (1) JP4489800B2 (ko)
KR (1) KR101399204B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9327191B2 (en) * 2006-05-08 2016-05-03 Nintendo Co., Ltd. Method and apparatus for enhanced virtual camera control within 3D video games or other computer graphics presentations providing intelligent automatic 3D-assist for third person viewpoints
JP5539133B2 (ja) * 2010-09-15 2014-07-02 株式会社カプコン ゲームプログラム、及びゲーム装置
JP6085411B2 (ja) * 2011-06-02 2017-02-22 任天堂株式会社 画像処理装置、画像処理方法、および画像処理装置の制御プログラム
JP2014235596A (ja) 2013-06-03 2014-12-15 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
US9332285B1 (en) 2014-05-28 2016-05-03 Lucasfilm Entertainment Company Ltd. Switching modes of a media content item
JP6385725B2 (ja) * 2014-06-06 2018-09-05 任天堂株式会社 情報処理システム及び情報処理プログラム
KR101835434B1 (ko) * 2015-07-08 2018-03-09 고려대학교 산학협력단 투영 이미지 생성 방법 및 그 장치, 이미지 픽셀과 깊이값간의 매핑 방법
JP6649742B2 (ja) * 2015-10-27 2020-02-19 株式会社コーエーテクモゲームス 情報処理装置、動作制御方法及び動作制御プログラム
US10582184B2 (en) * 2016-12-04 2020-03-03 Juyang Weng Instantaneous 180-degree 3D recording and playback systems
JP6681352B2 (ja) * 2017-01-06 2020-04-15 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、情報処理方法、ゲームシステム、ゲームプログラム、ゲーム装置、及びゲーム方法
BR112019019060B1 (pt) * 2017-03-17 2021-01-19 Unity IPR ApS método e sistema para colisão de câmera automatizada e preservação de composição
KR20180134230A (ko) * 2017-06-08 2018-12-18 삼성전자주식회사 청소 로봇 및 그 제어 방법
JP6588942B2 (ja) * 2017-06-09 2019-10-09 株式会社カプコン ゲームプログラム、ゲーム装置およびサーバ装置
US10751621B2 (en) * 2017-09-01 2020-08-25 Square Enix Limited Method and system for rendering video game images
US10899006B2 (en) * 2018-05-01 2021-01-26 X Development Llc Robot navigation using 2D and 3D path planning
KR102585051B1 (ko) 2018-05-08 2023-10-04 그리 가부시키가이샤 액터의 움직임에 기초하여 생성되는 캐릭터 오브젝트의 애니메이션을 포함하는 동화상을 배신하는 동화상 배신 시스템, 동화상 배신 방법 및 동화상 배신 프로그램
CN109889914B (zh) * 2019-03-08 2021-04-02 腾讯科技(深圳)有限公司 视频画面推送方法、装置、计算机设备及存储介质
JP6829301B2 (ja) * 2019-12-06 2021-02-10 株式会社コーエーテクモゲームス 情報処理装置、動作制御方法及び動作制御プログラム
CN111246095B (zh) * 2020-01-17 2021-04-27 腾讯科技(深圳)有限公司 控制镜头运动的方法、装置、设备及存储介质
JP7001719B2 (ja) 2020-01-29 2022-02-04 グリー株式会社 コンピュータプログラム、サーバ装置、端末装置、及び方法
JP7233399B2 (ja) * 2020-06-23 2023-03-06 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
CN112807698B (zh) * 2020-12-31 2023-05-30 上海米哈游天命科技有限公司 拍摄位置的确定方法、装置、电子设备及存储介质
JP2024509524A (ja) * 2021-03-10 2024-03-04 クアルコム,インコーポレイテッド ストリーミングされるメディアデータによって定義される仮想インタラクティブシーンにおける仮想カメラのためのオブジェクト衝突データ
KR20230155444A (ko) * 2021-03-10 2023-11-10 퀄컴 인코포레이티드 스트리밍된 미디어 데이터에 의해 정의된 가상 인터랙티브 장면에서의 가상 카메라에 대한 카메라 제어 데이터
US20220295034A1 (en) 2021-03-10 2022-09-15 Qualcomm Incorporated Camera control data for virtual camera in virtual interactive scene defined by streamed media data
US11623145B1 (en) * 2021-12-13 2023-04-11 Electronic Arts Inc. Anti-peek system for video games

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10255072A (ja) * 1997-03-10 1998-09-25 Atsushi Matsushita 感性語を入力することによる自動映像創作方法及びシステム
JP2002360920A (ja) 2001-06-05 2002-12-17 Atlus Co Ltd ゲーム画像制御装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0716170B2 (ja) 1989-10-27 1995-02-22 三菱電機株式会社 光送信装置
CN1114891C (zh) * 1995-05-19 2003-07-16 世雅企业股份有限公司 图象处理装置、方法及设备
JP3141737B2 (ja) * 1995-08-10 2001-03-05 株式会社セガ 仮想画像生成装置及びその方法
JP2006334418A (ja) * 1997-03-07 2006-12-14 Sega Corp 魚釣り遊戯装置
JPH11244532A (ja) * 1998-03-06 1999-09-14 Namco Ltd 画像生成装置及び情報記憶媒体
JP4114824B2 (ja) * 1998-04-24 2008-07-09 株式会社バンダイナムコゲームス 画像生成装置及び情報記憶媒体
JP3645196B2 (ja) * 2001-02-09 2005-05-11 松下電器産業株式会社 画像合成装置
US6995788B2 (en) * 2001-10-10 2006-02-07 Sony Computer Entertainment America Inc. System and method for camera navigation
JP3523228B2 (ja) * 2001-11-07 2004-04-26 株式会社スクウェア・エニックス ビデオゲーム装置、ビデオゲームにおけるキャラクタの表示方法、プログラム及び記録媒体
JP3843242B2 (ja) * 2002-02-28 2006-11-08 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、およびゲーム装置
US20040219978A1 (en) * 2002-10-09 2004-11-04 Namco Ltd. Image generation method, program, and information storage medium
JP4176455B2 (ja) * 2002-11-28 2008-11-05 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成装置
JP3696216B2 (ja) * 2003-03-05 2005-09-14 株式会社スクウェア・エニックス 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体
US20040219980A1 (en) * 2003-04-30 2004-11-04 Nintendo Co., Ltd. Method and apparatus for dynamically controlling camera parameters based on game play events
JP2004341572A (ja) * 2003-05-12 2004-12-02 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体
JP2006006359A (ja) 2004-06-22 2006-01-12 Fuji Photo Film Co Ltd 画像生成装置、画像生成装置方法、およびそのプログラム
JP3843278B2 (ja) 2004-08-26 2006-11-08 株式会社スクウェア・エニックス ゲーム装置、ゲーム進行方法、並びにプログラム及び記録媒体
JP4540492B2 (ja) 2005-01-28 2010-09-08 Hoya株式会社 色変換マトリクス算出方法および画像信号処理装置
JP4180065B2 (ja) 2005-05-13 2008-11-12 株式会社スクウェア・エニックス 画像生成方法、画像生成装置、および画像生成プログラム
JP2007224908A (ja) 2006-02-20 2007-09-06 Robert Bosch Gmbh 内燃機関の運転方法
JP4177381B2 (ja) 2006-03-01 2008-11-05 株式会社スクウェア・エニックス 画像生成方法、画像生成装置、および画像生成プログラム
US9327191B2 (en) * 2006-05-08 2016-05-03 Nintendo Co., Ltd. Method and apparatus for enhanced virtual camera control within 3D video games or other computer graphics presentations providing intelligent automatic 3D-assist for third person viewpoints
US8277316B2 (en) * 2006-09-14 2012-10-02 Nintendo Co., Ltd. Method and apparatus for using a common pointing input to control 3D viewpoint and object targeting

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10255072A (ja) * 1997-03-10 1998-09-25 Atsushi Matsushita 感性語を入力することによる自動映像創作方法及びシステム
JP2002360920A (ja) 2001-06-05 2002-12-17 Atlus Co Ltd ゲーム画像制御装置

Also Published As

Publication number Publication date
US20090058856A1 (en) 2009-03-05
EP2030661B1 (en) 2011-11-30
JP4489800B2 (ja) 2010-06-23
EP2030661A3 (en) 2010-03-24
EP2030661A2 (en) 2009-03-04
KR20090023072A (ko) 2009-03-04
US8259112B2 (en) 2012-09-04
JP2009059111A (ja) 2009-03-19

Similar Documents

Publication Publication Date Title
KR101399204B1 (ko) 화상 생성 장치 및 방법, 및 기록 매체
JP4177381B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
JP5614211B2 (ja) 画像処理プログラム及びコンピュータ読み取り可能な記録媒体
JP4180065B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
KR100917313B1 (ko) 화상 생성 방법, 정보 기억 매체 및 화상 생성 장치
JP3696216B2 (ja) 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体
JP4242318B2 (ja) 3次元画像生成装置および3次元画像生成プログラム
US6377264B1 (en) Game screen display control method and character movement control method
EP2829307A2 (en) Image processing program, image processing device and image processing method
JP7361502B2 (ja) 立体視効果を調節するためのシステムおよび方法
JP5598703B2 (ja) プログラム、ゲーム装置及びその制御方法
JP5757790B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、及び、情報処理方法
JP3880008B2 (ja) キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置
EP1125608A2 (en) Entertainment apparatus, storage medium and object display method
US20200306636A1 (en) Game device, control method of game device, and storage medium that can be read by computer
JP2024509064A (ja) 位置マークの表示方法及び装置、機器並びにコンピュータプログラム
JP2019000138A (ja) ゲームプログラム、ゲーム装置およびサーバ装置
US10068362B2 (en) Data processing apparatus and method of detecting position information for displaying virtual space
JP5677050B2 (ja) ゲームプログラム及びゲーム装置
JP2007229506A (ja) ゲーム画面の表示制御方法、キャラクタの移動制御方法およびゲーム機並びにプログラムを記録した記録媒体
JP2022187297A (ja) ゲームプログラム、情報処理装置、カメラ制御方法
JP2007021233A (ja) キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置
JP2006116330A (ja) ゲーム画面の表示制御方法、キャラクタの移動制御方法およびゲーム機並びにプログラムを記録した記録媒体
CN117298576A (zh) 游戏画面控制方法、装置和电子设备
JP2004267553A (ja) ビデオゲームにおけるイベント制御方法、このための装置、ゲーム機、コンピュータプログラムおよび記憶媒体

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 6