(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025027572
(43)【公開日】2025-02-28
(54)【発明の名称】ゲーム開発支援システム、ゲーム開発支援方法、情報処理装置および情報処理プログラム
(51)【国際特許分類】
A63F 13/60 20140101AFI20250220BHJP
A63F 13/49 20140101ALI20250220BHJP
A63F 13/53 20140101ALI20250220BHJP
A63F 13/213 20140101ALI20250220BHJP
【FI】
A63F13/60
A63F13/49
A63F13/53
A63F13/213
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023132435
(22)【出願日】2023-08-16
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100090181
【弁理士】
【氏名又は名称】山田 義人
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(74)【代理人】
【識別番号】100168217
【弁理士】
【氏名又は名称】大村 和史
(72)【発明者】
【氏名】前川 泰利
(72)【発明者】
【氏名】井手 絢香
(57)【要約】
【課題】開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【解決手段】ゲーム開発支援システム(10)は、開発中のゲームプログラムを実行するゲーム装置(12)と、情報処理装置(14)を含む。ゲーム装置のコンピュータ(20)は、ゲーム処理実行中においてログを出力するとともに、少なくとも所定の期間において、ゲーム画像が出力されているタイミングを識別可能な識別画像を含む当該ゲーム画像を生成する。情報処理装置は、ゲーム装置から、ログと、ゲーム画像をキャプチャした動画データを取得し、動画データに対して画像解析を行い、識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定し、特定されたタイミングとログに含まれるタイミング情報に基づいて、当該ログと動画が同期して表示される閲覧画像を生成させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
開発中のゲームプログラムを実行するゲーム装置と、情報処理装置を少なくとも含み、
前記開発中のゲームプログラムは、前記ゲーム装置のコンピュータに、
ゲーム処理実行中においてログの出力を行わせるとともに、
ゲーム処理実行中の少なくとも所定の期間において、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれるよう当該ゲーム画像を生成させ、
前記情報処理装置は、
前記ゲーム装置から前記ログを取得し、
前記ゲーム画像をキャプチャした動画データを取得し、
前記動画データに対して画像解析を行い、前記識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定し、
特定されたタイミングと前記ログに含まれるタイミング情報に基づいて、前記ログと動画が少なくとも含まれ、当該ログと前記動画が同期して表示される閲覧画像を生成させる、ゲーム開発支援システム。
【請求項2】
前記識別画像は、前記ゲーム画像内の所定の位置に配置される、当該ゲーム画像が出力されているタイミングを示す情報の画像である、請求項1記載のゲーム開発支援システム。
【請求項3】
前記識別画像は、ゲーム開始時、またはゲーム開始後の所定タイミングからのフレーム数を示す文字情報の画像である、請求項2記載のゲーム開発支援システム。
【請求項4】
前記識別画像は、ゲーム開始後の所定タイミングに、前記ゲーム画像の所定位置に配置される情報の画像であり、
前記ゲーム装置のコンピュータに、当該情報の画像が前記ゲーム画像の前記所定位置に配置される最初のタイミングを示す情報をさらに出力させる、請求項1記載のゲーム開発支援システム。
【請求項5】
前記識別画像は、所定の色のパターンの画像である、請求項4記載のゲーム開発支援システム。
【請求項6】
前記ゲーム装置は、前記ゲーム画像をキャプチャして前記動画データを生成し、
前記情報処理装置は、前記ゲーム装置から前記動画データを受信する、請求項1から5のいずれか記載のゲーム開発支援システム。
【請求項7】
前記情報処理装置は、前記ゲーム画像をキャプチャして前記動画データを生成する、請求項1から5のいずれか記載のゲーム開発支援システム。
【請求項8】
前記情報処理装置は、表示装置に表示される前記ゲーム画像を撮影装置によって撮影した動画データを取得する、請求項1から3のいずれか記載のゲーム開発支援システム。
【請求項9】
前記開発中のゲームプログラムはさらに、前記ゲーム装置のコンピュータに、
ゲーム実行中に所定のエラーが発生したことを検出させ、
前記エラーが検出された場合に、前記識別画像を含む前記ゲーム画像を生成させ、
前記エラーの発生に応じて前記識別画像を含む前記ゲーム画像が生成されたタイミングを少なくとも含む所定期間の動画データを前記情報処理装置へ送信させる、請求項1から5のいずれか記載のゲーム開発支援システム。
【請求項10】
開発中のゲームプログラムを実行するゲーム装置と、情報処理プログラムを実行する情報処理装置を少なくとも含み、
前記開発中のゲームプログラムは、前記ゲーム装置のコンピュータに、
ゲーム処理実行中においてログの出力を行わせるとともに、
ゲーム処理実行中の少なくとも所定の期間において、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれるよう当該ゲーム画像を生成させ、
前記情報処理プログラムは、前記情報処理装置のコンピュータに、
前記ゲーム装置から前記ログを取得させ、
前記ゲーム画像をキャプチャした動画データを取得させ、
前記動画データに対して画像解析を行い、前記識別画像が含まれる動画内のフレームを特定させ、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定させ、
特定させたタイミングと前記ログに含まれるタイミング情報に基づいて、前記ログと動画が少なくとも含まれ、当該ログと前記動画が同期して表示される閲覧画像を生成させる、ゲーム開発支援方法。
【請求項11】
前記識別画像は、前記ゲーム画像内の所定の位置に配置される、当該ゲーム画像が出力されているタイミングを示す情報である、請求項10記載のゲーム開発支援方法。
【請求項12】
前記識別画像は、ゲーム開始時、またはゲーム開始後の所定タイミングからのフレーム数を示す文字情報である、請求項11記載のゲーム開発支援方法。
【請求項13】
前記識別画像は、ゲーム開始後の所定タイミングに、前記ゲーム画像の所定位置に配置される情報であり、前記ログは当該情報が前記ゲーム画像に含まれるタイミングを示す情報を含む、請求項10記載のゲーム開発支援方法。
【請求項14】
前記識別画像は、所定の色のパターンである、請求項13記載のゲーム開発支援方法。
【請求項15】
前記ゲーム装置に、前記ゲーム画像をキャプチャして前記動画データを生成させ、
前記情報処理装置に、前記ゲーム装置から前記動画データを受信させる、請求項1から5のいずれかに記載のゲーム開発支援方法。
【請求項16】
前記情報処理装置に、前記ゲーム画像をキャプチャして前記動画データを生成させる、請求項10から14のいずれかに記載のゲーム開発支援方法。
【請求項17】
前記情報処理装置に、表示装置に表示される前記ゲーム画像を撮影装置によって撮影した動画データを取得させる、請求項10から12のいずれかに記載のゲーム開発支援方法。
【請求項18】
前記開発中のゲームプログラムはさらに、前記ゲーム装置のコンピュータに、
ゲーム実行中に所定のエラーが発生したことを検出させ、
前記エラーが検出された場合に、前記識別画像を含む前記ゲーム画像を生成させ、
前記エラーの発生に応じて前記識別画像を含む前記ゲーム画像が生成されたタイミングを少なくとも含む所定期間の動画データを前記情報処理装置へ送信させる、請求項10から14のいずれかに記載のゲーム開発支援方法。
【請求項19】
開発中のゲームプログラムを実行中のゲーム装置からログを取得し、
ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれる当該ゲーム画像をキャプチャした動画データを取得し、
前記動画データに対して画像解析を行い、前記識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定し、
特定されたタイミングと前記ログに含まれるタイミング情報に基づいて、前記ログと動画が少なくとも含まれ、当該ログと前記動画が同期して表示される閲覧画像を生成させる、情報処理装置。
【請求項20】
情報処理装置で実行される情報処理プログラムであって、
前記情報処理装置のプロセッサに、
開発中のゲームプログラムを実行中のゲーム装置からログを取得させ、
ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれる当該ゲーム画像をキャプチャした動画データを取得させ、
前記動画データに対して画像解析を行い、前記識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定させ、
特定させたタイミングと前記ログに含まれるタイミング情報に基づいて、前記ログと動画が少なくとも含まれ、当該ログと前記動画が同期して表示される閲覧画像を生成させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲーム開発支援システム、ゲーム開発支援方法、情報処理装置および情報処理プログラムに関し、特にたとえば、開発中のゲームプログラムの実行中に表示されるゲーム画像をキャプチャした動画と、開発中のゲームプログラムの実行中に生成および出力されるログを閲覧する、ゲーム開発支援システム、ゲーム開発支援方法、情報処理装置および情報処理プログラムに関する。
【背景技術】
【0002】
この種の情報処理装置の一例が特許文献1に開示されている。この特許文献1に開示されるゲーム開発システムでは、ゲーム装置で開発中のゲームプログラムを実行し、ゲーム処理に用いられるログを生成して情報処理装置に送信する。情報処理装置は、ゲーム装置から取得したログを表示し、ゲーム開発者は、ゲーム処理中に生成されるログを視認する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲームプログラムの開発中においては、ゲーム画面の動画をキャプチャすることもよく行われるが、動画ではゲーム画面が表示されたタイミングが不明であるため、背景技術のようなゲーム開発システムに含まれる情報処理装置を用いてログと動画のタイミングを合わせて閲覧するには手間が掛っていた。
【0005】
それゆえに、この発明の主たる目的は、新規な、ゲーム開発支援システム、ゲーム開発支援方法、情報処理装置および情報処理プログラムを提供することである。
【0006】
また、この発明の他の目的は、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる、ゲーム開発支援システム、ゲーム開発支援方法、情報処理装置および情報処理プログラムを提供することである。
【課題を解決するための手段】
【0007】
(構成1)
構成1は、開発中のゲームプログラムを実行するゲーム装置と、情報処理装置を少なくとも含む、ゲーム開発支援システムである。開発中のゲームプログラムは、ゲーム装置のコンピュータに、ゲーム処理実行中においてログの出力を行わせるとともに、ゲーム処理実行中の少なくとも所定の期間において、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれるよう当該ゲーム画像を生成させる。情報処理装置は、ゲーム装置からログを取得し、ゲーム画像をキャプチャした動画データを取得し、動画データに対して画像解析を行い、識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定し、特定されたタイミングとログに含まれるタイミング情報に基づいて、ログと動画が少なくとも含まれ、当該ログと動画が同期して表示される閲覧画像を生成させる。
【0008】
構成1によれば、動画がいつキャプチャされたものか特定でき、ログと同期させて閲覧することができるので、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【0009】
(構成2)
構成2は、構成1において、識別画像は、ゲーム画像内の所定の位置に配置される、当該ゲーム画像が出力されているタイミングを示す情報の画像である。
【0010】
構成2によれば、識別画像は、ゲーム画像内の所定の位置に配置されるので、識別情報が含まれる動画内のフレームの特定が容易である。
【0011】
(構成3)
構成3は、構成1または構成2において、識別画像は、ゲーム開始時、またはゲーム開始後の所定タイミングからのフレーム数を示す文字情報の画像である。
【0012】
構成3によれば、識別画像はフレーム数を示す文字情報の画像であるため、ゲーム画像が出力されるタイミングをフレーム数で特定することができる。
【0013】
(構成4)
構成4は、構成1において、識別画像は、ゲーム開始後の所定タイミングに、ゲーム画像の所定位置に配置される情報の画像であり、ゲーム装置のコンピュータに、当該情報の画像がゲーム画像の所定位置に配置される最初のタイミングを示す情報をさらに出力させる。
【0014】
構成4によれば、動画から情報の画像を検出し、出力された最初のタイミングを示す情報と組み合わせることで、情報の画像がゲーム画像の所定位置に配置されたタイミングを特定することができる。
【0015】
(構成5)
構成5は、構成4において、識別画像は、所定の色のパターンの画像である。
【0016】
構成5によれば、所定の色を検出するだけなので、簡易な構成で情報の画像を検出することができる。
【0017】
(構成6)
構成6は、構成1から構成5までのいずれかにおいて、ゲーム装置は、ゲーム画像をキャプチャして動画データを生成し、情報処理装置は、ゲーム装置から動画データを受信する。
【0018】
(構成7)
構成7は、構成1から構成5までのいずれかにおいて、情報処理装置は、ゲーム画像をキャプチャして動画データを生成する。
【0019】
(構成8)
構成8は、構成1から構成3までのいずれかにおいて、情報処理装置は、表示装置に表示されるゲーム画像を撮影装置によって撮影した動画データを取得する。
【0020】
(構成9)
構成9は、構成1から構成5までのいずれかにおいて、開発中のゲームプログラムはさらに、ゲーム装置のコンピュータに、ゲーム実行中に所定のエラーが発生したことを検出させ、エラーが検出された場合に、識別画像を含むゲーム画像を生成させ、エラーの発生に応じて識別画像を含むゲーム画像が生成されたタイミングを少なくとも含む所定期間の動画データを情報処理装置へ送信させる。
【0021】
(構成10)
構成10は、開発中のゲームプログラムを実行するゲーム装置と、情報処理プログラムを実行する情報処理装置を少なくとも含む、ゲーム開発支援方法である。開発中のゲームプログラムは、ゲーム装置のコンピュータに、ゲーム処理実行中においてログの出力を行わせるとともに、ゲーム処理実行中の少なくとも所定の期間において、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれるよう当該ゲーム画像を生成させる。情報処理プログラムは、情報処理装置のコンピュータに、ゲーム装置からログを取得させ、ゲーム画像をキャプチャした動画データを取得させ、動画データに対して画像解析を行い、識別画像が含まれる動画内のフレームを特定させ、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定させ、特定させたタイミングとログに含まれるタイミング情報に基づいて、ログと動画が少なくとも含まれ、当該ログと動画が同期して表示される閲覧画像を生成させる。
【0022】
(構成11)
構成11は、開発中のゲームプログラムを実行中のゲーム装置からログを取得し、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれる当該ゲーム画像をキャプチャした動画データを取得し、動画データに対して画像解析を行い、識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定し、特定されたタイミングとログに含まれるタイミング情報に基づいて、ログと動画が少なくとも含まれ、当該ログと動画が同期して表示される閲覧画像を生成させる、情報処理装置である。
【0023】
(構成12)
構成12は、情報処理装置で実行される情報処理プログラムであって、情報処理装置のプロセッサに、開発中のゲームプログラムを実行中のゲーム装置からログを取得させ、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれる当該ゲーム画像をキャプチャした動画データを取得させ、動画データに対して画像解析を行い、識別画像が含まれる動画内のフレームを特定し、当該識別画像が含まれるゲーム画像が出力されたタイミングを特定させ、特定させたタイミングとログに含まれるタイミング情報に基づいて、ログと動画が少なくとも含まれ、当該ログと動画が同期して表示される閲覧画像を生成させる、情報処理プログラムである。
【0024】
構成10から構成12においても、構成1と同様に、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【発明の効果】
【0025】
この発明によれば、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【0026】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0027】
【
図1】
図1は第1実施例のゲーム開発支援システムの構成の限定しない一例を示す図である。
【
図2】
図2は
図1に示すゲーム装置の電気的な構成の限定しない一例を示すブロック図である。
【
図3】
図3は
図1に示す情報処理装置の電気的な構成の限定しない一例を示すブロック図である。
【
図4】
図4は
図1に示すゲーム装置の表示装置に表示されるゲーム画面の限定しない一例を示す図である。
【
図5】
図5は
図1に示す情報処理装置の表示装置に表示される閲覧画面の限定しない一例を示す図である。
【
図6】
図6はゲーム装置で実行されるゲームプログラムのゲーム時間と録画時間のずれを説明するための限定しない一例を示す図である。
【
図7】
図7は識別画像を含むゲーム画面の限定しない一例を示す図である。
【
図8】
図8はゲーム画面に含まれる識別画像を説明するための限定しない一例を示す図である。
【
図9】
図9は
図2に示すゲーム装置のRAMのメモリマップの限定しない一例を示す図である。
【
図10】
図10は
図9に示したRAMのデータ記憶領域の具体的な内容の限定しない一例を示す図である。
【
図11】
図11は
図3に示す情報処理装置のRAMのメモリマップの限定しない一例を示す図である。
【
図12】
図12は
図2に示すゲーム装置に内蔵されるプロセッサのゲームプログラムの全体処理の限定しない一例を示すフロー図である。
【
図13】
図13は
図2に示すゲーム装置に内蔵されるプロセッサのゲーム画像生成処理の限定しない一例の一部を示すフロー図である。
【
図14】
図14は
図2に示すゲーム装置に内蔵されるプロセッサのゲーム画像生成処理の限定しない一例の他の一部であって、
図13に後続するフロー図である。
【
図15】
図15は
図3に示す情報処理装置に内蔵されるプロセッサの解析および特定処理の限定しない一例の一部を示すフロー図である。
【
図16】
図16は
図3に示す情報処理装置に内蔵されるプロセッサの解析および特定処理の限定しない一例の他の一部であって、
図15に後続するフロー図である。
【
図17】
図17は
図3に示す情報処理装置に内蔵されるプロセッサの閲覧処理の限定しない一例を示すフロー図である。
【
図18】
図18はゲーム画面に含まれる第2実施例の識別画像を説明するための限定しない一例を示す図である。
【
図19】
図19は第2実施例のゲーム装置に内蔵されるプロセッサのゲーム画像生成処理の限定しない一例の一部を示すフロー図である。
【
図20】
図20は第2実施例のゲーム装置に内蔵されるプロセッサのゲーム画像生成処理の限定しない一例の他の一部を示すフロー図である。
【
図21】
図21は第2実施例の情報処理装置に内蔵されるプロセッサの解析および特定処理の限定しない一例の一部を示すフロー図である。
【
図22】
図22は第2実施例の情報処理装置に内蔵されるプロセッサの解析および特定処理の限定しない一例の他の一部であって、
図21に後続するフロー図である。
【
図23】
図23は第2実施例の情報処理装置に内蔵されるプロセッサの解析および特定処理の限定しない一例のその他の一部であって、
図22に後続するフロー図である。
【
図24】
図24は第3実施例のゲーム開発支援システムの構成の限定しない一例を示す図である。
【発明を実施するための形態】
【0028】
<第1実施例>
図1を参照して、限定しない一例のゲーム開発支援システム10は、ゲーム装置12と情報処理装置14を含み、ゲーム装置12と情報処理装置14は有線または無線により通信可能に接続される。また、ゲーム装置12と情報処理装置14は、LANおよび/またはインターネットのようなネットワークを介して接続することもできる。
【0029】
ゲーム装置12は、開発中の仮想のゲームのゲームプログラムを実行するゲーム装置である。この第1実施例では、特に断りの無い限り、ゲームプログラムとの文言は、製品版のゲームプログラムではなく、開発中のゲームプログラムを意味する。同様に、ゲーム装置との文言は、製品版のゲーム装置ではなく、開発中のゲームプログラムを実行する開発用のゲーム装置を意味する。
【0030】
図2はゲーム装置12の電気的な構成の限定しない一例を示すブロック図である。
図2に示すように、ゲーム装置12はプロセッサ20を含み、プロセッサ20は、RAM22、フラッシュメモリ24、通信モジュール26、入力装置28、表示装置30およびD/A変換器32に接続される。また、D/A変換器32は、スピーカ34に接続される。
【0031】
プロセッサ20は、ゲーム装置12の全体制御を司る。具体的には、プロセッサ20は、CPU機能、GPU機能およびビデオメモリ(VRAM)などの複数の機能を内蔵したSoC(System-on-a-chip)である。
【0032】
RAM22は、揮発性の記憶媒体であり、プロセッサ20のワークメモリやバッファメモリとして使用される。フラッシュメモリ24は、不揮発性の記憶媒体であり、ゲームプログラムを記憶したり、各種のデータを記憶(セーブ)したりするために使用される。
【0033】
たとえば、ゲームプログラムおよび必要なデータは、フラッシュメモリ24から読み出され、RAM22に記憶される。また、プロセッサ20に内蔵されるGPUは、RAM22に記憶された画像生成用データ304b(
図10参照)などを用いて表示装置30に種々の画面を表示するための画像データをVRAM(フレームバッファともいう)に生成し、生成した画像データを表示装置30に出力する。
【0034】
通信モジュール26は、たとえばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。したがって、たとえば、プロセッサ20は、通信モジュール26を用いて、アクセスポイントおよびインターネットなどのネットワークを介して他の機器との間でデータを送受信する。この第1実施例では、他の機器は、情報処理装置14である。また、通信モジュール26は、有線LANに接続する機能を有していてもよい。ただし、通信モジュール26を用いて、他の機器との間で直接データを送受信することもできる。
【0035】
また、通信モジュール26は、無線LANに接続する機能とは異なり、近距離無線通信を行う機能を有していてもよい。具体的には、通信モジュール26は、所定の通信方式(たとえば、赤外線方式)により、他の機器との間で赤外線信号の送受信を行う機能、および所定の通信プロトコル(たとえば、マルチリンクプロトコル)に従って、同種のゲーム装置との間で無線通信を行う機能を有する。この場合、たとえば、プロセッサ20は、通信モジュール26を用いて、同種の他のゲーム装置との間でデータを直接送受信することができる。ただし、赤外線方式の近距離無線通信に代えて、Bluetooth(登録商標)のような他の無線通信規格に従う近距離無線通信を行うようにしてもよい。
【0036】
入力装置28は、たとえば、ゲーム装置12に設けられる各種の押しボタン、キーまたはスイッチを備えるゲームコントローラであり、ユーザまたはプレイヤ(以下、単に「プレイヤ」という。)によって、メニュー選択およびアプリケーションにおける指示などの各種の操作に用いられる。たとえば、ゲームコントローラには、Aボタン、Bボタン、Xボタン、Yボタン、Lボタン、Rボタン、十字ボタン(または/およびスライドスティック)などが設けられる。ただし、携帯型のゲーム装置12の場合には、入力装置28として、押しボタン、キーまたはスイッチに加えて、タッチパネルが設けられる場合もある。
【0037】
表示装置30は、LCDまたは有機ELのような表示装置である。ただし、ゲーム装置12が据置型のゲーム装置である場合には、表示装置30はゲーム装置12の装置本体とは別体で設けられる。
【0038】
D/A変換器32は、プロセッサ20から与えられる音声データをアナログの音声信号に変換し、スピーカ34に出力する。ただし、音声データは、キャラクタないしオブジェクトが発生する音、効果音、BGMなどの音楽についてのデータである。
【0039】
なお、
図2に示すゲーム装置12の電気的な構成は単なる一例であり、これに限定される必要はない。たとえば、入力装置28は、ゲーム装置12の装置本体とは別体で設けて、プロセッサ20と通信可能に接続されるようにすることもできる。また、ゲーム装置12は、光ディスク、USBメモリまたはメモリカードのような外部メモリを着脱可能に構成されてもよい。
【0040】
また、情報処理装置14は汎用のパーソナルコンピュータ、タブレット端末またはサーバである。
図3は情報処理装置14の電気的な構成の限定しない一例を示すブロック図である。
図3に示すように、情報処理装置14はプロセッサ40を含み、プロセッサ40は、RAM42、HDD44、通信モジュール46、入力装置48および表示装置50に接続される。
【0041】
プロセッサ40は、情報処理装置14の全体制御を司る。具体的には、プロセッサ40は、CPU機能、GPU機能およびVRAMなどの複数の機能を内蔵したSoCである。
【0042】
RAM42は、揮発性の記憶媒体であり、プロセッサ40のワークメモリやバッファメモリとして使用される。HDD44は、不揮発性の記憶媒体であり、ログおよび動画データの出力等を行うための情報処理プログラムを記憶したり、各種のデータをセーブしたりするために使用される。
【0043】
たとえば、情報処理プログラムおよび必要なデータは、HDD44から読み出され、RAM42に記憶される。また、プロセッサ40に内蔵されるGPUは、RAM42に記憶された画像生成用データ504b(
図11参照)などを用いて表示装置50に種々の画面を表示するための画像データをVRAMに生成し、生成した画像データを表示装置50に出力する。
【0044】
通信モジュール46は、
図2に示した通信モジュール26と同じ機能を有し、ゲーム装置12との間でデータの送受信を行う。入力装置48は、一例として、キーボード、コンピュータマウスおよびタッチパネルなどで構成することができる。情報処理装置14がタブレット端末である場合には、入力装置48は情報処理装置14の装置本体に設けられるハードウェアのボタンおよびタッチパネルで構成することができる。
【0045】
表示装置50はLCDまたは有機ELのような表示装置である。ただし、情報処理装置14が据置型のパーソナルコンピュータまたはサーバである場合には、表示装置50は情報処理装置14の装置本体とは別体で設けられる。
【0046】
なお、
図3に示す情報処理装置14の電気的な構成は単なる一例であり、これに限定される必要はない。たとえば、情報処理装置14は、さらにスピーカを備えるようにしてもよい。また、情報処理装置14は、光ディスク、USBメモリまたはメモリカードのような外部メモリを着脱可能に構成されてもよい。
【0047】
一例として、ゲームプログラムは、アクションゲームのような仮想のゲームのゲームプログラムであり、プレイヤキャラクタオブジェクトは、プレイヤの操作に従って、仮想空間内を移動したり、敵キャラクタオブジェクトと戦ったり、アイテムを取得したり、アイテムを使用したりする。
【0048】
図4はゲームプログラムを実行した場合のゲーム画面100の限定しない一例を示す。
図4に示すゲーム画面100では、プレイヤキャラクタオブジェクト102と敵キャラクタオブジェクト104が対峙した状態で表示される。また、プレイヤキャラクタオブジェクト102は銃オブジェクト106を持っている。背景オブジェクトは地面以外を省略してある。
【0049】
ゲーム画面100もまた、ゲームプログラムを実行している場合に表示される開発中のゲーム画像であり、ゲーム画面100の上部と下部の少なくとも一方の領域110には、製品版のゲームプログラムを実行した場合のゲーム画像に表示されない情報であって、ゲームプログラムの内部情報が表示される。内部情報は、CPUおよびGPUの使用率、メモリの占有度合、プレイヤの操作情報、仮想のゲームの進行度合および仮想のゲームをプレイした時間の合計(すなわち、総プレイ時間)などである。
図4では、領域110を分かり易く示すために、領域110を灰色で塗りつぶしてある。
【0050】
また、ゲーム装置12では、ゲームプログラムの処理(後述する、全体処理)の実行中に、この全体処理に用いられる各種のパラメータのログ(以下、「パラメータログ」という)が生成される。各種のパラメータは、仮想のゲームに登場するキャラクタオブジェクトの性質および性能を示すパラメータであり、具体的には、キャラクタオブジェクト(ここでは、プレイヤキャラクタオブジェクト102)のHP、レベル、所持アイテムの種類および数、移動速度、加速度および各種のフラグなどが該当する。
【0051】
さらに、ゲーム装置12では、ゲームプログラムの全体処理の実行中に、全体処理に用いられる各種のパラメータのテキスト形式またはバイナリ形式のログ(テキストログ)が生成される。テキストログは、各種のパラメータについて、名称(または、内容)および数値などを文字列で表示するためのログである。
【0052】
パラメータログおよびテキストログはフレーム(以下、「ゲームフレーム」という)毎に生成される。また、パラメータログおよびテキストログには、ゲームプログラムの全体処理を開始したとき(すなわち、ゲーム開始時)からのゲームフレームの数(以下、「ゲームフレーム数」という)が付加される。また、パラメータログおよびテキストログは、ゲームプログラムの全体処理の開始から終了まで記憶される。ゲーム開始時は、ゲーム装置12のファームウェアまたはOSが管理しているゲームプログラムを起動(または、実行)したときである。ただし、ゲームフレーム数は、ゲーム開始後の所定のタイミングからのフレーム数にすることもできる。また、ゲームフレームは、ゲーム装置12の画面の更新単位時間であり、一例として、1/60秒に設定される。ゲームフレームは、1/30秒または1/120秒に設定することもできる。
【0053】
また、ゲームプログラムの全体処理の実行が開始されると、ゲーム装置12が備えるキャプチャ機能の実行が指示され、仮想のゲームの開始から終了までのゲーム画面100がキャプチャされる。つまり、動画データが生成される。一例として、動画データのファイル形式はMP4である。
【0054】
この実施例では、ゲームフレーム毎のパラメータログ、テキストログおよび動画データが情報処理装置14に出力(または、送信)され、情報処理装置14は、パラメータログ、テキストログおよび動画データを取得(または、受信)する。
【0055】
ただし、これは一例であり、ゲーム装置12は、ゲーム開始からゲーム終了までのすべてのパラメータログ、テキストログおよび動画データを、ゲーム終了後に情報処理装置14に送信してもよい。
【0056】
また、他の例では、ゲーム装置12は、パラメータログ、テキストログおよび動画データを、メモリカードおよび外付けHDDなどの記憶媒体に記憶しておき、情報処理装置14は、この記憶媒体からパラメータログ、テキストログおよび動画データを取得するようにしてもよい。
【0057】
また、動画データは、ゲーム装置12で生成されるゲーム画像データを情報処理装置14に送信し、情報処理装置14に接続されたキャプチャ装置でゲーム画像データをキャプチャすることで生成することもできる。
【0058】
図5は情報処理装置14の表示装置50に表示される閲覧画面200の限定しない一例を示す。
図5に示す閲覧画面200は、表示領域202、204、206および208を含む。一例として、閲覧画面200では、表示領域202および204が画面上部に並んで設けられ、それらの下方に、表示領域206が設けられ、さらに下方に、表示領域208が設けられる。
【0059】
表示領域202には、動画データを再生した動画像が表示される。表示領域204には、テキストログが表示される。表示領域206には、パラメータログが表示される。表示領域208には、操作パネルが設けられる。
【0060】
ただし、
図5では、パラメータログ、テキストログおよび操作パネルを省略してある。パラメータログおよびテキストログは上述したとおりである。操作パネルには、動画を、再生、停止、早送りまたは巻き戻しするための複数のアイコンが設けられたり、動画の再生位置を決定するためのスライドボタンが設けられたりする。
【0061】
このような閲覧画面200では、動画が再生されると、開発者等の操作によって、表示中の動画のフレーム(以下、「動画フレーム」という)に対応するゲームフレームのパラメータログおよびテキストログがそれぞれ表示される。
【0062】
なお、図示は省略するが、閲覧が開始されたときの初期の閲覧画面200では、表示領域202、204および206は何も表示されていない状態である。
【0063】
しかし、通常、動画データには、ゲーム画像が表示されるタイミングすなわちゲームフレーム数の情報が含まれていないため、パラメータログおよびテキストログと、動画を同期して表示するのが困難である。
【0064】
図6はゲームフレームと録画時間のずれを説明するための図である。
図6では、上段において、ゲーム開始からのゲームフレーム数すなわち経過時間(以下、「ゲーム時間」という)の進行に従うゲーム画像の変化が示される。簡単に説明すると、プレイヤキャラクタオブジェクト102がプレイヤの操作に従って右方に進行すると、プレイヤキャラクタオブジェクト102の前方から敵キャラクタオブジェクト104が出現する。プレイヤキャラクタオブジェクト102はプレイヤの操作に従って銃オブジェクト106を使って敵キャラクタオブジェクト104を攻撃し、銃オブジェクト106から発射された弾が敵キャラクタオブジェクト104に当たり、敵キャラクタオブジェクト104が倒れる。ただし、
図6の上段において隣接する2つのゲーム画像の間の複数(ここでは、59ゲームフレーム分)のゲーム画像については省略してある。
【0065】
また、
図6では、下段において、録画開始からの動画フレーム数すなわち経過時間(以下、「録画時間」という)の進行に従う動画すなわちキャプチャされたゲーム画像(以下、「キャプチャ画像」という)の変化が示される。ただし、
図6の下段において隣接する2つのキャプチャ画像の間の複数(ここでは、59動画フレーム分)のキャプチャ画像については省略してある。
【0066】
なお、
図6に示す例では、分かり易く示すために、ゲーム画像のフレームレートと、動画のフレームレートは、同じに設定され、それぞれ固定されているものとする。ただし、ゲーム画像のフレームレートがゲームプログラムの実行中に変化する場合もある。
【0067】
たとえば、ゲームプログラムの全体処理が開始されると同時にキャプチャの実行が指示されたとしても、実際にゲーム画像のキャプチャが開始されるまでに時間がかかり、ゲーム時間と録画時間の間にずれが生じてしまう場合がある。
図6に示す例では、ゲーム開始からのゲームフレーム数が120であるときに、すなわち、ゲーム時間が2秒であるときに、録画時間が0秒であり、2秒間のずれが生じている。逆に、ゲーム画像のキャプチャの方が先に開始されてしまう場合も考えられる。
【0068】
したがって、動画データの再生を開始すると同時に、パラメータログとテキストログの出力を開始したとしても、パラメータログおよびテキストログと、動画の間でゲームフレーム数が一致することはほとんどない。
【0069】
このため、この実施例では、所定の場合に、ゲーム画像が出力されているタイミングを識別可能な識別画像が含まれるゲーム画像を表示させ、動画データにも識別画像を含めることで、閲覧画面200において、ログと動画の同期を取るようにしてある。
【0070】
図7は識別画像を含むゲーム画面100の限定しない一例を示す図である。
図7に示すゲーム画面100では、画面の左上の上部に、識別画像の表示領域120が設けられる。つまり、識別画像はゲーム画像の所定の位置に配置される。第1実施例では、識別画像は、所定の色(たとえば、緑色)のマーカと、ゲーム開始からのゲームフレーム数の文字列の画像である。また、識別画像は、第1所定時間(第1実施例では、1.1秒)だけ表示(または、描画)される。
【0071】
図8はゲーム画面100の左上部を拡大した拡大図である。
図8に示すように、表示領域120は、表示領域120aと表示領域120bを含む。表示領域120aは緑色のマーカを表示する領域である。表示領域120bは、表示領域120のうちの表示領域120a以外の領域であって、ゲームフレーム数の文字列を表示する領域である。
図7および
図8では表示領域120を分かり易く示すために四角枠を表示してあるが、実際のゲーム画面100においては、四角枠は表示しなくてもよい。また、
図8では、表示領域120aと表示領域120bを区別するために、表示領域120aを灰色で塗りつぶしてある。
【0072】
表示領域120aは、ゲーム画面100の左上の頂点を原点(0,0)とした場合に、横方向に長さx1から長さx2までの範囲であり、縦方向に長さy1から長さy2までの範囲に決定される。また、表示領域120bは、横方向に長さx2から長さx3までの範囲であり、縦方向に長さy1から長さy2までの範囲に決定される。ただし、長さx1、x2、x3、y1およびy2は、それぞれ、ゲーム画面100に対応するゲーム画像データをVRAMに生成した場合の画素数で表される。
【0073】
また、所定の場合とは、ゲーム開始時においてゲーム画面100のキャプチャが開始された場合、および、ゲームプログラムの実行中にエラーが発生した場合である。エラーは、ゲームプログラムの全体処理において判断され、具体的には、プレイヤキャラクタオブジェクト102が存在するべきでない場所に位置している場合にエラーが判断される。
【0074】
動画データは、ゲーム開始からゲーム終了まで生成される。また、エラーが発生した場合には、エラーの発生により表示(または、描画)された識別画像を含むキャプチャ画像を末尾の部分に含み、末尾から第2所定時間(たとえば、5分)遡った位置を先頭とする部分についての動画データが、ゲーム開始からゲーム終了までの動画データを用いて生成される。なお、エラーが発生した部分の動画データについては、開発者等によって生成される。
【0075】
したがって、動画データでは、先頭を含む一部または末尾を含む一部に識別画像が含まれている。このため、情報処理装置14では、ログと動画が閲覧される場合には、閲覧に先立って、動画データが解析され、動画データに含まれる識別画像が検出される。ただし、並列処理によって、動画が閲覧されている間に解析が同時に行われるようにしてもよい。この場合、解析が完了するまではログと同期しない態様で動画が閲覧される。
【0076】
動画データを解析する処理(以下、「画像解析の処理」という)では、動画データの先頭を含む第3所定時間(たとえば、30秒)および動画データの末尾を含む第3所定時間について、動画データが走査され、動画データを構成する動画フレームに含まれる識別画像が検出される。さらに、検出された識別画像を含む動画フレームの録画時間および対応するゲームフレーム数が特定される。
【0077】
具体的には、画像解析の処理に先立って、動画データがMP4のファイル形式に従ってデコードされる。画像解析の処理では、まず、デコードされた動画データの先頭の動画フレームに対応する画像データがVRAMに展開され、VRAMに展開された画像データのうち、表示領域120aに相当する範囲に緑色のマーカが描画されているかどうかが判断される。つまり、表示領域120aに相当する範囲の画素の色値(すなわち、RGBの値)が緑色を示すかどうかが判断される。
【0078】
表示領域120aに相当する範囲において、緑色のマーカが検出された場合には、表示領域120bに相当する範囲において文字認識処理が実行される。具体的には、表示領域120bに相当する範囲において、OCR処理が実行される。OCR処理については周知の技術であるため、説明は省略する。したがって、VRAMに展開された画像データに含まれるゲームフレーム数が認識または検出される。このため、VRAMに展開された画像データに対応する動画フレームの録画時間および対応するゲームフレーム数が特定される。
【0079】
一方、表示領域120aに相当する範囲において、緑色のマーカが検出されない場合には、所定数(たとえば、5)先の動画フレームについて緑色のマーカが描画されているかどうかが判断される。つまり、動画データは、動画フレームを飛ばしながら走査される。これは、画像解析の処理の処理負荷を低減するためである。したがって、動画フレームを飛ばさずに動画データを走査することもできる。
【0080】
動画データの先頭から30秒分が走査され、緑色のマーカが検出されない場合には、動画データの末尾から30秒手前の位置から末尾(以下、「末尾の30秒分」という)まで走査される。動画データの末尾の30秒分についての走査は、先頭の動画フレームを含む30秒分の走査と同じである。
【0081】
識別画像はゲーム画像の所定位置の表示領域120に描画されるため、画像解析の処理においては、この表示領域120に相当する範囲を検索するだけで良いため、識別画像を含む画像データに対応する動画フレームを容易に特定または検出することができる。また、識別画像はゲームフレーム数の文字列であるため、ゲーム装置12において、識別画像が描画されたタイミングをゲームフレーム数で特定することができる。
【0082】
なお、第1実施例では、表示領域120aに相当する範囲において、緑色のマーカが描画されているかどうかを判断するようにしてあるが、表示領域120aに相当する範囲を含む第1の所定範囲について、緑色のマーカが描画されているかどうかを判断するようにしてもよい。一例として、第1の所定範囲は表示領域120aに相当する範囲の1.2倍から2倍程度の大きさである。同様に、表示領域120bに相当する範囲において文字認識処理が実行されるようにしてあるが、表示領域120bに相当する範囲を含む第2の所定範囲において文字認識処理が実行されるようにしてもよい。一例として、第2の所定範囲は表示領域120bに相当する範囲の1.2倍から2倍程度の大きさである。
【0083】
録画時間および対応するゲームフレーム数が特定されると、これらの情報に基づいて、動画データとログが同期して閲覧画面200が表示される。ここで、動画データとログを同期させる方法について説明する。
【0084】
ゲームプログラムの実行中では、プロセッサ20の処理負荷に応じてフレームレートが変化される場合がある。このフレームレートの変化すなわち可変フレームレートに対応するために、動画データを解析することで特定したゲームフレーム数に対応するゲーム時間をさらに特定し、特定したゲーム時間に対する動画データを解析することで特定した録画時間のずれ(以下、「時間のずれ」という)を算出(または、特定)し、算出した時間のずれを用いて動画データとログを同期させた閲覧画面200の閲覧画像データを生成するようにしてある。一例として、時間のずれは、特定したゲーム時間から、特定した録画時間を減算することで算出される。したがって、録画開始がゲーム開始よりも遅い場合には、時間のずれはプラスの値であり、録画開始がゲーム開始よりも早い場合には、時間のずれはマイナスの値である。
【0085】
また、上述したように、ゲームフレーム数に対応するゲーム時間を特定するため、ゲームプログラムの実行中では、ゲームフレーム数に対応するゲーム時間すなわちゲーム開始からの経過時間についての情報(以下、「時間対応情報」という)のログが生成され、時間対応情報のログ(以下、「時間対応情報ログ」という)が情報処理装置14に出力される。ゲームフレーム数に対応するゲーム時間のログを生成するため、ゲーム時間はμ秒単位でカウントされる。
【0086】
ただし、ゲーム装置12は、ゲーム開始からゲーム終了までのすべてのパラメータログ、テキストログおよび動画データとともに、ゲーム開始からゲーム終了までのすべての時間対応情報ログを、ゲーム終了後に情報処理装置14に送信してもよい。
【0087】
または、ゲーム装置12は、パラメータログ、テキストログおよび動画データとともに、時間対応情報ログを、メモリカードおよび外付けHDDなどの記憶媒体に記憶しておき、情報処理装置14は、この記憶媒体からパラメータログ、テキストログ、動画データおよび時間対応情報ログを取得するようにしてもよい。
【0088】
開発者等によって閲覧処理が開始されると、情報処理装置14の表示装置50に閲覧画面200が表示される。また、開発者等によって閲覧画面200の表示領域208に表示された操作パネルを用いて再生が指示されると、動画の再生が開始され、動画に合わせてパラメータログおよびテキストログの表示が開始される。基本的には、動画は先頭から再生されるが、開発者等が再生位置を指定した場合には、指定された再生位置から再生される。
【0089】
動画の再生中では、動画データの現在の録画時間(以下、「現在時間」という)に対応するゲーム時間が時間のずれを用いて算出される。ゲーム時間は、現在時間に時間のずれを加算することで算出される。ゲーム時間が算出されると、算出されたゲーム時間に対応するゲームフレーム数のパラメータログおよびテキストログが表示される。
【0090】
図9は
図2に示したゲーム装置12のRAM22のメモリマップ300の一例を示す図である。
図9に示すように、RAM22は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、この第1実施例のゲームプログラムが記憶される。ゲームプログラムは、メイン処理プログラム302a、通信プログラム302b、画像生成プログラム302c、画像表示プログラム302d、操作入力検出プログラム302e、ゲーム制御プログラム302f、フレーム数カウントプログラム302g、ゲーム時間カウントプログラム302h、識別画像描画プログラム302i、パラメータログ生成プログラム302j、パラメータログ出力プログラム302k、テキストログ生成プログラム302m、テキストログ出力プログラム302n、時間対応情報ログ生成プログラム302p、時間対応情報ログ出力プログラム302q、キャプチャプログラム302rおよび動画データ出力プログラム302sなどを含む。
【0091】
なお、ゲームプログラムは、予めフラッシュメモリ24に記憶されていてもよいし、ゲーム装置12に着脱可能な光ディスク、USBメモリまたはメモリカードのような外部メモリから取得してもよい。ただし、ゲームプログラムの一部をフラッシュメモリ24に記憶しておき、他の一部を外部メモリから取得するようにしてもよい。これらのことは、後述する画像生成用データ304bについても同様である。
【0092】
メイン処理プログラム302aは、この第1実施例のゲームプログラムのメインルーチンを処理するためのプログラムである。
【0093】
通信プログラム302bは、外部の機器、この第1実施例では、情報処理装置14と通信するためのプログラムである。
【0094】
画像生成プログラム302cは、画像生成用データ304bを用いてゲーム画面100すなわちゲーム画像に対応するゲーム画像データを生成(または、描画)するためのプログラムである。識別画像を描画することが判断されている場合には、識別画像の画像データを含むゲーム画像データが生成される。ただし、識別画像を描画することが判断されていない場合には、識別画像の画像データを含まないゲーム画像データが生成される。
【0095】
画像表示プログラム302dは、画像生成プログラム302cに従って生成されたゲーム画像データを表示装置30に出力するためのプログラムである。したがって、ゲーム画面100が表示装置30に表示される。
【0096】
操作入力検出プログラム302eは、プレイヤによる操作入力部に対する操作入力データ304aを検出するためのプログラムである。この第1実施例では、操作入力部は、入力装置28に設けられた各種の押しボタン、キーまたはスイッチである。
【0097】
ゲーム制御プログラム302fは、この第1実施例の仮想のゲームのゲーム制御処理を実行するためのプログラムである。
【0098】
フレーム数カウントプログラム302gは、ゲーム開始からのゲームフレーム数をカウントするためのプログラムである。
【0099】
ゲーム時間カウントプログラム302hは、ゲーム開始からのゲーム時間をカウントするためのプログラムである。
【0100】
識別画像描画プログラム302iは、識別画像(第1実施例では、緑色のマーカおよびゲームフレーム数)を描画するかどうかを判断するためのプログラムである。
【0101】
パラメータログ生成プログラム302jは、ゲームフレーム毎のパラメータログを生成するためのプログラムである。
【0102】
パラメータログ出力プログラム302kは、パラメータログ生成プログラム302jに従って生成したパラメータログを出力するためのプログラムである。この第1実施例では、パラメータログは、情報処理装置14に出力される。このとき、通信プログラム302bも実行される。
【0103】
テキストログ生成プログラム302mは、ゲームフレーム毎のテキストログを生成するためのプログラムである。
【0104】
テキストログ出力プログラム302nは、テキストログ生成プログラム302mに従って生成したテキストログを出力するためのプログラムである。この第1実施例では、テキストログは、情報処理装置14に出力される。このとき、通信プログラム302bも実行される。
【0105】
時間対応情報ログ生成プログラム302pは、ゲームフレーム毎の時間対応情報ログを生成するためのプログラムである。
【0106】
時間対応情報ログ出力プログラム302qは、時間対応情報ログ生成プログラム302pに従って生成した時間対応情報ログを出力するためのプログラムである。この第1実施例では、時間対応情報ログは、情報処理装置14に出力される。このとき、通信プログラム302bも実行される。
【0107】
キャプチャプログラム302rは、ゲーム画像をキャプチャして動画データを生成するためのプログラムである。
【0108】
動画データ出力プログラム302sは、キャプチャプログラム302rに従って生成した動画データを出力するためのプログラムである。この第1実施例では、動画データは、情報処理装置14に出力される。このとき、通信プログラム302bも実行される。
【0109】
図示は省略するが、プログラム記憶領域302には、仮想のゲームにおいて必要な音を生成および出力するための音出力プログラム、プレイヤの操作入力に従って仮想カメラの向きを変更するためのプログラムなどの他のプログラムも記憶される。また、プログラム記憶領域302には、ファームウェアまたはOS、およびミドルウェアなども記憶される。
【0110】
図10は、
図9に示したRAM22のデータ記憶領域304の具体的な内容の限定しない一例を示す。
図10に示すように、データ記憶領域304には、操作入力データ304a、画像生成用データ304b、ゲームフレーム数データ304c、ゲーム時間データ304d、パラメータデータ304e、パラメータログデータ304f、テキストログデータ304g、時間対応情報ログデータ304h、動画データ304i、識別画像描画フラグ304jおよびエラーフラグ304kなどが記憶される。
【0111】
操作入力データ304aは、入力装置28から入力されたデータであり、時系列に従って記憶される。操作入力データ304aは、プロセッサ20の処理に使用されると、消去される。
【0112】
画像生成用データ304bは、ゲーム画像データを生成するためのポリゴンデータおよびテクスチャデータなどのデータを含む。
【0113】
ゲームフレーム数データ304cは、ゲーム開始からカウントされるゲームフレーム数のデータである。
【0114】
ゲーム時間データ304dは、ゲーム開始からμ秒単位でカウントされるゲーム時間のデータである。
【0115】
パラメータデータ304eは、各種のパラメータについてのデータであり、ゲーム制御処理によって更新される。
【0116】
パラメータログデータ304fは、現在のゲームフレームにおいて生成されたパラメータログのデータであり、ゲームフレーム毎に更新される。
【0117】
テキストログデータ304gは、現在のゲームフレームにおいて生成されたテキストログのデータであり、ゲームフレーム毎に更新される。
【0118】
時間対応情報ログデータ304hは、現在のゲームフレームにおいて生成された時間対応情報ログのデータであり、ゲームフレーム毎に更新される。
【0119】
動画データ304iは、現在のゲームフレームにおいてキャプチャされたゲーム画像のデータであり、動画フレーム毎に更新される。
【0120】
識別画像描画フラグ304jは、識別画像を描画するかどうかを判断するためのフラグである。識別画像描画プログラム302iに従って識別画像を描画することが判断された場合に、識別画像描画フラグ304jはオンされる。また、識別画像描画プログラム302iに従って識別画像を描画しないことが判断された場合に、識別画像描画フラグ304jはオフされる。
【0121】
エラーフラグ304kは、エラーの発生により識別画像を描画するかどうかを判断するためのフラグである。エラーの発生により識別画像を描画する場合に、エラーフラグ304kはオンされ、エラーの発生により識別画像を描画しない場合に、エラーフラグ304kはオフされる。
【0122】
図示は省略するが、データ記憶領域304には、ゲームプログラムの実行に必要な他のデータが記憶されたり、カウンタまたはタイマが設けられたりする。たとえば、仮想空間における敵キャラクタオブジェクト104などの各ノンプレイヤオブジェクト、各背景オブジェクトおよび仮想カメラの各々についてのパラメータのデータなども記憶される。
【0123】
図11は
図3に示した情報処理装置14のRAM42のメモリマップ500の一例を示す図である。
図11に示すように、RAM42は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502には、この第1実施例の情報処理プログラムが記憶される。情報処理プログラムは、メイン処理プログラム502a、通信プログラム502b、画像生成プログラム502c、画像表示プログラム502d、操作入力検出プログラム502e、取得プログラム502f、デコードプログラム502g、画像解析プログラム502h、特定プログラム502i、時間のずれ算出プログラム502j、動画再生プログラム502kおよびログ表示プログラム502mなどを含む。
【0124】
なお、情報処理プログラムは、予めHDD44に記憶されていてもよいし、情報処理装置14に着脱可能な光ディスク、USBメモリまたはメモリカードのような外部メモリから取得してもよい。ただし、情報処理プログラムの一部をHDD44に記憶しておき、他の一部を外部メモリから取得するようにしてもよい。これらのことは、後述する画像生成用データ504bについても同様である。
【0125】
メイン処理プログラム502aは、この第1実施例の情報処理プログラムのメインルーチンを処理するためのプログラムである。
【0126】
通信プログラム502bは、外部の機器、この第1実施例では、ゲーム装置12と通信するためのプログラムである。
【0127】
画像生成プログラム502cは、画像生成用データ504b、パラメータログデータ504c、テキストログデータ504dおよび動画データ504fを用いて、閲覧画面200に対応する閲覧画像データを生成(または、描画)するためのプログラムである。
【0128】
画像表示プログラム502dは、画像生成プログラム502cに従って生成された閲覧画像データを表示装置50に出力するためのプログラムである。したがって、閲覧画面200が表示装置50に表示される。
【0129】
操作入力検出プログラム502eは、開発者等による操作入力部に対する操作入力データ504aを検出するためのプログラムである。この第1実施例では、操作入力部は、入力装置48に設けられた各種の押しボタン、キーまたはスイッチである。
【0130】
取得プログラム502fは、パラメータログデータ504c、テキストログデータ504d、時間対応情報ログデータ504eおよび動画データ504fを取得するためのプログラムである。この第1実施例では、通信プログラム502bに従ってゲーム装置12から受信したパラメータログ、テキストログおよび動画が取得される。
【0131】
デコードプログラム502gは、ゲーム装置12から取得した動画データ504fをデコードするためのプログラムである。ただし、動画データ504fをデコードする場合には、動画再生プログラム502kに含まれるデコードプログラムが用いられてもよい。
【0132】
画像解析プログラム502hは、デコードされた動画データ504fを走査し、動画データ504fを構成する動画フレームに対応する画像データに含まれる識別画像を検出し、検出した識別画像からゲームフレーム数を検出するためのプログラムである。
【0133】
特定プログラム502iは、ゲームフレーム数が検出された画像データに対応する動画フレームの録画時間および対応するゲームフレーム数を特定するためのプログラムである。
【0134】
時間のずれ算出プログラム502jは、特定プログラム502iに従って特定したゲームフレーム数に対応するゲーム時間を特定して、時間のずれを算出(または、特定)するためのプログラムである。
【0135】
動画再生プログラム502kは、動画を再生するためのプログラムである。ログ表示プログラム502mは、パラメータログおよびテキストを、時間のずれ算出プログラム502jに従って算出された時間のずれを用いて、動画と同期させて表示するためのプログラムである。動画の再生およびログの表示を行う場合には、画像生成プログラム502cおよび画像表示プログラム502dも実行される。
【0136】
図示は省略するが、プログラム記憶領域502には、情報処理において必要な他のプログラムも記憶される。また、プログラム記憶領域502には、OSおよびミドルウェアなども記憶される。
【0137】
また、データ記憶領域504には、操作入力データ504a、画像生成用データ504b、パラメータログデータ504c、テキストログデータ504d、時間対応情報ログデータ504e、動画データ504fおよび時間のずれデータ504gが記憶される。
【0138】
操作入力データ504aは、入力装置48から入力されたデータであり、時系列に従って記憶される。操作入力データ504aは、プロセッサ40の処理に使用されると、消去される。画像生成用データ504bは、閲覧画像データを生成するためのデータを含む。
【0139】
パラメータログデータ504cは、ゲーム装置12から取得したゲーム開始からゲーム終了までのパラメータログデータ304fである。
【0140】
テキストログデータ504dは、ゲーム装置12から取得したゲーム開始からゲーム終了までのテキストログデータ304gである。
【0141】
時間対応情報ログデータ504eは、ゲーム装置12から取得したゲーム開始からゲーム終了までの時間対応情報ログデータ304hである。
【0142】
動画データ504fは、ゲーム装置12から取得したゲーム開始からゲーム終了までの動画データ304iである。また、動画データ504fは、ゲーム装置12から取得したゲーム開始からゲーム終了までの動画データ304iを用いて生成した、エラーが発生した部分の動画データの場合もある。
【0143】
時間のずれデータ504gは、時間のずれ算出プログラム502jに従って算出した時間のずれについてのデータである。
【0144】
図示は省略するが、データ記憶領域504には、情報処理に必要な他のデータが記憶されたり、カウンタまたはタイマが設けられたりする。
【0145】
図12は、
図2に示したプロセッサ20のゲームプログラムの処理(全体処理)の限定しない一例を示すフロー図である。
図13および
図14は、
図2に示したプロセッサ20のゲーム画像生成処理の限定しない一例を示すフロー図である。
図15および
図16は、
図3に示したプロセッサ40の解析および特定処理の限定しない一例を示すフロー図である。
図17は、
図3に示したプロセッサ40の閲覧処理の限定しない一例を示すフロー図である。
【0146】
ただし、
図12-
図17に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この第1実施例では、基本的には、
図12-
図14に示すフロー図の各ステップの処理をプロセッサ20が実行するものとして説明するが、プロセッサ20以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。同様に、
図15-
図17に示すフロー図の各ステップの処理をプロセッサ40が実行するものとして説明するが、プロセッサ40以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
【0147】
以下、
図12-
図14を参照して、全体処理およびゲーム画像生成処理について説明するとともに、
図15-
図17を参照して、解析および特定処理および閲覧処理について説明するが、同じ処理内容については、重複する説明を省略することにする。
【0148】
ゲーム装置12の電源が投入されると、全体処理の実行に先だって、プロセッサ20は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってRAM22等の各ユニットが初期化される。ゲーム装置12は、プレイヤによって、この第1実施例のゲームプログラムの実行が指示されると、全体処理を開始する。
【0149】
図12に示すように、プロセッサ20は、全体処理を開始すると、ステップS1で、ゲームフレーム数およびゲーム時間のカウントを開始し、ステップS3で、キャプチャの実行を指示する。図示は省略するが、プロセッサ20は、全体処理と並行してキャプチャ処理を実行する。キャプチャ処理は、表示装置30に表示されるゲーム画面100すなわちゲーム画像をキャプチャし、キャプチャしたゲーム画像の動画データ304iを生成する処理である。また、生成した動画データ304iは、情報処理装置14に出力される。したがって、情報処理装置14は動画フレーム毎の動画データ304iを取得する。
【0150】
次のステップS5では、初期設定を実行する。ここでは、プロセッサ20は、仮想空間において、プレイヤキャラクタオブジェクト102、各ノンプレイヤオブジェクト(敵キャラクタオブジェクト104を含む)、各背景オブジェクトおよび仮想カメラを配置する位置および向きを初期位置および初期の向きに決定する。また、プロセッサ20は、各種のパラメータに初期値を設定する。
【0151】
続くステップS7では、入力装置28から送信または入力された操作入力データを取得し、ステップS9では、ゲーム制御処理を実行する。プロセッサ20は、ゲーム制御処理で、プレイヤの操作に従って、プレイヤキャラクタオブジェクト102に、任意のアクションを実行させたり、アイテムを取得または使用させたりなどする。また、プロセッサ20は、ゲーム制御処理で、プレイヤの操作に関係無く、敵キャラクタオブジェクト104を出現させたり、敵キャラクタオブジェクト104にプレイヤキャラクタオブジェクト102を攻撃させたりするなどの任意のアクションを行わせたり、アイテムを出現させたりなどする。さらに、ゲーム制御処理が実行されるときに、パラメータデータ304eが更新される。
【0152】
次のステップS11では、後述するゲーム画像生成処理(
図13および
図14参照)を実行する。簡単に説明すると、プロセッサ20は、仮想空間においてプレイヤキャラクタオブジェクト102を視野範囲に含むように仮想カメラを設定し、仮想カメラに基づいて描画処理を実行し、仮想カメラで撮影した画像に対応するゲーム画像データを生成する。つまり、ステップS9のゲーム制御処理の結果に基づくゲーム画像データが生成される。詳細な説明は省略するが、ゲーム画像データには、内部情報についての画像データも含まれる。また、所定の場合には、ゲーム画像データには、識別画像の画像データも含まれる。
【0153】
続いて、ステップS13では、ゲーム画像を表示する。ここでは、プロセッサ20は、ステップS11で生成したゲーム画像データを表示装置30に出力する。
【0154】
さらに、ステップS15では、パラメータログを生成し、ステップS17で、生成したプラメータログを情報処理装置14に出力し、ステップS19で、テキストログを生成し、ステップS21で、生成したテキストログを情報処理装置14に出力し、ステップS23で、時間対応情報ログを生成し、ステップS25で、生成した時間対応情報ログを情報処理装置14に出力する。したがって、情報処理装置14では、ゲームフレーム毎のパラメータログ、テキストログおよび時間対応情報ログを取得する。
【0155】
そして、ステップS27では、仮想のゲームを終了するかどうかを判断する。ステップS27の判断は、プレイヤが仮想のゲームを終了する指示を行ったか否か等によって行われる。ステップS27で“NO”であれば、つまり仮想のゲームを終了しない場合には、ステップS7に戻る。一方、ステップS27で“YES”であれば、つまり仮想のゲームを終了する場合には、全体処理を終了する。
【0156】
図13に示すように、プロセッサ20は、ゲーム画像生成処理を開始すると、ステップS31で、キャプチャの実行中かどうかを判断する。ステップS31で“YES”であれば、つまり、キャプチャの実行中であれば、ステップS33で、エラーフラグ304kがオンであるかどうかを判断する。ステップS33で“NO”であれば、つまり、エラーフラグ304kがオフであれば、ステップS43に進む。一方、ステップS33で“YES”であれば、つまり、エラーフラグ304kがオンであれば、
図14に示すステップS51に進む。
【0157】
ステップS31で“NO”であれば、つまり、キャプチャの実行中でなければ、ステップS35で、キャプチャの開始かどうかを判断する。ここでは、プロセッサ20は、キャプチャ機能から、キャプチャ処理を開始したことの通知があったかどうかを判断する。ステップS35で“NO”であれば、つまり、キャプチャの開始でなければ、ステップS43に進む。
【0158】
一方、ステップS35で“YES”であれば、つまり、キャプチャの開始であれば、ステップS37で、識別画像の描画時間(この第1実施例では、1.1秒)のカウントを開始し、ステップS39で、識別画像描画フラグ304jをオンし、ステップS41で、識別画像の画像データを含むゲーム画像データを生成して、全体処理にリターンする。この第1実施例では、識別画像は、緑色のマーカと現在のゲームフレーム数の文字列である。現在のゲームフレーム数は、ゲームフレーム数データ304cが示すゲームフレーム数である。
【0159】
また、ステップS43では、識別画像描画フラグ304jがオンであるかどうかを判断する。ステップS43で“NO”であれば、つまり、識別画像描画フラグ304jがオフであれば、ステップS49に進む。一方、ステップS43で“YES”であれば、つまり、識別画像描画フラグ304jがオンであれば、ステップS45で、識別画像の描画を終了するかどうかを判断する。ここでは、プロセッサ20は、識別画像の描画時間のカウントを終了したかどうかを判断する。
【0160】
ステップS45で“NO”であれば、つまり、識別画像の描画を終了しない場合には、ステップS41に進む。一方、ステップS45で“YES”であれば、つまり、識別画像の描画を終了する場合には、ステップS47で、識別画像描画フラグ304jがオフして、ステップS49で、識別画像の画像データを含まないゲーム画像データを生成して、全体処理にリターンする。
【0161】
図14に示すように、ステップS51では、識別画像描画フラグ304jがオンであるかどうかを判断する。ステップS51で“YES”であれば、つまり、識別画像描画フラグ304jがオンであれば、ステップS59に進む。一方、ステップS51で“NO”であれば、つまり、識別画像描画フラグ304jがオフであれば、ステップS53で、識別画像の描画時間のカウントを開始し、ステップS55で、識別画像描画フラグ304jをオンし、ステップS57で、識別画像の画像データを含むゲーム画像データを生成して、全体処理にリターンする。
【0162】
また、ステップS59では、識別画像の描画の終了かどうかを判断する。ステップS59で“NO”であれば、ステップS57に進む。一方、ステップS59で“YES”であれば、ステップS61で、識別画像描画フラグ304jをオフし、ステップS63で、エラーフラグ304kをオフし、ステップS65で、識別画像の画像データを含まないゲーム画像データを生成して、全体処理にリターンする。
【0163】
図15に示すように、プロセッサ40は、解析および特定処理を開始すると、ステップS101で、動画データをデコードし、ステップS103で、最初の動画フレームに対応する画像データをVRAMに展開し、ステップS105で、VRAMに展開した画像データの所定の領域(すなわち、表示領域120aに相当する範囲)において緑色のマーカを検索する。
【0164】
続くステップS107では、表示領域120aに緑色のマーカが描画されているかどうかを判断する。ステップS107で“NO”であれば、つまり、表示領域120aに緑色のマーカが描画されていなければ、ステップS117に進む。一方、ステップS107で“YES”であれば、つまり、表示領域120aに緑色のマーカが描画されていれば、ステップS109で、VRAMに展開した画像データの他の所定の領域(すなわち、表示領域120bに相当する範囲)において文字認識処理(この第1実施例では、OCR処理)を実行する。
【0165】
次のステップS111では、VRAMに展開した画像データに対応する動画フレームの録画時間および対応するゲームフレーム数を特定し、ステップS113で、特定したゲームフレーム数に対応するゲーム時間から、特定した録画時間を減算して時間のずれを算出し、ステップS115で、ステップS113で算出した時間のずれを記憶して、解析および特定処理を終了する。つまり、プロセッサ40は、時間のずれデータ504gをRAM42に記憶する。ただし、特定したゲームフレーム数は、文字認識処理で認識されたゲームフレーム数である。後述するステップS129も同様である。
【0166】
ステップS117では、動画データの最初の30秒分を走査したかどうかを判断する。ステップS117で“NO”であれば、つまり、動画データの最初の30秒分を走査し終えていなければ、ステップS119で、所定数(この第1実施例では、5)先の動画フレームに対応する画像データをVRAMに展開して、ステップS105に戻る。一方、ステップS117で“YES”であれば、つまり、動画データの最初の30秒分を走査すれば、
図16に示すステップS121で、動画データの末尾から30秒手前の動画フレームに対応する画像データをVRAMに展開する。
【0167】
次のステップS123では、VRAMに展開した動画データの表示領域120aに相当する範囲において緑色のマーカを検索する。続くステップS125では、表示領域120aに緑色のマーカが描画されているかどうかを判断する。ステップS125で“NO”であれば、ステップS135に進む。一方、ステップS125で“YES”であれば、ステップS127で、VRAMに展開した画像データの表示領域120bにおいて文字認識処理を実行する。続いて、ステップS129では、VRAMに展開した画像データに対応する動画フレームの録画時間および対応するゲームフレーム数を特定し、ステップS131で、時間のずれを算出し、ステップS133で、ステップS131で算出した時間のずれを記憶して、解析および特定処理を終了する。
【0168】
ステップS135では、動画データの末尾の30秒分を走査したかどうかを判断する。ステップS135で“NO”であれば、つまり、動画データの末尾の30秒分を走査し終えていなければ、ステップS137で、所定数(この第1実施例では、5)先の動画フレームをVRAMに展開して、ステップS123に戻る。一方、ステップS135で“YES”であれば、つまり、動画データの末尾の30秒分を走査すれば、解析および特定処理を終了する。
【0169】
図17に示すように、プロセッサ40は、閲覧処理を開始すると、ステップS201で、閲覧画面200を表示装置50に表示する。ここでは、初期の閲覧画面200が表示される。次のステップS203では、動画の再生指示が有るかどうかを判断する。ここでは、プロセッサ40は、表示領域208に表示された操作パネルを用いて再生が指示されたかどうかを判断する。
【0170】
ステップS203で“YES”であれば、つまり、動画の再生が指示されれば、ステップS209に進む。一方、ステップS203で“NO”であれば、つまり、動画の再生が指示されなければ、ステップS205で、録画時間すなわち再生位置が指示されたかどうかを判断する。
【0171】
ステップS205で“NO”であれば、つまり、録画時間が指示されていなければ、ステップS203に戻る。一方、ステップS205で“YES”であれば、つまり、録画時間が指示されれば、ステップS207で、開発者の指示に応じて、録画時間すなわち再生位置を指定して、ステップS203に戻る。
【0172】
ステップS209では、動画の再生を開始する。プロセッサ40は、再生位置が指定されていない場合には、最初から動画データ504fの再生を開始し、再生位置が指定されている場合には、指定された再生位置から動画データ504fの再生を開始する。動画データ504fを再生した動画像は、閲覧画面200の表示領域202に表示される。
【0173】
次のステップS211では、時間のずれデータ504gを用いて、現在時間に応じたゲーム時間を特定する。現在時間に応じたゲーム時間を特定(または、算出)する方法は上述したとおりである。続くステップS213では、特定したゲーム時間に対応するゲームフレーム数のパラメータログを出力し、ステップS215では、特定したゲーム時間に対応するゲームフレーム数のテキストログを出力する。したがって、再生されている動画データ504fの動画フレームの録画時間に対応するゲーム時間のパラメータログが閲覧画面200の表示領域206に表示され、そのゲーム時間のテキストログが閲覧画面200の表示領域204に表示される。つまり、ログと動画が同期された閲覧画像が表示される。なお、プロセッサ40は、時間対応情報ログデータ504eを参照して、ゲーム時間に対応するゲームフレーム数を特定する。
【0174】
そして、ステップS217では、閲覧終了かどうかを判断する。ここでは、プロセッサ40は、閲覧終了が指示されたかどうかを判断する。ステップS217で“NO”であれば、つまり、閲覧終了でなければ、ステップS219で、その他の処理を実行して、ステップS211に戻る。その他の処理として、プロセッサ40は、開発者等の指示に応じて、再生位置を変更したり、一時停止したり、早送り再生したり、巻き戻し再生したりする。一方、ステップS217で“YES”であれば、つまり、閲覧終了であれば、閲覧処理を終了する。
【0175】
この第1実施例によれば、所定の場合に、ゲーム画像を表示するタイミングとしてゲームフレーム数を示す識別画像を含めてこのゲーム画像を表示するので、ゲーム画像をキャプチャした動画データに識別画像の画像データを含ませることができる。このため、動画に含まれる識別画像を検出することにより、動画フレームの録画時間およびこの録画時間に対応するゲームフレーム数を特定し、特定した録画時間とゲームフレーム数に基づいて、ログと動画を同期させて閲覧することができる。つまり、動画がいつキャプチャされたものか特定でき、ログと同期させて閲覧することができるので、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【0176】
なお、第1実施例では、識別画像として、緑色のマーカおよびゲームフレーム数の文字列を表示するようにしたが、これは走査する場合のOCR処理によるプロセッサの負荷を軽減するためである。プロセッサの負荷を考慮しない場合には、緑色のマーカを省略し、ゲームフレーム数の文字列のみを表示するようにしてもよい。かかる場合には、
図15に示したステップS105、S107、S125およびS127を削除し、ステップS109とS111の間と、ステップS129とS131の間のそれぞれに、ゲームフレーム数を検出したかどうかを判断する処理が追加される。また、ステップS109とS111の間の処理において、ゲームフレーム数を検出した場合に、ステップS111に進み、ゲームフレーム数を検出しない場合に、ステップS117に進む。ステップS129とS131の間の処理において、ゲームフレーム数を検出した場合に、ステップS135に進み、ゲームフレーム数を検出しない場合に、ステップS135に進む。
【0177】
また、第1実施例では、キャプチャが開始されたとき、および、ゲームプログラムの実行中にエラーが発生した場合に、識別画像を表示するようにしたが、限定される必要はない。プレイヤキャラクタオブジェクトが予め決められた場所に移動した場合またはプレイヤが識別画像の表示(または、描画)を指示した場合に、識別画像を表示するようにしてもよい。かかる場合には、情報処理装置では、予め決定された場所に移動してからその場所を離れるまでの動画データが生成される。また、識別画像の表示を指示した場合には、エラーが発生した場合と同様に、識別画像の表示を終了した位置を末尾とし、末尾から第2所定時間遡った位置を先頭とする動画データが生成される。
【0178】
さらに、第1実施例では、ゲーム装置でゲーム画像をキャプチャするようにしたが、ゲーム画像に対応するゲーム画像データを情報処理装置に送信して、情報処理装置側でゲーム画像データを録画するようにしてもよい。かかる場合には、情報処理装置に、ゲーム画像データを録画するための機能が設けられたり、キャプチャ装置が接続されたりする。この場合、情報処理装置は、自機が備える機能によって動画データを取得したり、自機に接続されたキャプチャ装置から動画データを取得したりする。また、情報処理装置側で録画を開始したときに、情報処理装置がゲーム装置に録画を開始したことを通知する。
【0179】
また、表示装置に表示されたゲーム画面をビデオカメラで撮影した動画データを情報処理装置に送信するようにしてもよい。つまり、情報処理装置は、ビデオカメラから動画データを取得する。ただし、ビデオカメラで撮影された動画データのファイル形式がMP4でない場合には、ファイル形式がMP4に変換される。ビデオカメラで撮影を行う場合には、プレイヤの操作によって、ゲーム装置に録画を開始したことが通知される。また、ビデオカメラでゲーム画面を撮影した場合には、ゲーム画面の原点の位置が動画フレームの原点の位置とずれることがある。原点の位置がずれている場合には、識別画像を検索する範囲がずれに応じて変更される。
【0180】
さらにまた、第1実施例では、所定の場合に、ゲーム画像を表示するタイミングとしてゲームフレーム数を示す識別画像を含めてこのゲーム画像を表示するようにしたが、ゲームフレーム数に代えて、ゲーム時間を示す識別画像を含めてゲーム画像を表示するようにしてもよい。かかる場合には、解析および特定処理において、録画時間に対応するゲーム時間が特定され、時間のずれが算出される。このようにしても、ログと動画を同期させて閲覧することができる。
【0181】
なお、第1実施例では、可変フレームレートの場合を考慮して、動画の再生時間に対応するゲーム時間を特定し、ゲーム時間に対応するゲームフレーム数のパラメータログおよびテキストログを表示するようにしたが、フレームレートが固定の場合には、他の方法で、動画の再生時間に対応するゲームフレーム数のパラメータログおよびテキストログを表示することができる。後述するように、この場合には、情報処理装置14は、時間対応情報ログを使用しないため、ゲーム装置12は、時間対応情報ログを生成および出力しない。
【0182】
具体的には、再生中の動画データの現在時間から、ゲームフレーム数が特定された動画フレームの録画時間(以下、「特定時間」という)を減算した時間(以下、「差分時間」という)と、ゲーム装置12におけるゲーム画像のフレームレートと、動画のフレームレートを用いて、差分時間に相当する動画フレーム数が算出される。
【0183】
ゲーム装置12におけるゲーム画像のフレームレート(以下、「第1フレームレート」という)と、動画データのフレームレート(以下、「第2フレームレート」という)が同じである場合には、特定したゲームフレーム数に、差分時間に相当する動画フレーム数を加えたゲームフレーム数が現在時間に対応するゲームフレーム数である。なお、第1フレームレートおよび第2フレームレートは、動画およびログを取得した後に、それらに含まれる情報から取得され、情報処理装置14に設定される。
【0184】
また、第1フレームレートと第2フレームレートが異なる場合には、差分時間に相当する動画フレーム数がフレームレートの違いに応じて変換される。具体的には、第1フレームレートを第2フレームレートで割った数が、差分時間に相当する動画フレーム数に乗算される。そして、特定したゲームフレーム数に、差分時間に相当する動画フレーム数を変換した値を加えたゲームフレーム数が現在時間に対応するゲームフレーム数である。ただし、現在時間が特定時間よりも前である場合には、差分時間に相当する動画フレーム数はマイナスの値である。
【0185】
第1フレームレートと第2フレームレートが同じ場合と異なる場合のいずれの場合にも、算出した現在時間に対応するゲームフレーム数についてのパラメータログとテキストログが閲覧画面200に表示される。
【0186】
<第2実施例>
第2実施例のゲーム開発支援システム10は、ゲーム装置12で表示され、情報処理装置14で検索される識別画像が異なる以外は第1実施例と同じであるため、異なる内容について説明し、重複した説明については省略することとする。
【0187】
図18は第2実施例のゲーム画面100の左上部を拡大した拡大図である。
図18に示すように、第2実施例では、表示領域120は第1実施例の表示領域120aと同じに設定される。
図18では、表示領域120を分かり易く示すために四角枠を表示してあるが、実際のゲーム画面100においては、四角枠は表示しなくてもよい。
【0188】
また、第2実施例では、描画時間すなわち第1所定時間(具体的には、1.1秒)において、識別画像として、異なる色のマーカが順番に表示される。つまり、所定の色のパターンが表示される。具体的には、描画時間の最初の1秒間において、識別画像として赤色のマーカが表示領域120に表示される。次の0.05秒間において、識別画像として黄色のマーカが表示領域120に表示される。さらに次の0.05秒間において、識別画像として緑色のマーカが表示領域120に表示される。
【0189】
なお、第2実施例では、描画時間が1秒の時点では赤色のマーカが表示領域120に表示されるが、黄色のマーカが表示されてもよい。また、第2実施例では、描画時間が1.05秒の時点では黄色のマーカが表示領域120に表示されるが、緑色のマーカが表示されてもよい。
【0190】
ただし、第2実施例の表示領域120は、第1実施例の表示領域120aとは別の位置に設けられてもよい。かかる場合には、情報処理装置14において色すなわち識別画像を検索する範囲が別の位置に設定された表示領域120に設定される。
【0191】
また、第2実施例では、各色のマーカの描画を開始するときに、マーカの色とこの色のマーカの描画を開始したときのゲームフレーム数(以下、「フレーム数対応情報」という)が情報処理装置14に通知される。たとえば、赤色のマーカの描画を開始したときのゲームフレーム数が7343である場合には、フレーム数対応情報として赤色と7343を示す情報が情報処理装置14に通知される。
【0192】
赤色のマーカは1秒間表示されるため、ゲームフレームが1/60秒である場合には、黄色のマーカの描画を開始したときのゲームフレーム数は7403である。したがって、黄色のマーカの描画を開始したとき、フレーム対応情報として黄色と7403を示す情報が情報処理装置14に通知される。
【0193】
黄色のマーカは0.05秒間表示されるため、ゲームフレームが1/60秒である場合には、緑色のマーカの描画を開始したときのゲームフレーム数は7406である。したがって、緑色のマーカの描画を開始したとき、フレーム対応情報として緑色と7406を示す情報が情報処理装置14に通知される。
【0194】
このように、第2実施例では、表示される識別画像が第1実施例と異なるため、情報処理装置14で実行される解析および特定処理の一部が第1実施例の解析および特定処理とは異なる。ここで、第2実施例の解析および特定処理について説明する。
【0195】
解析および特定処理においては、まず、動画データがMP4のファイル形式に従ってデコードされる。デコードされた動画データの先頭の動画フレームに対応する画像データがVRAMに展開され、VRAMに展開された画像データのうち、表示領域120に相当する範囲に赤色、黄色または緑色のマーカが表示されているかどうかが判断される。つまり、表示領域120に相当する範囲の画素の色値(すなわち、RGBの値)が赤色、黄色または緑色を示すかどうかが判断される。
【0196】
表示領域120に相当する範囲において、赤色、黄色または緑色のマーカが検出されると、ゲーム装置12から通知されたフレーム数対応情報を参照して、検出されたマーカの色のゲームフレーム数が、この色のマーカが検出された画像データに対応する動画フレームの録画時間に対応して特定される。
【0197】
上述したように、赤色のマーカは1秒間表示され、黄色のマーカおよび緑色のマーカはそれぞれ0.05秒間表示される。したがって、赤色のマーカが検出された動画フレームでは、ゲームフレーム数が最大で1秒分(第2実施例では、60ゲームフレーム)ずれる可能性がある。これに対して、黄色のマーカおよび緑色のマーカが検出された動画フレームでは、ゲームフレーム数が最大で0.05秒分(3ゲームフレーム)ずれる可能性がある。
【0198】
このため、第2実施例では、動画フレームの録画時間とゲームフレーム数のずれをできる限り少なくするために、表示領域120に相当する範囲において、緑色のマーカが検出された場合には、黄色および赤色のマーカも検出された場合であっても、緑色のマーカが検出された画像データに対応する動画フレームの録画時間およびこの録画時間に対応するゲームフレーム数が特定される。このゲームフレーム数は、ゲーム装置12から通知されたフレーム数対応情報のうち、緑色に対応するゲームフレーム数である。
【0199】
ただし、黄色および緑色のマーカが検出された場合には、黄色のマーカが検出された画像データに対応する動画フレームの録画時間およびこの録画時間に対応するゲームフレーム数を特定するようにすることもできる。このゲームフレーム数は、ゲーム装置12から通知されたフレーム数対応情報のうち、黄色に対応するゲームフレーム数である。
【0200】
表示領域120に相当する範囲において、緑色のマーカが検出されない場合には、黄色のマーカが検出されていれば、赤色のマーカも検出された場合であっても、黄色のマーカが検出された画像データに対応する動画フレームの録画時間およびこの録画時間に対応するゲームフレーム数が特定される。このゲームフレーム数は、ゲーム装置12から通知されたフレーム数対応情報のうち、黄色に対応するゲームフレーム数である。
【0201】
表示領域120に相当する範囲において、赤色のマーカのみが検出された場合には、最初に赤色のマーカが検出された動画フレームの録画時間およびこの録画時間に対応するゲームフレーム数が特定される。このゲームフレーム数は、ゲーム装置12から通知されたフレーム数対応情報のうち、赤色に対応するゲームフレーム数である。
【0202】
なお、最初に赤色のマーカが検出された動画フレームの録画時間に対応してゲームフレーム数を特定するのは、ゲーム画像において赤色のマーカは1秒間表示され、複数回検出される場合があるからである。
【0203】
第2実施例においても、識別画像はゲーム画像の所定位置の表示領域120に描画され、画像解析の処理においては、この表示領域120に相当する範囲に描画されたマーカの色を検出するだけで良いため、簡易な構成で識別画像を特定または検出することができる。したがって、識別画像を含む画像データに対応する動画フレームの録画時間および対応するゲームフレーム数を容易に特定することができる。
【0204】
一方、表示領域120に相当する範囲において、赤色、黄色または緑色のマーカが検出されない場合には、所定数(たとえば、5)先の動画フレームについて赤色、黄色または緑色のマーカが表示されているかどうかが判断される。
【0205】
動画データの先頭から30秒分が走査され、赤色、黄色または緑色のマーカが検出されない場合には、動画データの末尾の30秒分について走査される。動画データの末尾の30秒分についての走査は、先頭の動画フレームを含む30秒分の走査と同じである。
【0206】
したがって、第2実施例では、ゲーム装置12のRAM22のプログラム記憶領域302に記憶される識別画像描画プログラム302iは、録画を開始したことおよびエラーが発生したことに応じて、所定の色のパターンをゲーム装置12に表示する。
【0207】
また、第2実施例では、ゲーム装置12のRAM22のプログラム記憶領域302には、各色の描画(または、表示)を開始するタイミングにおいて、表示する色とこの色の描画を開始するゲームフレーム数すなわちフレーム数対応情報を情報処理装置14に通知するためのプログラムがさらに設けられる。このプログラムが実行される場合には、通信プログラム302bも実行される。
【0208】
また、第2実施例では、情報処理装置14のRAM42のプログラム記憶領域502に記憶される画像解析プログラム502hは、動画フレームに対応する画像データにおける表示領域120に相当する範囲に表示された赤色、黄色または緑色のマーカを検出する。また、特定プログラム502iは、緑色のマーカが検出された場合には、その動画フレームの録画時間と、この録画時間に対応して、ゲーム装置12から通知されたフレーム数対応情報のうち、緑色に対応するゲームフレーム数を特定する。緑色のマーカが検出されずに黄色のマーカが検出された場合には、その動画フレームの録画時間と、この録画時間に対応して、ゲーム装置12から通知されたフレーム数対応情報のうち、黄色に対応するゲームフレーム数を特定する。赤色のマーカのみが検出された場合には、最初に赤色のマーカが検出された動画フレームの録画時間と、この録画時間に対応して、ゲーム装置12から通知されたフレーム数対応情報のうち、赤色に対応するゲームフレーム数を特定する。
【0209】
なお、動画フレームの録画時間とゲームフレーム数に対応するゲーム時間のずれが0.05秒以下であれば、ログと動画の同期は取れているものとみなすことができる。また、赤色のマーカのみが検出された場合であっても、実際には、録画時間とゲーム時間が1秒ずれることはほとんどないため、このような場合であっても、ログと動画の同期は取れているものとみなすことができる。
【0210】
図19および
図20は第2実施例のゲーム画像生成処理の一部を示すフロー図である。
図19および
図20に示すゲーム画像生成処理は、
図13および
図14に示したゲーム画像生成処理の一部を変更した処理である。
図19および
図20を参照して、第2実施例のゲーム画面生成処理を説明するが、第1実施例のゲーム画像生成処理と同じ処理については図示および説明を省略する。
【0211】
図19に示すように、ステップS39とステップS41の間に、ステップS301が設けられ、ステップS41の後に、ステップS303とステップS305が設けられ、ステップS45で“NO”とステップS41の間に、ステップS307、S309、S311およびS313が設けられる。
【0212】
具体的には、ステップS39の処理を実行すると、ステップS301で、描画(または、表示)するマーカの色を赤色に設定して、ステップS41に進む。ステップS41では、設定された色のマーカを表示領域120に含むゲーム画像が生成される。ステップS41の処理を実行すると、ステップS303で、現在の色のマーカの描画を開始したタイミングであるかどうかを判断する。
【0213】
ステップS303で“YES”であれば、つまり、現在の色のマーカの描画を開始したタイミングであれば、ステップS305で、色とゲームフレーム数の情報すなわちフレーム数対応情報を情報処理装置14に通知して、全体処理にリターンする。ただし、ステップS305で通知されるゲームフレーム数は、現在のゲームフレーム数である。
【0214】
一方、ステップS303で“NO”であれば、つまり、現在の色のマーカの描画を開始したタイミングでなければ、全体処理にリターンする。
【0215】
また、ステップS45で“NO”であれば、ステップS307で、識別画像の描画開始から1.05秒経過したかどうかを判断する。ステップS307で“YES”であれば、つまり、識別画像の描画開始から1.05秒経過すれば、ステップS309で、描画するマーカの色を緑色に設定して、ステップS41に進む。
【0216】
一方、ステップS307で“NO”であれば、つまり、識別画像の描画開始から1.05秒経過していなければ、ステップS311で、識別画像の描画開始から1秒経過したかどうかを判断する。
【0217】
ステップS311で“NO”であれば、つまり、識別画像の描画開始から1秒経過していなければ、ステップS41に進む。一方、ステップS311で“YES”であれば、つまり、識別画像の描画開始から1秒経過すれば、ステップS313で、描画するマーカの色を黄色に設定して、ステップS41に進む。
【0218】
また、
図20に示すように、ステップS55とステップS57の間に、ステップS351が設けられ、ステップS57の後に、ステップS353とステップS355が設けられ、ステップS59で“NO”とステップS57の間に、ステップS357、S359、S361およびS363が設けられる。以下、これらの処理について説明するが、
図19を参照して説明した内容と同じであるため、簡単に説明することにする。
【0219】
図20に示すように、ステップS55の処理を実行すると、ステップS351で、描画するマーカの色を赤色に設定して、ステップS41に進む。ステップS41の処理を実行すると、ステップS353で、現在の色のマーカの描画を開始したタイミングであるかどうかを判断する。
【0220】
ステップS353で“YES”であれば、ステップS355で、色とゲームフレーム数の情報を情報処理装置14に通知して、全体処理にリターンする。一方、ステップS353で“NO”であれば、全体処理にリターンする。
【0221】
また、ステップS59で“NO”であれば、ステップS357で、識別画像の描画開始から1.05秒経過したかどうかを判断する。ステップS357で“YES”であれば、ステップS359で、描画するマーカの色を緑色に設定して、ステップS57に進む。一方、ステップS357で“NO”であれば、ステップS361で、識別画像の描画開始から1秒経過したかどうかを判断する。
【0222】
ステップS361で“NO”であれば、ステップS57に進む。一方、ステップS361で“YES”であれば、ステップS363で、描画するマーカの色を黄色に設定して、ステップS57に進む。
【0223】
図21-
図23は第2実施例の情報処理装置14のプロセッサ40の解析および特定処理の限定しない一例を示すフロー図である。以下、第2実施例の解析および特定処理について説明するが、第1実施例の解析および特定処理と同じ処理については簡単に説明することとする。
【0224】
図21に示すように、プロセッサ40は、解析および特定処理を開始すると、ステップS401で、動画データをデコードし、ステップS403で、最初の動画フレームに対応する画像データをVRAMに展開し、ステップS405で、VRAMに展開した画像データの所定の領域(すなわち、表示領域120に相当する範囲)において赤色、黄色または緑色のマーカを検索する。
【0225】
続くステップS407では、表示領域120に赤色、黄色または緑色のマーカが描画されているかどうかを判断する。ステップS407で“NO”であれば、つまり、表示領域120に赤色、黄色または緑色のマーカが描画されていなければ、
図22に示すステップS427に進む。一方、ステップS407で“YES”であれば、つまり、表示領域120に赤色、黄色または緑色のマーカが描画されていれば、ステップS409で、マーカの色が赤色かどうかを判断する。
【0226】
ステップS409で“YES”であれば、つまり、マーカの色が赤色であれば、ステップS411で、録画時間を特定するとともに、フレーム数対応情報を参照して、赤色に対応するゲームフレーム数を特定して、ステップS417に進む。録画時間は、VRAMに展開されている画像データに対応する動画フレームの録画時間である。このことは、後述する、ステップS415、S421、S439、S443およびS447について同じである。
【0227】
一方、ステップS409で“NO”であれば、つまり、マーカの色が赤色でなければ、ステップS413で、マーカの色が黄色であるかどうかを判断する。ステップS413で“YES”であれば、つまり、マーカの色が黄色であれば、ステップS415で、録画時間を特定するとともに、フレーム数対応情報を参照して、黄色に対応するゲームフレーム数を特定して、ステップS417に進む。
【0228】
ステップS417では、時間のずれを算出し、ステップS419で、時間のずれを記憶して、ステップS427に進む。つまり、ステップS419では、プロセッサ40は、時間のずれデータ504gを記憶する。基本的には、ステップS419では、時間のずれデータ504gが更新されるが、ステップS411の処理が既に(または、一度)実行されている場合には、ステップS411、ステップS417およびS419の処理はスキップされる。これは、最初に赤色のマーカが検出された画像データに対応する動画フレームの録画時間に対応するゲームフレーム数を特定するためである。これらのことは、後述するステップS439、ステップS451およびS453についても同じである。
【0229】
一方、ステップS413で“NO”であれば、つまり、マーカの色が緑色であれば、ステップS421で、録画時間を特定するとともに、フレーム数対応情報を参照して、緑色に対応するゲームフレーム数を特定して、ステップS423で、時間のずれを算出し、ステップS425で、時間のずれを記憶して、解析および特定処理を終了する。ステップS425では、時間のずれデータ504gが更新される。後述するステップS447も同じである。
【0230】
図22に示すように、ステップS427では、動画データの最初の30秒分を走査したかどうかを判断する。ステップS427で“NO”であれば、ステップS429で、所定数(この第2実施例では、5)先の動画フレームをVRAMに展開して、
図21に示したステップS405に戻る。一方、ステップS427で“YES”であれば、
図23に示すステップS431で、動画データの末尾から30秒手前の動画フレームをVRAMに展開する。
【0231】
次のステップS433では、VRAMに展開した動画フレームの表示領域120において赤色、黄色または緑色のマーカを検索する。続くステップS435では、表示領域120に相当する範囲に赤色、黄色または緑色のマーカが有るかどうかを判断する。ステップS435で“NO”であれば、ステップS455に進む。一方、ステップS435で“YES”であれば、ステップS437で、マーカの色が赤色であるかどうかを判断する。
【0232】
ステップS437で“YES”であれば、ステップS439で、録画時間を特定するとともに、フレーム数対応情報を参照して、赤色に対応するゲームフレーム数を特定し、ステップS451に進む。一方、ステップS437で“NO”であれば、ステップS441で、マーカの色が黄色であるかどうかを判断する。
【0233】
ステップS441で“NO”であれば、ステップS443で、録画時間を特定するとともに、フレーム数対応情報を参照して、緑色に対応するゲームフレーム数を特定する。続いて、ステップS445で、時間のずれを算出し、ステップS447で、時間のずれを記憶して、解析および特定処理を終了する。一方、ステップS441で“YES”であれば、ステップS449で、録画時間を特定するとともに、フレーム数対応情報を参照して、黄色に対応するゲームフレーム数を特定し、ステップS451に進む。ステップS451では、時間のずれを算出し、ステップS453で、時間のずれを記憶して、ステップS455に進む。
【0234】
ステップS455では、動画データの末尾から30秒分を走査したかどうかを判断する。ステップS455で“NO”であれば、ステップS457で、所定数の動画フレームをVRAMに展開して、ステップS433に戻る。一方、ステップS455で“YES”であれば、解析および特定処理を終了する。
【0235】
第2実施例においても、第1実施例と同様に、ログと同期させて閲覧することができるので、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【0236】
なお、第2実施例では、黄色および緑色のマーカが描画される時間は赤色のマーカが描画される時間よりも短いため、動画データを走査するときに赤色のマーカを検出した場合には、走査する動画フレームの間隔を短くしてもよい。このようにすれば、黄色または緑色のマーカを検出する確率が上がり、ログと動画をより正確に同期させることができる。
【0237】
また、第2実施例では、各色のマーカの描画を開始するときに、マーカの色とこの色のマーカの描画を開始したときのゲームフレーム数を情報処理装置14に通知するようにしたが、マーカの色とマーカの描画を開始したときのゲーム時間を情報処理装置14に通知するようにしてもよい。かかる場合には、解析および特定処理において、録画時間に対応するゲーム時間が特定され、時間のずれが算出される。このようにしても、ログと動画を同期させて閲覧することができる。
【0238】
さらに、詳細な説明は省略するが、第1実施例における変形例は、第2実施例においても適宜採用することができる。
【0239】
<第3実施例>
第3実施例のゲーム開発支援システム10は、複数のゲーム装置12で通信ゲームのゲームプログラムを実行した場合に、各ゲーム装置12の各々についてのログと動画を同期させて表示するようにした以外は、第1実施例および第2実施例のゲーム開発支援システム10と同じである。ここでは、第1実施例および第2実施例と同じ内容については説明を省略し、異なる内容についてのみ説明することとする。
【0240】
図24に示すゲーム開発支援システム10は、2台のゲーム装置12および情報処理装置14を含む。第3実施例では、2台のゲーム装置12は互いに通信し、各ゲーム装置12において、通信ゲームのゲームプログラムが実行される。また、2台のゲーム装置12は、それぞれ、情報処理装置14と通信し、ログと動画を情報処理装置14に送信する。
【0241】
情報処理装置14において、各ゲーム装置12について、ログと動画を同期して表示する方法は、第1実施例および第2実施例で説明したとおりである。図示は省略するが、第3実施例では、
図5に示した閲覧画面200が各ゲーム装置12について一覧で表示される。ただし、表示領域208すなわち操作パネルは、各閲覧画面200に設けなくてよい。
【0242】
第3実施例では、さらに、各ゲーム装置12間のログと動画を同期させるようにしてある。一例として、各ゲーム装置12で計時される時刻を一致させておき、ゲーム装置12からログを送信する場合に、ゲーム装置12で計時される時刻(すなわち、時分秒)の情報(説明の都合上、「第1の時刻の情報」という)を付加して情報処理装置14に通知することで、第1の時刻の情報を用いて各ゲーム装置12間のログと動画を同期させる。ただし、第1の時刻の情報は、動画に付加されてもよい。
【0243】
または、各ゲーム装置12からログを情報処理装置14に送信し、情報処理装置14でログを受信したときに、各ゲーム装置12のログに情報処理装置14で計時される時刻の情報(説明の都合上、「第2の時刻の情報」という)を付加することで、第2の時刻の情報を用いて各ゲーム装置12間のログと動画を同期させる。ただし、第2の時刻の情報は、動画に付加されてもよい。
【0244】
これらのことは、通信ゲームを行うゲーム装置12が3台以上の場合についても同様である。
【0245】
第3実施例によれば、通信ゲームのゲームプログラムを実行する複数のゲーム装置の各々においてログと動画を同期して表示させるとともに、複数のゲーム装置間においても、ログと動画を同期して表示させることができる。したがって、第1実施例および第2実施例と同様に、開発中のゲームプログラムの動作を確認する際の手間を軽減させることができる。
【0246】
なお、上述の各実施例で示したゲーム装置の構成、各種の画面および具体的な数値は単なる例示であり、限定されるべきでなく、実際の製品に応じて適宜変更可能である。
【0247】
また、同じ効果または結果が得られる場合には、フロー図に示した各ステップの順番は適宜変更されてもよい。
【符号の説明】
【0248】
10 …ゲーム開発支援システム
12 …ゲーム装置
14 …情報処理装置
20,40 …プロセッサ
22,42 …RAM
24 …フラッシュメモリ
26,46 …通信モジュール
28,48 …入力装置
30,50 …表示装置
34 …スピーカ
44 …HDD