(57)【要約】      （修正有）【課題】既存のプログラムデータを変更することなく多言語対応を容易にすることができるゲームプログラムを提供する。【解決手段】携帯端末１０にインストールされて実行されるゲームプログラム３２は、例えば日本語テキストデータで記述されたメインプログラム３４と、英語テキストデータと識別情報（ハッシュ値）とが対応付けられた言語データ３６を備える。ゲームプログラム３２は、表示部２４に表示させる言語の設定を行う言語設定ステップと、表示させる言語として英語が設定された場合に、メインプログラムに含まれる日本語テキストデータに対してハッシュ値を生成するキー生成ステップと、生成されたハッシュ値をキーとして対応する識別情報を含む英語テキストデータを抽出して、日本語テキストと置き換えて英語テキストを表示部２４に表示させるデータ抽出ステップと、をコンピュータに実行させる。【選択図】図１
2019180965.tif 000002
【特許請求の範囲】
【請求項１】
表示部を備えたコンピュータに実行させるゲームプログラムであって、
第１の言語による第１の表示用データで記述されたメインプログラムと、
前記第１の言語とは異なる第２の言語による第２の表示用データと識別情報とが対応付けられた言語データとを備えており、
前記表示部に表示させる言語の設定を行う言語設定ステップと、
表示させる言語として前記第２の言語が設定された場合に、前記メインプログラムに含まれる前記第１の表示用データに対してデータ処理を行うことで検索キーを生成するキー生成ステップと、
生成されたキーに対応する識別情報を含む第２の表示用データを抽出して、前記第１の表示用データを置き換えて前記表示部に表示させるデータ抽出ステップと、
を前記コンピュータに実行させる、ゲームプログラム。
【請求項２】
前記表示用データはテキストデータであることを特徴とする請求項１記載のゲームプログラム。
【請求項３】
前記表示用データは、テキストを含む画像データであることを特徴とする請求項１記載のゲームプログラム。
【請求項４】
前記データ処理はハッシュ化であることを特徴とする、請求項１〜３のいずれか１項に記載のゲームプログラム。
【請求項５】
前記検索キーに対応する識別情報を有する前記第２の表示用データが存在しない場合には、前記第１の表示用データにて表示出力することを特徴とする、請求項１記載のゲームプログラム。
【請求項６】
前記言語データは、前記第２の表示用データと前記識別情報とがシリアライズされていることを特徴とする、請求項１〜５のいずれか１項に記載のゲームプログラム。
【請求項７】
前記言語データは、表示させる言語として前記第２の言語が設定された場合に、前記コンピュータにダウンロードされることを特徴とする、請求項１〜６のいずれか１項に記載のゲームプログラム。
【請求項８】
第１の言語による第１の表示用データで記述されたメインプログラムと、前記第１の言語とは異なる第２の言語による第２の表示用データと識別情報とが対応付けられた言語データとを備えたコンピュータの制御方法であって、前記コンピュータが、
表示部に表示させる言語の設定を行う言語設定ステップと、
表示させる言語として前記第２の言語が設定された場合に、メインプログラムに含まれる前記第１の言語による第１の表示用データに対してデータ処理を行うことで検索キーを生成するキー生成ステップと、
生成されたキーに対応する識別情報を含む第２の表示用データを抽出して、前記第１の表示用データを置き換えて前記表示部に表示させるデータ抽出ステップと、
を実行することを特徴とする制御方法。
【請求項９】
ゲームを進行させる表示部を備えたコンピュータであって、
第１の言語による第１の表示用データで記述されたメインプログラムと、
前記第１の言語とは異なる第２の言語による第２の表示用データと識別情報とが対応付けられた言語データと、
前記表示部に表示させる言語の設定を行う言語設定部と、
表示させる言語として前記第２の言語が設定された場合に、前記メインプログラムに含まれる前記第１の表示用データに対してデータ処理を行うことで検索キーを生成するキー生成部と、
生成されたキーに対応する識別情報を含む第２の表示用データを抽出して、前記第１の表示用データを置き換えて前記表示部に表示させるデータ抽出部と、
を備えたことを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の言語に対応したゲームプログラムに関する。
【背景技術】
【０００２】
近年、携帯電話やタブレットといった携帯端末にゲームプログラムをインストールして、ゲームをプレイするユーザが増加している。このような携帯端末用のゲームプログラムは、日本国内のみならず外国においても利用されることが想定されており、携帯端末が販売され又は使用される地域に応じて、異なる言語で利用できるようにすることが好ましい。そのため、ゲームプログラムの中に、日本語のテキストデータとともに、当該日本語に対応する複数の外国語テキストデータを含めておき、ゲームをプレイするユーザが適宜の外国語を選択することで、外国語表示が可能となる。
【０００３】
多言語対応のゲームプログラムの例として、特許文献１では、設定言語の変更が指示された場合には、ゲームの進行を中断して言語選択画面を表示させ、言語が選択されるのを待ってから、変更後の言語にてゲームを再開するように構成されたゲームプログラムの発明が開示されている。また、特許文献２では、設定された言語に応じてゲーム用の画面中で使用される文字を表すラインデータを生成し、このラインデータによりディスプレイにラインを描画することでゲーム画面を表示させるゲームプログラムの発明が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−９７２８３号公報
【特許文献２】特開２００８−２２０５８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の多言語対応のゲームプログラムにおいては、ゲーム進行用のプログラムデータ（例えば、Ｌｕａのプログラム言語で記述されたファイル）を、利用可能な言語毎に複数準備しておき、使用言語が変更された場合には、選択された言語に対応するプログラムデータを読み出すことで、変更後の言語にてゲームを進行させていた。
【０００６】
そのため、表示されるテキストの内容を変更した場合には、全ての言語に対応するプログラムデータを変更する必要がある。全てのゲームプログラムにおいて言語テキストを修正しなければならず、最近のゲームプログラムはデータ量が大きいことから、修正作業の負担が大きなものとなっていた。
【０００７】
また、従来の多言語対応のゲームプログラムの別の態様として、言語毎にテキストデータ（辞書ファイル）を準備しておき、ゲーム進行用のプログラムデータ（例えば、Ｌｕａで記述されたファイル）には当該辞書ファイル内のテキストデータの識別情報が記述される。この場合、プログラムの進行にあたり当該識別情報をキーとして、辞書ファイルから対応する言語テキストを抽出することで、適宜の言語を表示出力する。
【０００８】
この構成によれば、ゲーム進行用のプログラムデータを直接編集する必要がないために修正作業をより効率よく行うことができるが、ゲーム進行用のプログラムデータにはゲーム進行時に表示される表示用テキストが含まれないことから、開発に当たっては別ファイルに保存される表示用テキストを参照する必要があり、ゲーム開発に不便が生じていた。
【０００９】
本発明は、上記に鑑みなされたものであり、既存のプログラムデータを変更することなく多言語対応を容易にすることができるゲームプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一態様に係るゲームプログラムは、表示部を備えたコンピュータに実行させるゲームプログラムであって、第１の言語による第１の表示用データで記述されたメインプログラムと、前記第１の言語とは異なる第２の言語による第２の表示用データと識別情報とが対応付けられた言語データとを備えており、前記表示部に表示させる言語の設定を行う言語設定ステップと、表示させる言語として前記第２の言語が設定された場合に、前記メインプログラムに含まれる前記第１の表示用データに対してデータ処理を行うことで検索キーを生成するキー生成ステップと、生成されたキーに対応する識別情報を含む第２の表示用データを抽出して、前記第１の表示用データを置き換えて前記表示部に表示させるデータ抽出ステップとを前記コンピュータに実行させる。これにより、既存のプログラムデータを変更することなく多言語対応を容易に行うことができる。
【発明の効果】
【００１１】
本発明によれば、第１の言語による第１の表示用データで記述されたメインプログラムと、前記第１の言語とは異なる第２の言語による第２の表示用データと識別情報とが対応付けられた言語データとを備えるようにしたから、既存のプログラムデータを変更することなく多言語対応を容易に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るシステムの構成図である。
【図２】メインプログラム（Ｌｕａファイル）の説明図である。
【図３】言語データの構成を示す説明図である。
【図４】言語データ（英語）の構成を示す説明図である。
【図５】日本語データと英語データとの対応関係を示す説明図である。
【図６】ゲームプログラムのシーケンスの一例を示す説明図である。
【図７】ゲームの表示画面の一例を示す説明図である。
【図８】言語設定画面を示す説明図である。
【図９】ゲームの表示画面の一例を示す説明図である。
【図１０】テキストデータの確認フローの一例を示す説明図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態に係るゲームプログラムについて、図面を参照して説明する。なお、同一または相当する構成要素には、同一の符号を付して重複した説明を省略する。
【００１４】
図１に示すように、本実施形態に係る携帯端末（例えば、携帯電話機、タブレット端末、パーソナルコンピュータ、スマートフォン、電子書籍リーダー、ウェアラブルコンピュータ、ゲーム用コンソール、ヘッドマウントディスプレイ、及びこれら以外の各種情報処理装置）１０は、通信ネットワーク１２を介して他の携帯端末１１と接続されている。また、携帯端末１０は、通信ネットワーク１２を介して各種コンテンツを提供するサーバ１４と接続されており、サーバ１４との間でゲームデータの送受信を行うこともできる。これにより、携帯端末１０において、他の携帯端末１１とともにオンラインゲームを行うことができる。
【００１５】
図１において、携帯端末１０は、制御部２０、入力部２２、表示部２４、通信部２６、ＲＯＭ２８及びＲＡＭ３０を備えている。制御部２０は、携帯端末１０の動作を統括的に制御するものであり、ＲＯＭ２８に記憶されたシステムプログラムを実行することにより、携帯端末１０の各種機能を実行する。また、制御部２０は、ＲＡＭ３０に記憶されたゲームプログラム３２を実行することにより、後述する言語設定部４０、ハッシュ化部４２、テキスト抽出部４４といった、ゲームを実行させるための各種機能を実行する。
【００１６】
入力部２２は、例えば携帯端末１０の前面に設けられたタッチ式パネルであり、ユーザからの各種操作入力を受け付けて、操作内容に応じた入力信号を制御部２０に出力する。表示部２４は、例えば液晶パネルや有機ＥＬパネルであり、後述するゲーム画面等の各種画面を表示する。通信部２６は、通信ネットワーク１２を通じて他の携帯端末１１やサーバ１４との間でデータの送受信を行う。
【００１７】
ＲＯＭ２８は、携帯端末１０の基本動作（通話等）を制御するための各種プログラム及び設定データが記憶されており、携帯端末１０の起動時に制御部２０によって読み出される。
【００１８】
ＲＡＭ３０は、ＲＯＭ２８から読み出された各種プログラム等のデータの他、ゲームプログラム３２等のアプリケーションプログラムや各種の設定データが記憶される。なお、ゲームプログラム３２のデータは、例えば通信部２６によって外部サーバからダウンロードすることで、ＲＡＭ３０に記憶される。
【００１９】
ゲームプログラム３２は、ゲームを実行するためのプログラムが記述されたメインプログラム３４と、外国語表示用のテキストが記述された言語データ３６を有しており、ゲームの進行に伴い適宜読み出される。メインプログラム３４は、例えばＬｕａにより作成することができるが、他のプログラミング言語を用いてメインプログラムを作成しても良い。
【００２０】
図２は、メインプログラム３４に含まれるテキストデータの一例を示したものである（なお、図２では、メインプログラム３４に含まれる関数等は省略している）。メインプログラム３４は、例えばゲームに含まれる複数のエリアの各々について設けられており、ゲームのキャラクタが、例えばあるエリアへ移動したことがトリガとなって、当該移動先のエリアに応じたメインプログラム（Ｌｕａファイル）を、サーバ１４から読み込むことで、ゲームが進行される。また、あるエリア用のメインプログラム（Ｌｕａファイル）の中でさらに、当該エリアで発生・進行するストーリーやクエストに関するＬｕａファイルを、サーバから読み込むようにしても良い。
【００２１】
メインプログラム３４には、ゲームの進行に伴い表示されるテキストが、日本語で記述されており、例えば、「いらっしゃい！  うちは、品揃えが豊富だよ。この薬なんかどうだい？」「この薬は、いくらだい？」「この薬は、３０円だよ。」といった日本語のテキストが含まれている。制御部２０は、ゲームの進行に応じて、これらのテキストを順次読み出して、表示部２４に表示させる。
【００２２】
図３で示すように、言語データ３６は、メインプログラム３４に記述されている日本語テキストに対応するテキストデータ（例えば、英語データ３６ａ、簡体字データ３６ｂ、韓国語データ３６ｃ）が、言語毎に設けられている。図４は、英語データ３６ａのデータ構成の一例を示した説明図であり、英語テキスト３７と識別情報３８とが対応付けられるように、例えばJSON型によりシリアライズされて記録されている。
【００２３】
シリアライズされた言語データ３６は、サーバ１２に記憶されており、プレイヤによって他の言語が設定された際に、対応する言語データ３６をサーバ１２から受信するように構成されている。これにより、ゲームのインストール時に全ての言語に対応する言語データ３６をインストールする必要がなく、最初にダウンロードされるゲームプログラム３２の容量を小さくすることができる。
【００２４】
図４の例では、「Welcome!  We have many goods.  How about this medicine?」の英文テキストに対して、「3ad8e1c5b0e7ea5a5efee2c30afa449e」の識別情報が対応付けられている。この識別情報３８としては、対応する日本語テキスト（「いらっしゃい！  うちは、品揃えが豊富だよ。この薬なんかどうだい？」）を、ＭＤ５等のハッシュ関数でハッシュ化して得られるハッシュ値である。なお、本実施形態では３２桁のハッシュ値を生成する場合を例にしているが、その桁数に限定はなく、対象となるテキストが他と識別可能である限り、任意の桁数としても良い。
【００２５】
図５は、日本語テキストと英語テキストとの対応関係を示した説明図であり、識別情報（ハッシュ値）により互いに関連づけられている。ゲームプログラムの作成時においては、メインプログラム３４から抽出された日本語テキストと、当該日本語テキストをＭＤ５でハッシュ化した識別情報（ハッシュ値）のテーブルを準備しておき、対応する英語テキスト（及び他言語）で翻訳された翻訳文を順次書き込むことで、ゲームプログラムの多言語化を行うことができる。
【００２６】
図１において、言語設定部４０は、ゲームの実行中において表示部２４に言語設定画面を表示させるとともに、プレイヤにより選択された言語に対応するテキストデータを読み出して、当該選択された言語にてゲーム画面を表示出力させる。
【００２７】
ハッシュ化部４２は、言語データ３６に記憶されている他の識別情報に用いられた関数と同じ関数（例えばＭＤ５）により、メインプログラム３４に記述されている表示用の日本語テキストに対してハッシュ化を行う。ここで、シリアライズされた言語データ３６は、携帯端末のＲＡＭ３０内に、HashMapと呼ばれる、キー（日本語データのハッシュ値）と値（翻訳されたテキスト）のペアを保持するデータ構造で格納されており、この構造をとることで、ハッシュ値によるデータ検索を高速で行うことができる。
【００２８】
テキスト抽出部４４は、ハッシュ化部４２において得られたハッシュ値をキーとして、プレイヤにより選択された言語に対応する言語データの中から、対応するテキストデータを検索することで、日本語テキストに対応する外国語の表示用テキストを抽出する。
【００２９】
以下、図６のフローチャートを用いて、本実施形態のゲームプログラムにおける言語設定の処理フローについて説明する。携帯端末１０においてゲームプログラムが実行されると、メインプログラム３４が読み込まれ（ステップＳ１０）、当該メインプログラム３４に記述されているプログラムに従ってゲーム処理が実行され、ゲームが進行する（ステップＳ１１）。図７は、ゲームの表示画面の一例を示したものであり、表示部２４には、キャラクタの画像５０と、テキスト５２と、設定画面を表示するためのアイコン５４が表示されている。
【００３０】
図７の画面において、アイコン５４をタップして言語設定が指示されると、言語設定部４０において言語設定画面を表示させる処理を行い、表示部２４には図８で示す言語設定画面が表示される。当該画面において、プレイヤにより所望の言語（例えば「English」で示される英語のタブ）が選択されると（ステップＳ１２において「ｙ」）、ハッシュ化部４２において、現在表示されている日本語テキスト（図７の例では、「いらっしゃい！  うちは、品揃えが豊富だよ。この薬なんかどうだい？」のテキスト）に対応するメインプログラム３４に記述されている日本語テキスト対して、ＭＤ５でハッシュ化を行う（ステップＳ１３）。
【００３１】
次に、テキスト抽出部４４は、ハッシュ化された日本語テキストデータをキーとして、選択された言語に対応する言語データ（ここでは英語データ３６ａ）の中から、識別情報（ハッシュ値）が一致するデータ（英語テキストのデータ）を抽出する（ステップＳ１４）。そして、制御部２０は、抽出された英語テキストを、日本語テキストに置き換えて表示部２４に表示する（ステップＳ１５）。
【００３２】
図９は、言語設定が英語に変更された後のゲームの表示画面の一例を示したものであり、表示部２４には、日本語テキスト（図７参照）ではなく英語データ３６ａから抽出された対応する英語テキスト（図９の例では、「Welcome!  We have many goods.  How about this medicine?」）が表示される。
【００３３】
異なる言語で表示する際には、当該言語のテキストで単に表示するだけでなく、改行やカーニングなど、当該言語に適した形式に調整して表示することが好ましい。例えば、日本語表示する場合は、半角スペースを削除して全角スペースは残して表示する。また、英語で表示する場合は、全角スペースを削除し、半角スペースを残して表示する。
【００３４】
制御部２０は、言語設定が変更された後も、日本語テキストで記述されたメインプログラム３４に従いゲームを進行させるが、テキストを表示させる際には、前述と同様の処理が行われる。すなわち、次に実行されるメインプログラム３４内の日本語テキストに対してハッシュ化を行い、識別情報（ハッシュ値）をキーとして対応する英語データ（外国語データ）を抽出し、日本語テキストを置き換えて表示部２４に表示する。その後、メインプログラム３４による処理が終了すると（ステップＳ１６で「ｙ」）、ゲームプログラムの処理が終了する。
【００３５】
なお、生成されたハッシュ値に対応する外国語テキストデータが抽出されなかった場合には、日本語テキスト（あるいは対応するハッシュ値が存在する別の言語）を表示するようにしても良い。
【００３６】
このように、日本語テキストで記述されたメインプログラムを実行させるとともに、表示すべき言語が変更された場合には、当該メインプログラム内の日本語データの識別情報（ハッシュ値）をキーとして、対応する外国語データを読み出して表示出力するようにしたから、メインプログラムの内容を外国語に修正する（あるいは言語毎に複数のメインプログラムを用意する）ことなく、ゲームの多言語対応が可能となる。
【００３７】
また、メインプログラムには、表示すべきテキストデータとして、識別情報ではなく日本語テキストが記述されているから、メインプログラム内の日本語テキストを参照しつつプログラムを開発することができるので、識別情報に対応する表示用テキストを逐次参照する必要がなく、プログラム開発を効率よく行うことができる。
【００３８】
上記の実施形態においては、ゲームプログラムがインストールされた携帯端末の動作を例にして説明しているが、本発明はこれに限られることはなく、ゲームプログラムの開発におけるテキスト変更のチェックにも適用することができる。図１０は、その処理手順の一例を示すフローチャートであり、例えばゲーム開発用のコンピュータに、日本語テキストが記述されたメインプログラムを読み込んだ後（ステップＳ２０）、日本語のテキストデータを読み出す（ステップＳ２１）。読み出されたテキストデータに対して例えばＭＤ５によるハッシュ化を行い（ステップＳ２２）、得られたハッシュ値をキーとして、言語データ３６内の外国語データに含まれる識別情報（ハッシュ値）を検索する（ステップＳ２３）。
【００３９】
検索の結果、キーとなるハッシュ値と同じデータが外国語データに含まれていれば、メインプログラム中の日本語テキストが変更されていないと判定し、ステップＳ２６に進む。一方、対応するハッシュ値が外国語データに含まれていない場合は、日本語テキストに変更が加えられた（あるいは日本語テキストが新規に追加された）と判定され、開発者によって外国語テキストの修正及び追記が行われる（ステップＳ２５）。そして、メインプログラム中にチェックすべき日本語テキストが存在するか否かを判定し（ステップＳ２６）、存在する場合にはステップＳ２１に戻って前述の処理を繰り返し、存在しない場合には処理を終了する。
【００４０】
上記の実施形態では、携帯端末にダウンロードされるプログラムにおいて、多言語表示のための全ての処理を行う場合を例にしているが、一部、または、すべての処理をサーバ側で行うようにしても良い。例えば、言語データをサーバ側に保存しておき、携帯端末側で得られたハッシュ値をサーバに送信し、サーバ側で対応する言語を抽出して携帯端末に送信するようにしても良い。または、言語データをサーバ側に保存しておき、携帯端末側から日本語テキストのデータをサーバに送信し、サーバ側でハッシュ化し、ハッシュ値に対応する言語を抽出して携帯端末に送信するようにしても良い。
【００４１】
上記の実施形態では、メインプログラム内に日本語の表示用テキストが記述された場合を例として説明したが、基準となる言語に限定はなく、日本語以外の言語（例えば英語、韓国語）による表示用テキストをメインプログラムに保存するようにしても良い。このような場合においても、前述と同様にして、表示用テキストに対するハッシュ値をキーとして、他の言語による表示用テキストを抽出することで、多言語化を実現することができる。
【００４２】
上記の実施形態においては、ゲームプログラムに含まれるテキストデータを対象として多言語対応を行う場合を説明しているが、本発明はテキストの多言語対応に限られることはなく、テキストを含む画像に対しても同様に適用することができる。この場合は、日本語テキストを含む画像データをメインプログラムに含めておき、当該画像を他言語で表示させる際に、日本語テキストを含む画像データに対してハッシュ化を行い、ハッシュ値をキーとして外国語テキストを含む画像データに置き換えることで、外国語で記述された画像を表示することができる。
【００４３】
また、ゲームを実行する国（地域）によっては、表現が暴力的にあたるなどの理由から、そのまま表示すべきでない場合が生じうる。そのような場合には、外国語データとして、日本語の翻訳ではなく、当該国（地域）で許容される表現でのテキストデータとして保存しておくことで、ゲームをプレイする国の特性に応じた多言語対応が可能となる。
【００４４】
また、本発明はテキストの多言語対応に限られることはなく、ゲームがプレイされる国に応じて、静止画や動画を変更する場合にも、同様に適用することができる。例えば、ゲームを実行する国（地域）によっては、表示されるキャラクタの画像や、キャラクタの動きに関しても、宗教的な理由や、国（地域）におけるプレイヤの嗜好（派手なアクションを好む、特定の特徴を含むキャラクタは好まない等）、暴力的表現に当たるといった理由で、そのまま表示すべきでない場合が生じうる。そのような場合においても、前述したテキスト表示の場合と同様に、メインプログラム内に静止画や動画のデータ（基準となるデータ）を含めておき、国（地域）ごとに、静止画や動画のデータと識別情報（ハッシュ値）とを対応付けたファイルを用意しておき、ゲームをプレイする国に応じて、ハッシュ値をキーとして、他の国向けの画像や動画を抽出して、適宜切り替えて表示させることで、ゲームをプレイする国の特性に応じた表示態様が可能となる。
【００４５】
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうる。本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲に解釈されるものである。
【符号の説明】
【００４６】
１０、１１  携帯端末
２０  制御部
２４  表示部
３２  ゲームプログラム
３４  メインプログラム
３６  言語データ
４０  言語設定部
４２  ハッシュ化部
４４  テキスト抽出部
【図１】
2019180965.tif 000003
【図２】
2019180965.tif 000004
【図３】
2019180965.tif 000005
【図４】
2019180965.tif 000006
【図５】
2019180965.tif 000007
【図６】
2019180965.tif 000008
【図７】
2019180965.tif 000009
【図８】
2019180965.tif 000010
【図９】
2019180965.tif 000011
【図１０】
2019180965.tif 000012