IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

<>
  • 特許-情報処理装置、プログラム及び方法 図1
  • 特許-情報処理装置、プログラム及び方法 図2
  • 特許-情報処理装置、プログラム及び方法 図3
  • 特許-情報処理装置、プログラム及び方法 図4
  • 特許-情報処理装置、プログラム及び方法 図5
  • 特許-情報処理装置、プログラム及び方法 図6
  • 特許-情報処理装置、プログラム及び方法 図7
  • 特許-情報処理装置、プログラム及び方法 図8
  • 特許-情報処理装置、プログラム及び方法 図9
  • 特許-情報処理装置、プログラム及び方法 図10
  • 特許-情報処理装置、プログラム及び方法 図11
  • 特許-情報処理装置、プログラム及び方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】情報処理装置、プログラム及び方法
(51)【国際特許分類】
   G06F 8/34 20180101AFI20240610BHJP
   A63F 13/80 20140101ALI20240610BHJP
【FI】
G06F8/34
A63F13/80 Z
【請求項の数】 30
(21)【出願番号】P 2023081771
(22)【出願日】2023-05-17
【審査請求日】2023-07-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐藤 拓弥
(72)【発明者】
【氏名】持田 恵佑
(72)【発明者】
【氏名】宇塚 貴紀
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2017-219718(JP,A)
【文献】広野 忠敏,"レッスン15 エージェントにたいまつを置かせるには", "レッスン20 壁面にたいまつを置かせるには", "レッスン45 座標を変数で置き換えるには", 及び, "レッスン49 参加者の装備を変更するには",できる パソコンで楽しむ マインクラフト プログラミング入門,第1版,株式会社インプレス,2018年,pp. 52-53, 70-75, 156-159, 168-171,ISBN 978-4-295-00351-9
【文献】"小学生も挑戦できる! マインクラフト プログラミングのまとめ",できるネット [online],2019年, [retrieved on 2023.09.26], Retrieved from the Internet: <URL: https://dekiru.net/article/18672/>
【文献】"[初心者向け]教育版マインクラフトのメイクコード(基本ブロック)のくわしい解説!"(タイトルの隅付き括弧は角括弧に置換),YouTube [online] [video],キッズ・プログラミング教室 KIDSPRO,2023年09月15日,[retrieved on 2024.02.19], Retrieved from the Internet: <URL: https://www.youtube.com/watch?v=RK5YQx7NIPQ&t=680s>
【文献】新妻 正夫,"小さな問題-Makecode編(3)",[online],2023年12月05日,[retrieved on 2024.02.19], Retrieved from the Internet: <URL: https://note.com/mniizuma/n/n75f2fc83937e>
【文献】"マインクラフト | [MakeCode][003] エージェントでブロックを配置する",[online],2019年,[retrieved on 2024.02.19], Retrieved from the Internet: <URL: https://www.mussyu1204.com/hp/articles/0145_minecraft-mk-003>
【文献】広野 忠敏,"レッスン15 エージェントにたいまつを置かせるには", "レッスン20 壁面にたいまつを置かせるには", "レッスン45 座標を変数で置き換えるには", 及び, "レッスン49 参加者の装備を変更するには",できる パソコンで楽しむ マインクラフト プログラミング入門 ,第1版,株式会社インプレス,2018年,pp. 52-53, 70-75, 156-159, 168-171,ISBN 978-4-295-00351-9
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/34
A63F 13/80
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
キャラクタに一連の動作を実行させるプログラムをビジュアルプログラミングによって作成するための画面であって、当該一連の動作に含まれる複数の動作をそれぞれ示す複数のプログラム部品が配置される画面を表示し、
前記キャラクタが実行する動作の失敗の検出に基づいて、前記キャラクタが実行する動作が失敗するプログラム部品に関して通知を行う、
情報処理装置。
【請求項2】
前記通知は、前記キャラクタが実行する動作が失敗する前記プログラム部品の強調表示である、
請求項1に記載の情報処理装置。
【請求項3】
前記キャラクタが実行する動作の失敗の検出は、前記情報処理装置とは異なる装置によって行われる、
請求項2に記載の情報処理装置。
【請求項4】
前記少なくとも1つのプロセッサは、前記画面上で配置されているプログラム部品から、前記キャラクタが実行する動作が失敗する前記プログラム部品を検出する、
請求項2に記載の情報処理装置。
【請求項5】
前記動作が失敗するとは、当該失敗する動作を示すプログラム部品を含む前記画面上に作成されたプログラムが破綻しないが、当該プログラム部品が示す動作の内容が実現しないことである、
請求項4に記載の情報処理装置。
【請求項6】
前記プログラムが破綻しないとは、前記少なくとも1つのプロセッサが、前記動作が失敗する前記プログラム部品を検出した後、当該プログラム部品に続くプログラム部品が示す動作を前記キャラクタに指示可能であることである、
請求項5に記載の情報処理装置。
【請求項7】
前記少なくとも1つのプロセッサは、
プログラム部品が示す動作の内容、及び、前記キャラクタが当該動作を行う仮想空間の状況に基づいて、当該状況において当該動作の内容が実現するか又は実現したかを判定し、
実現しない又は実現しなかったと判定される当該プログラム部品を、前記動作が失敗するプログラム部品として検出する、
請求項4に記載の情報処理装置。
【請求項8】
前記強調表示は、
前記動作が失敗する前記プログラム部品を示すマークを表示する、
請求項2に記載の情報処理装置。
【請求項9】
前記強調表示は、
前記動作が失敗する前記プログラム部品の近傍に所定のマークを表示する、
請求項2に記載の情報処理装置。
【請求項10】
前記強調表示は、
前記動作が失敗する前記プログラム部品に対する操作が行われたとき、前記動作が失敗する理由を示す情報を前記画面に表示する、
請求項2に記載の情報処理装置。
【請求項11】
前記理由を示す情報は、前記理由を説明するテキストである、
請求項10に記載の情報処理装置。
【請求項12】
前記テキストは、前記動作の内容に関する単語を含む、
請求項11に記載の情報処理装置。
【請求項13】
前記少なくとも1つのプロセッサは、
前記動作が失敗する前記プログラム部品を検出しないとき、前記プログラム部品の配置に従って前記キャラクタに一連の動作を実行させる、
請求項2から12のいずれかに記載の情報処理装置。
【請求項14】
前記少なくとも1つのプロセッサは、
前記プログラム部品が示す前記動作を前記キャラクタに実行させ、
前記キャラクタが前記動作に失敗したか否かを判定し、
前記動作に失敗したと判定されたとき、前記プログラム部品を強調表示する、
請求項1から12のいずれかに記載の情報処理装置。
【請求項15】
前記少なくとも1つのプロセッサは、
ユーザにより指定された前記キャラクタに前記動作を実行させるための前記画面を表示する、
請求項2から12のいずれかに記載の情報処理装置。
【請求項16】
前記少なくとも1つのプロセッサは、
前記キャラクタに前記動作を実行させる操作が行われたとき、前記動作が失敗する前記プログラム部品を検出する、
請求項2から12のいずれかに記載の情報処理装置。
【請求項17】
前記少なくとも1つのプロセッサは、
前記プログラム部品を前記画面に配置したとき、前記動作が失敗する前記プログラム部品を検出する、
請求項2から12のいずれかに記載の情報処理装置。
【請求項18】
前記少なくとも1つのプロセッサは、
前記動作を完了するための条件を満たさない前記プログラム部品を、前記動作が失敗するプログラム部品として検出する、
請求項2から12のいずれかに記載の情報処理装置。
【請求項19】
前記少なくとも1つのプロセッサは、
前記動作の対象とするオブジェクトが設定されていない前記プログラム部品を、前記動作が失敗するプログラム部品として検出する、
請求項18に記載の情報処理装置。
【請求項20】
前記少なくとも1つのプロセッサは、
前記動作の対象とするオブジェクトが前記キャラクタの行動可能な範囲に存在しない前記プログラム部品を検出する、
請求項17に記載の情報処理装置。
【請求項21】
前記画面は、所定の機能を有する複数の前記プログラム部品を配置し、前記プログラム部品の間を接続することで、前記キャラクタに一連の動作を実行させるプログラムを作成するための画面である、
請求項2から12のいずれかに記載の情報処理装置。
【請求項22】
前記通知は、前記キャラクタが実行する動作が失敗する前記プログラム部品の動作が失敗する理由の通知である、
請求項1に記載の情報処理装置。
【請求項23】
前記通知は、前記キャラクタが実行する動作が失敗するプログラム部品が示す動作の内容に関する単語を含む通知である、
請求項1に記載の情報処理装置。
【請求項24】
前記少なくとも1つのプロセッサは、
複数のキャラクタのそれぞれに対して、ビジュアルプログラミングによって作成されたプログラムに基づいてキャラクタの動作を制御し、
前記通知を、前記複数のキャラクタのうち、当該動作が失敗するプログラム部品を含むプログラムに従って動作している前記キャラクタに関連付けて表示する、
請求項1から12、22、23のいずれかに記載の情報処理装置。
【請求項25】
前記少なくとも1つのプロセッサは、
複数のキャラクタのそれぞれに対して、ビジュアルプログラミングによって作成されたプログラムに基づいてキャラクタの動作を制御し、
前記通知を、前記複数のキャラクタのうち、当該動作が失敗するプログラム部品を含むプログラムに従って動作している前記キャラクタの近傍に表示する、
請求項1から12、22、23のいずれかに記載の情報処理装置。
【請求項26】
前記キャラクタの近傍は、前記キャラクタの頭上である、
請求項25に記載の情報処理装置。
【請求項27】
前記少なくとも1つのプロセッサは、
複数のキャラクタのそれぞれに対して、ビジュアルプログラミングによって作成されたプログラムに基づいてキャラクタの動作を制御し、
前記通知を、前記複数のキャラクタのうち、当該動作が失敗するプログラム部品を含むプログラムに従って動作している前記キャラクタの位置と連動した位置に表示する、
請求項1から12、22、23のいずれかに記載の情報処理装置。
【請求項28】
前記少なくとも1つのプロセッサは、前記通知を、動き回る前記キャラクタの位置と連動して、表示される位置を動かしながら表示する、
請求項27に記載の情報処理装置。
【請求項29】
請求項1から1222、23のいずれかに記載の情報処理装置として、1又は複数のコンピュータを機能させるためのプログラム。
【請求項30】
1又は複数のコンピュータによって実行される方法であって、
キャラクタに一連の動作を実行させるプログラムをビジュアルプログラミングによって作成するための画面であって、当該一連の動作を構成する複数の動作をそれぞれ示す複数のプログラム部品が組み合わされて配置される画面を表示する工程と、
前記キャラクタが実行する動作の失敗の検出に基づいて、前記キャラクタが実行する動作が失敗するプログラム部品に関して通知を行う工程と、
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、プログラム及び方法に関する。
【背景技術】
【0002】
プログラミングの学習を支援するプログラミング学習装置が利用されている。プログラミング学習装置には、ブロック状のプログラム部品等を組み合わせてプログラムを作成するビジュアルプログラミングを対象とするものがある。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-219718号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の課題は、動作が失敗するプログラム部品を通知可能な情報処理装置を提供することである。
【課題を解決するための手段】
【0005】
本開示の一態様による情報処理装置は、少なくとも1つのメモリと、少なくとも1つのプロセッサと、を備え、少なくとも1つのプロセッサは、キャラクタに一連の動作を実行させるプログラムをビジュアルプログラミングによって作成するための画面であって、当該一連の動作に含まれる複数の動作をそれぞれ示す複数のプログラム部品が配置される画面を表示し、前記キャラクタが実行する動作の失敗の検出に基づいて、前記キャラクタが実行する動作が失敗するプログラム部品に関して通知を行う
【図面の簡単な説明】
【0006】
図1】情報処理装置の機能構成の一例を示すブロック図である。
図2】フィールド画面の一例を示す図である。
図3】成功する動作の一例を説明するための図である。
図4】失敗する動作の一例を説明するための図である。
図5】プログラミング画面の一例を示す図である。
図6】第1のエラー通知の一例を示す図である。
図7】第2のエラー通知の一例を示す図である。
図8】エラーメッセージの一例を示す図である。
図9】エラーメッセージの一例を示す図である。
図10】エラーメッセージの一例を示す図である。
図11】情報処理方法の処理手順の一例を示すフローチャートである。
図12】情報処理装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0007】
以下、本開示の各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0008】
[情報処理装置の概略]
本開示の一実施形態は、コンピュータゲームを提供するゲームプログラムを実行する情報処理装置である。本実施形態におけるコンピュータゲームは、ゲームの世界である仮想空間においてプレイヤーの分身であるキャラクタに様々な行動をさせる、いわゆるオープンワールド型のコンピュータゲームである。ゲームの世界は、オープンワールド型に限定されない。また、仮想空間は、3次元空間に限定されず、2次元空間でもよい。本実施形態におけるコンピュータゲームは、仮想空間に存在する他のキャラクタの動作を制御するプログラムを作成する機能を有する。
【0009】
以下、プレイヤーが操作するキャラクタを「操作キャラクタ」とも呼ぶ。また、プログラムにより制御可能なキャラクタを「被制御キャラクタ」とも呼ぶ。操作キャラクタ及び被制御キャラクタは、ゲームの世界である仮想空間に存在する。
【0010】
本実施形態におけるコンピュータゲームでは、ゲームの世界を描画したフィールド画面において、操作キャラクタを動作させる操作が行われる。フィールド画面は、例えば、仮想空間内を3次元で描画した画面である。フィールド画面では、プレイヤーの操作に応じて、操作キャラクタが仮想空間内で動作する。操作キャラクタが実行可能な動作は、例えば、歩くこと、走ること、ジャンプすること、敵対するキャラクタに攻撃すること、敵対するキャラクタの攻撃を防御すること、アイテムを取得すること、保持しているアイテムを用いて作業すること等が挙げられる。
【0011】
本実施形態におけるコンピュータゲームでは、プレイヤーが被制御キャラクタの動作を制御するプログラムを作成することができる。例えば、プレイヤーは、仮想空間内で設定された目的を達成するために、被制御キャラクタの動作を制御することができる。達成すべき目的は、プレイヤー自身が設定してもよいし、コンピュータゲームの進行状況に応じてゲームプログラムにより設定されてもよい。達成すべき目的は、例えば、建造物を建築すること、農作物を収穫すること、装備品等のアイテムを製造すること、敵対するキャラクタを倒すこと等が挙げられる。達成すべき目的は、これらに限定されず、仮想空間で実現可能なあらゆる目的を設定してもよい。
【0012】
被制御キャラクタは、プレイヤーによる操作が行われないノンプレイヤーキャラクター(NPC; Non Player Character)である。被制御キャラクタは、プレイヤーによりプログラムが作成されるまでは、仮想空間内で自律的に行動している。
【0013】
プレイヤーは、フィールド画面でプログラム対象とする被制御キャラクタを選択し、その被制御キャラクタに一連の動作を実行させるプログラムを作成する。プログラム対象となった被制御キャラクタは、プレイヤーが作成したプログラムに従って仮想空間内で一連の動作を実行する。プレイヤーは複数の被制御キャラクタに対してそれぞれ異なる動作を実行させるプログラムを作成し、複数の被制御キャラクタを並行して動作させてもよい。このプログラムは、被制御キャラクタごとに別々のプログラムが作成されてもよいし、複数の被制御キャラクタに対して共通のプログラムが作成されてもよい。
【0014】
プログラムの作成は、ビジュアルプログラミングが可能なプログラミング画面を用いて行われる。プログラミング画面では、所定の機能を有するプログラム部品を配置し、各プログラム部品の間を接続することで、1つのプログラムを作成する。プログラム部品は、被制御キャラクタに動作を指示する機能を有するものと、条件分岐や繰り返し等の実行制御に関する機能を有するものとが含まれる。
【0015】
本実施形態におけるプログラミング画面は、プログラムで発生するエラーを通知する機能を有する。以下、この通知を「エラー通知」と呼ぶ。プログラムで発生するエラーは、例えば、キャラクタに指示する動作が失敗することを含む。
【0016】
エラー通知は、エラーが発生するプログラム部品を強調表示する第1のエラー通知と、エラーが発生する理由を表示する第2のエラー通知とを含む。本実施形態では、プレイヤーが作成したプログラムからエラーが発生するプログラム部品が検出されると、まず、第1のエラー通知が行われる。次に、第1のエラー通知で強調表示されたプログラム部品に対してプレイヤーの操作が行われると、第2のエラー通知が行われる。そのため、第2のエラー通知によっても、エラーが発生するプログラム部品は強調表示されているといえる。ただし、エラーを通知する手順は上記に限定されず、例えば、第1のエラー通知と第2のエラー通知とが同時に行われてもよい。また、第1のエラー通知又は第2のエラー通知の一方のみが行われてもよい。
【0017】
なお、強調表示は、エラーが発生するプログラム部品を、エラーが発生しないプログラム部品とプレイヤーが区別可能な態様で表示することである。すなわち、後述のように、エラーが発生するプログラム部品にエラーアイコン又はエラーメッセージを表示する態様や、エラーが発生するプログラム部品を明滅(点滅)させて表示する態様や、エラーが発生するプログラム部品の文字色、背景色、フォント又はサイズをエラーが発生しないプログラム部品と変更して表示する態様や、エラーが発生するプログラム部品をエラーが発生しないときの表示よりも低い又は高い輝度で暗く又は明るく表示する態様なども強調表示の概念に含んでよい。
【0018】
[情報処理装置の機能構成]
本開示の一実施形態における情報処理装置の機能構成について、図1を参照しながら説明する。図1は、本実施形態における情報処理装置の機能構成の一例を示すブロック図である。
【0019】
図1に示されているように、本実施形態における情報処理装置100は、操作受付部101、画面表示部102、プログラミング部103、エラー検出部104、エラー通知部105、メッセージ記憶部106、コード変換部107及び動作制御部108を備える。情報処理装置100は、予めインストールされたゲームプログラムが実行されることで、操作受付部101、画面表示部102、プログラミング部103、エラー検出部104、エラー通知部105、メッセージ記憶部106、コード変換部107及び動作制御部108として機能する。
【0020】
情報処理装置100は、コンピュータゲームのプレイヤーが操作するパーソナルコンピュータ、タブレット端末、スマートフォン等の情報処理装置である。情報処理装置100は、ゲーム専用端末でもよく、携帯型のゲーム専用端末でも据え置き型のゲーム専用端末でもよい。情報処理装置100は、プレイヤーがコンピュータゲームに対する操作を行うための画面を表示する表示装置を備えていてもよい。表示装置は、情報処理装置100と有線又は無線のインタフェースにより接続されるディスプレイ等であってもよい。
【0021】
操作受付部101は、プレイヤーによる操作を受け付ける。プレイヤーによる操作は、コンピュータゲームにより表示装置に表示された画面において行われる。プレイヤーによる操作は、操作が行われる画面の種類により異なる。操作受付部101は、受け付けた操作の内容に応じて、他の処理部を実行する制御を行う。
【0022】
画面表示部102は、他の処理部の制御に応じて表示装置に画面を表示する。また、画面表示部102は、他の処理部の制御に応じて表示装置に表示した画面の内容を変化させる。
【0023】
プログラミング部103は、プログラミング画面に対するプレイヤーの操作に応じて、被制御キャラクタの動作を制御するプログラムを作成する。本実施形態では、プログラミング部103が作成するプログラムは、ブロック状のプログラム部品が配置されたビジュアルプログラムであってもよい。プログラミング部103は、プレイヤーの操作に応じて、ブロック状のプログラム部品を配置し、それらを接続することでプログラムを作成する。
【0024】
エラー検出部104は、プログラミング部103により作成されたプログラムから、エラーが発生するプログラム部品を検出する。エラーは、仮想空間(ゲームの世界)における被制御キャラクタの動作が失敗することである。つまり、エラーが発生するプログラム部品、エラーが発生しないプログラム部品とは、それぞれ、被制御キャラクタに指示される動作が失敗するプログラム部品、被制御キャラクタに指示される動作が失敗しないプログラム部品と同義である。具体的には、エラー検出部104は、仮想空間において被制御キャラクタが失敗する動作を検出し、その動作を指示するプログラム部品を検出する。
【0025】
仮想空間において被制御キャラクタがプログラム部品によって指示される動作を失敗しても、プログラムの実行順序に従って、次のプログラム部品によって指示される動作は実行されてよい。つまり、エラー検出部104は、仮想空間において、失敗してもプログラム自体を破綻させない(プログラムの実行を停止させない)が、失敗するとプログラムで指示される被制御キャラクタの動作の内容の少なくとも一部が実現できない動作を検出するとともに、その動作を指示するプログラム部品を検出する。
【0026】
第1のプログラム部品によって指示される第1の動作が失敗するとその動作の結果に依存する第2の動作も失敗することがある。この場合、エラー検出部104は、失敗する第1の動作および第2の動作を検出し、その第1の動作を指示する第1のプログラム部品だけでなく、その第2の動作を指示する第2のプログラム部品を検出してもよい。
【0027】
被制御キャラクタがプログラム部品によって指示された動作を失敗するか否かは、そのプログラム部品の実行時におけるその動作に関わる仮想空間の状況(状態と読み替えてもよい)に応じて決まる。エラー検出部104は、プログラム部品で指示される動作の内容を特定し、その動作の内容及びその動作に関わる仮想空間の状況に基づいて、その状況においてその動作の内容が実現するか(実現したか)を判定し、実現しない(実現しなかった)と判定される動作を、失敗する動作として検出し、その動作を指示するプログラム部品を検出する。
【0028】
エラー検出部104は、例えば、プログラム部品のパラメータが正しく設定されていない場合、そのプログラム部品でエラーが発生すると判定する。また、エラー検出部104は、例えば、プログラム部品により被制御キャラクタに指示する動作が失敗する場合、そのプログラム部品でエラーが発生すると判定する。
【0029】
エラー検出部104は、プレイヤーによりプログラムの開始が指示されたときにエラーを検出してもよい。エラー検出部104は、プログラムの実行中にプログラム部品で発生したエラーを逐次的に検出してもよい。エラー検出部104は、プレイヤーによりプログラム部品が配置されたときにエラーを検出してもよい。エラーを検出するタイミングは、これらに限定されず、エラー検出部104は任意のタイミングでエラーを検出することができる。エラー検出部104は、プログラム(プログラム部品が示す動作)の実行前に、実行するとそのプログラム(プログラム部品が示す動作)で発生するエラーを検出してもよいし、プログラム(プログラム部品が示す動作)を実行した結果、実際に発生したエラーを検出してもよい。
【0030】
エラー通知部105は、エラー検出部104で検出されたエラーをプレイヤーに通知する。エラー通知部105は、プログラミング画面でエラー通知を行うように画面表示部102を制御する。
【0031】
エラー通知部105は、エラー検出部104が検出したプログラム部品それぞれを、プログラミング画面で強調表示する第1のエラー通知を行う。エラー通知部105は、強調表示されたプログラム部品に対してプレイヤーによる所定の操作が行われると、操作されたプログラム部品で発生するエラーに対応するエラーメッセージ(テキストの一例)を、プログラミング画面に表示する第2のエラー通知を行う。
【0032】
第1のエラー通知では、例えば、エラーを検出したプログラム部品それぞれの近傍に、エラーが発生することを示すマークを表示してもよい。エラーが発生することを示すマークは、例えば、エラーアイコンでもよい。エラーアイコンは、プレイヤーによりエラーが発生することを認識可能な態様で表示すればよい。エラーアイコンは、エクスクラメーションマークを含むアイコンでもよい。エラーアイコンは、例えば、円形、矩形、三角形、吹き出し等、どのような形状でもよい。エラーアイコンは、プログラミング画面で用いられ得る色と識別容易な色で描画してもよい。
【0033】
第1のエラー通知では、例えば、エラーを検出したプログラム部品の表示態様を変化させてもよい。表示態様の変化は、例えば、文字色の変化、背景色の変化、フォントの変化、サイズの変化等を含む。表示態様の変化は、動的な変化であってもよい。表示態様の動的な変化は、例えば、プログラム部品が所定の時間長で周期的に点滅する、又は拡大縮小を繰り返す等であってもよい。
【0034】
第2のエラー通知では、操作されたプログラム部品でエラーが発生する理由を説明するエラーメッセージを表示してもよい。プログラム部品に対する操作は、プログラム部品自体に対する操作であってもよいし、第1のエラー通知で表示したエラーアイコンに対する操作であってもよい。
【0035】
プログラム部品に対する操作は、例えば、プログラム部品又はエラーアイコンをクリック又はタップする操作、若しくはプログラム部品又はエラーアイコンにマウスオーバーする操作等でもよい。
【0036】
被制御キャラクタに動作を指示するプログラミング部品でエラーが発生する場合、エラーメッセージには動作の内容に関する単語が含まれてもよい。言い替えると、被制御キャラクタに指示する動作が失敗するプログラミング部品を検出した場合、指示した動作の文脈に従って動作が失敗する理由を説明するエラーメッセージを表示してもよい。
【0037】
メッセージ記憶部106には、エラー通知部105が第2のエラー通知を行うときに表示するエラーメッセージが予め記憶されている。エラーメッセージは、エラー検出部104により検出されるエラーの種類を識別する識別情報と関連付けてメッセージ記憶部106に記憶されてもよい。エラーの種類とエラーメッセージとを関連付ける方法は、一例として、エラーの種類とエラーメッセージとを1つのセットとして記憶してもよいし、一方の情報から他方の情報を取得可能な情報を記憶してもよいし、一方の情報と他方の情報の識別情報とを1つのセットとして記憶してもよい。
【0038】
コード変換部107は、プログラミング部103により作成されたプログラムに基づいて、コンピュータゲームが実行可能なコードを生成する。コード変換部107が生成するコードは、ゲームプログラムが命令を解釈可能な言語で記述されてもよい。
【0039】
動作制御部108は、コード変換部107により生成されたコードに従って、仮想空間における被制御キャラクタの動作を制御する。動作制御部108は、フィールド画面で被制御キャラクタが動作する様子を表示するように画面表示部102を制御する。
【0040】
[情報処理装置のユーザインターフェース]
本開示の一実施形態における情報処理装置のユーザインターフェースについて、図2乃至図10を参照しながら説明する。当該ユーザインターフェースは、例えば、情報処理装置100にインストールされたゲームプログラムが表示装置に表示する画面として実現され得る。
【0041】
<フィールド画面>
本実施形態におけるフィールド画面について、図2を参照しながら説明する。図2は、フィールド画面の一例を示す図である。
【0042】
図2に示されているように、フィールド画面200は、全面に仮想空間が3次元で描画される。フィールド画面200の中央付近には、プレイヤーの分身である操作キャラクタ201が表示される。フィールド画面200に描画される仮想空間は、操作キャラクタ201の周辺の範囲である。
【0043】
フィールド画面200には、操作キャラクタ201の周辺に存在する被制御キャラクタ202が表示される。フィールド画面200には、複数の被制御キャラクタ202が表示されてもよい。図2では、操作キャラクタ201との距離が近い被制御キャラクタ202のみに符号を付している。
【0044】
被制御キャラクタ202は、フィールド画面200に表示されていない範囲にも存在してよい。プレイヤーの操作に応じてフィールド画面200の視野が変更されると、新しい視野に存在する被制御キャラクタ202がフィールド画面200に表示される。
【0045】
図2に示したフィールド画面200には、様々なアイテムを収納可能なチェスト203、及びアイテムを用いて作業可能な作業台204が表示されている。
【0046】
操作キャラクタ201及び被制御キャラクタ202は、チェスト203から所定の範囲内に近づくと、チェスト203の扉を開けてチェスト203に収納されているアイテムを取り出すことができる。また、操作キャラクタ201及び被制御キャラクタ202は、アイテムを保持した状態で作業台204に近づくと、そのアイテムを作業台に置くことができる。さらに、操作キャラクタ201及び被制御キャラクタ202は、作業台204にアイテムが置かれているとき、それらのアイテムを用いて作業を実行することができる。作業台204で実行できる作業は、作業台204の種類によるが、例えば複数のアイテムを合成して新たなアイテムを製造する作業が挙げられる。
【0047】
フィールド画面200において、プレイヤーが被制御キャラクタ202を選択する操作を行うと、プログラミング画面が起動する。プログラミング画面は、選択された被制御キャラクタ202に動作を実行させるプログラムを作成する状態で起動する。
【0048】
<プログラミング画面>
本実施形態におけるプログラミング画面について、図3を参照しながら説明する。図3は、プログラミング画面の一例を示す図である。
【0049】
図3に示されているように、プログラミング画面300は、選択領域310、切り替えボタン320、配置領域330及び再生ボタン340を有する。
【0050】
選択領域310には、プログラムで利用可能なプログラム部品311の一覧が表示される。切り替えボタン320は、選択領域310に表示するプログラム部品を切り替えるためのボタンである。
【0051】
動作を指示するプログラム部品は、動作の目的とするオブジェクトを設定できてもよい。オブジェクトを設定可能なプログラム部品には、オブジェクトを設定するための入力欄が含まれてもよい。図3に示す例では、選択領域310に表示されたプログラム部品311には、オブジェクトを設定可能な入力欄312が含まれている。入力欄312には、オブジェクトの設定が必要な旨を示す文言(例えば、「選択してください」等)が表示されてもよい。
【0052】
プレイヤーは、選択領域310において所望のプログラム部品を選択し、そのプログラム部品を配置領域330に配置することで、プログラムを作成する。プログラム部品を配置する操作は、例えば、選択領域310から配置領域330にプログラム部品をドラッグアンドドロップする操作である。
【0053】
プレイヤーは、配置領域330においてプログラム部品を接続することで、1つのプログラムを作成する。本実施形態では、配置領域330における上方から下方に向かう順番でプログラム部品が示す機能が実行される。配置領域330では、プログラム部品が配置されると、自動的に近傍のプログラム部品と接続するように制御してもよい。
【0054】
配置領域330では、プレイヤーの操作によりプログラム部品の順番を変更できてもよい。例えば、プレイヤーが配置領域330において所望のプログラム部品を選択し、上方又は下方にドラッグすることで、プログラム部品の順番を変更できてもよい。
【0055】
再生ボタン340は、作成したプログラムの実行を開始するためのボタンである。プレイヤーが再生ボタン340を押下すると、まず、配置領域330で作成されたプログラムから、エラーが発生するプログラム部品が検出される。エラーが発生するプログラム部品が検出されると、プログラムの実行が中断し、プレイヤーに対してエラーが通知される。一方、エラーが発生するプログラム部品が検出されなければ、配置領域330におけるプログラム部品の配置に従って、被制御キャラクタが指示された動作を順に実行する。
【0056】
図3には、プログラムの一例として、5個のプログラム部品331~335が接続された1個のプログラムが示されている。プログラム部品331は、プログラムのトリガとなる条件を示すプログラム部品である。プログラム部品332は、繰り返し制御を示すプログラム部品である。プログラム部品333~335は、被制御キャラクタに動作を指示するプログラム部品である。
【0057】
図3に示されたプログラムは、被制御キャラクタに以下の動作を実行させるプログラムである。
(1)再生ボタンが押されたときにプログラムを開始する(プログラム部品331)。
(2)「鉱山_1」の鉱石を採掘する(プログラム部品333)。
(3)「鉱山_1」の近くの石を1個拾う(プログラム部品334)。
(4)「Chest_6」に持っている物を入れる(プログラム部品335)。
(5)上記(2)から(4)の動作を繰り返し実行する(プログラム部品332)。
【0058】
≪エラー通知≫
本実施形態におけるエラー通知について、図4乃至図10を参照しながら説明する。
【0059】
被制御キャラクタに指示する動作は、仮想空間の状態によって成功する場合もあれば、失敗する場合もある。ここでは、チェストに収納されているアイテムを拾い、そのアイテムを作業台に置く動作を例として、成功する場合と失敗する場合とを説明する。
【0060】
図4は、成功する動作の一例を示す図である。図4は、図2に示したチェスト203に収納されているアイテムを表示したときのフィールド画面200の一例である。図4に示されているように、フィールド画面200には、チェスト203に収納されているアイテム一覧211が表示されている。
【0061】
図4に示す例では、チェスト203に1個のアイテム212が収納されていることを示している。この場合、被制御キャラクタ202はチェスト203からアイテム212を拾うことができるため、チェスト203からアイテムを拾う動作は成功する。
【0062】
図5は、失敗する動作の一例を示す図である。図5に示す例では、チェスト203にアイテムが収納されていないことを示している。この場合、チェスト203には被制御キャラクタ202が拾うことができるアイテムが収納されていないため、チェスト203からアイテムを拾う動作は失敗する。
【0063】
本実施形態におけるプログラミング画面300は、被制御キャラクタ202に指示する動作が失敗する場合、動作が失敗するプログラム部品をプレイヤーに通知するエラー通知を行う。本実施形態におけるエラー通知は、エラーが発生するプログラム部品を強調表示する第1のエラー通知と、エラーが発生する理由を表示する第2のエラー通知とを含む。
【0064】
図6は、第1のエラー通知の一例を示す図である。図6に示されているように、第1のエラー通知では、エラーが発生するプログラム部品336が強調表示される。図6に示す例では、エラーが発生するプログラム部品336の近傍にエラーアイコン351を表示することで、第1のエラー通知が行われている。
【0065】
ここで、エラーが発生するプログラム部品以降のプログラム部品においてエラーが発生する別のプログラム部品がある場合(例えば図6において、「SingleChest_243からアイテム1個拾う」動作が失敗して被制御キャラクタがアイテムを持っていない為に「作業台_1に持っている物を入れる」動作も失敗する場合)、その別のプログラム部品についても第1のエラー通知が行われてよい。一方で、エラーが発生するプログラム部品以降のプログラム部品においてエラーが発生しない場合(例えば図6において、被制御キャラクタがアイテムを持っている為に「SingleChest_243からアイテム1個拾う」動作が失敗するが、既にアイテムを持っている為に「作業台_1に持っている物を入れる」動作が成功する場合)、以降のプログラム部品については第1のエラー通知が行われないでよい。
【0066】
プレイヤーは、エラーアイコン351が表示されたプログラム部品336でエラーが発生することを認識することができる。プレイヤーは、作成したプログラムを見直し、エラーの理由が理解できれば、配置領域330においてプログラムを修正することができる。
【0067】
エラーが発生するプログラム部品336に対して所定の操作が行われると、第2のエラー通知が行われる。本実施形態では、プレイヤーがプログラム部品336の近傍に表示されたエラーアイコン351をクリックしたことで、第2のエラー通知が行われるものとする。
【0068】
図7は、第2のエラー通知の一例を示す図である。図7に示されているように、第2のエラー通知では、エラーが発生する理由が表示される。図7に示す例では、エラーが発生するプログラム部品336の近傍にエラーメッセージ352を表示することで、第2のエラー通知が行われている。
【0069】
プレイヤーは、エラーメッセージ352を参照することで、プログラム部品336でエラーが発生する理由を理解することができる。プレイヤーは、作成したプログラムを見直し、配置領域330においてプログラムを修正することができる。
【0070】
エラーメッセージは、指示する動作の文脈に従って失敗する理由を説明する内容であってもよい。図7に示したエラーメッセージ352は、「SingleChest_243からアイテムを1個拾う」ことを被制御キャラクタに指示するプログラム部品336が示す動作が失敗する理由として、アイテムが入っていない旨を説明する内容である。チェストからアイテムを拾う動作が失敗する理由として、対象とするチェストにアイテムが入っていないことが示されれば、プレイヤーはアイテムが入っている他のチェストを対象として選択し直す必要があることを容易に理解することができる。
【0071】
図6及び図7では、エラーの一例として、アイテムが入っていないチェストからアイテムを拾う動作が指示された場合を示したが、エラーが発生する状況及び理由はこれに限定されない。エラーが発生する状況及び理由は、仮想空間において操作キャラクタが実行可能な動作に応じて様々なものが考えられる。
【0072】
図8乃至図10は、エラーメッセージの一例を示す図である。図8乃至図10に示したエラーメッセージは、メッセージ記憶部106に予め記憶されているエラーメッセージの一例である。
【0073】
図8乃至図10には、本実施形態におけるコンピュータゲームにおいて、表示され得るエラーメッセージと、そのエラーメッセージが表示される理由との組み合わせが示されている。例えば、図8に示した「探している対象が見つかりません」とのエラーメッセージ(番号1-1)は、特定のオブジェクトを探す動作を指示するプログラム部品に対して、被制御キャラクタが行動可能な範囲にそのオブジェクトが存在しないときに表示されることを表している。
【0074】
図8乃至図10に示されたエラーメッセージからわかるように、動作を指示するプログラム部品が失敗する理由は、その動作を完了するための条件を満たさないときが含まれる。例えば、チェストからアイテムを拾う動作を完了するためには、そのチェストにアイテムが1個以上入っていることが条件となる。また、例えば、特定のオブジェクトを探す行動を完了するためには、行動可能な範囲にそのオブジェクトが存在することが条件となる。
【0075】
[情報処理方法の処理手順]
本開示の一実施形態における情報処理装置100が実行する情報処理方法の処理手順について、図11を参照しながら説明する。図11は、情報処理方法の処理手順の一例を示すフローチャートである。
【0076】
ステップS1において、操作受付部101は、プレイヤーによる操作に応じて、プログラム対象となる被制御キャラクタを選択する。プログラム対象を選択する操作は、フィールド画面200において行われる。操作受付部101は、選択されたプログラム対象を示す情報を画面表示部102に送る。
【0077】
ステップS2において、画面表示部102は、操作受付部101からプログラム対象を示す情報を受け取る。次に、画面表示部102は、プログラミング画面300を表示装置に表示する。プログラミング画面300は、プログラム対象として選択された被制御キャラクタ202に動作を実行させるプログラムを作成する状態で表示される。
【0078】
ステップS3において、操作受付部101は、プログラムを作成する操作を受け付ける。プログラムを作成する操作は、プログラミング画面300においてプレイヤーにより行われる。次に、操作受付部101は、受け付けた操作を示す情報をプログラミング部103に送る。
【0079】
プログラミング部103は、操作受付部101から受け取った操作の内容に従って、プログラムを作成する。プログラミング部103は、プログラム部品を配置し、それらを接続することで、プログラムを作成する。プログラミング部103は、作成したプログラムをプログラミング画面300に表示するように画面表示部102を制御する。
【0080】
ステップS4において、操作受付部101は、プログラムを実行する操作を受け付ける。プログラムを実行する操作は、プログラミング画面300においてプレイヤーにより行われる。次に、操作受付部101は、受け付けた操作を示す情報をプログラミング部103に送る。プログラミング部103は、プレイヤーによる操作に応じて、ステップS3で作成したプログラムをエラー検出部104に送る。
【0081】
ステップS5において、エラー検出部104は、プログラミング部103からプログラムを受け取る。次に、エラー検出部104は、受け取ったプログラムからエラーを検出する。エラーの検出は、プログラムに含まれる各プログラム部品について、キャラクタに指示する動作が失敗するか否かを判定することが含まれる。
【0082】
プログラムからエラーを検出した場合(YES)、エラー検出部104はステップS6に処理を進める。一方、プログラムからエラーを検出しなかった場合(NO)、エラー検出部104はステップS9に処理を進める。
【0083】
ステップS6において、エラー検出部104は、ステップS5で検出したエラーに関する情報をエラー通知部105に送る。エラー通知部105は、エラー検出部104からエラーに関する情報を受け取る。次に、エラー通知部105は、受け取ったエラーに関する情報から動作が失敗するプログラム部品に関する情報を取得する。そして、エラー通知部105は、第1のエラー通知をプログラミング画面300に表示するように画面表示部102を制御する。例えば、エラー通知部105は、動作が失敗するプログラム部品の近傍にエラーアイコンを表示する。
【0084】
ステップS7において、エラー通知部105は、第1のエラー通知でプログラミング画面300に表示したエラーアイコンに対して所定の操作が行われたか否かを判定する。所定の操作が行われた場合(YES)、エラー通知部105はステップS8に処理を進める。一方、所定の操作が行われなかった場合(NO)、エラー通知部105はステップS3に処理を戻す。なお、所定の操作が行われなかった場合とは、プログラミング画面300において所定の操作以外の操作(例えば、プログラムを編集する操作等)が行われた場合を意味する。
【0085】
ステップS8において、エラー通知部105は、ステップS7で所定の操作が行われたプログラム部品を特定する。次に、エラー通知部105は、ステップS5で検出したエラーの内容を示すエラーメッセージをメッセージ記憶部106から読み出す。続いて、エラー通知部105は、特定したプログラム部品に対する第2のエラー通知をプログラミング画面300に表示するように画面表示部102を制御する。例えば、エラー通知部105は、所定の操作が行われたプログラム部品の近傍に、そのプログラム部品が指示する動作が失敗する理由を示すエラーメッセージを表示する。
【0086】
ステップS9において、エラー検出部104はエラーを検出しなかった旨をプログラミング部103に通知する。プログラミング部103は、エラーを検出しなかった旨の通知に応じて、ステップS3で作成したプログラムをコード変換部107に送る。
【0087】
コード変換部107は、プログラミング部103からプログラムを受け取る。次に、コード変換部107は、受け取ったプログラムに基づいて、プログラム対象とした被制御キャラクタ202の動作を制御するコードを生成する。そして、コード変換部107は、生成したコードを動作制御部108に送る。
【0088】
ステップS10において、動作制御部108は、コード変換部107からコードを受け取る。次に、動作制御部108は、受け取ったコードに従って、仮想空間における被制御キャラクタ202の動作を制御する。そして、動作制御部108は、フィールド画面200で被制御キャラクタ202が動作する様子を表示するように画面表示部102を制御する。フィールド画面200では、プログラム対象とされた被制御キャラクタ202がプログラムに示された一連の動作を実行する。
【0089】
[他の実施形態]
上記実施形態では、プレイヤーがプログラムを開始する操作を行ったときに、プログラム全体からエラーが検出されるかチェックし、エラーが検出されたプログラム部品についてエラー通知を行い、エラーが検出されなかったプログラムに基づいて被制御キャラクタに動作を行わせる例を説明した。この例では、エラー検出部104は、プログラムに従った動作を被制御キャラクタに行わせる前にプログラムを事前にチェックする役割を果たし、コード変換部107は、エラーが検出されなかったプログラムからコードを生成するためコンパイラ的な役割を果たしているといえる。一方、本実施形態では、プレイヤーがプログラムを開始する操作を行った後に、プログラムを被制御キャラクタの動作前に事前にチェックすることなく、プログラムを実行しながら逐次的にエラーを検出してもよい。
【0090】
具体的には、プレイヤーがプログラミング画面300において再生ボタン340を押下すると、プログラミング部103が配置領域330で先頭に配置されたプログラム部品に対応するプログラムをコード変換部107に送る。コード変換部107はプログラム部品をコードに変換し、動作制御部108がコードに従って被制御キャラクタ202の動作を制御する。このように、コード変換部107は、プログラム部品を逐次解釈するのでインタプリタ的な役割を果たしているといえ、動作制御部108は、プログラム部品で指示される動作を被制御キャラクタ202に実行させてみる。ここで、エラー検出部104は、被制御キャラクタ202の動作が成功するか失敗するかを判定することで、プログラム部品で発生するエラーを検出する。
【0091】
一例として、エラー検出部104がエラーを検出した場合、エラー通知部105がエラー通知を行う。その後、プログラミング部103は、プログラムの実行を停止する。この例において、エラー検出部104がエラーを検出しなかった場合、プログラミング部103が配置領域330で2番目に配置されたプログラム部品に対応するプログラムをコード変換部107に送る。その後、コード変換部107、動作制御部108、エラー検出部104は、配置領域330におけるプログラム部品の配置に従って、プログラム部品で指示される動作の実行と、動作が実行されるプログラム部品のエラー検出とを、プログラムの実行が途中で停止されるかプログラムが最後まで実行されるまで、繰り返し実行する。
【0092】
また、別の一例として、エラー検出部104がエラーを検出した場合、エラー通知部105がエラー通知を行う。その後、プログラミング部103は、プログラムの実行を継続する。つまり、プログラミング部103が配置領域330で2番目に配置されたプログラム部品に対応するプログラムをコード変換部107に送る。そして、コード変換部107、動作制御部108、エラー検出部104は、配置領域330におけるプログラム部品の配置に従って、プログラム部品で指示される動作の実行と、動作が実行されるプログラム部品のエラー検出とを、プログラムが最後まで実行されるまで、繰り返し実行する。なお、プログラムの実行を継続してもよい理由は、前述のとおり、エラーが発生してもエラーが発生したプログラム部品で指示される動作の内容が実現されないだけであって、そのエラーは、プログラム自体を破綻させるものではないからである。
【0093】
この例において、エラー通知部105は、フィールド画面において、プログラムに従って動作している被制御キャラクタの近傍にエラー通知を表示してもよい。例えば、エラー通知部105は、図2に示されるフィールド画面200において被制御キャラクタ202の頭上にエラー通知を表示してよく、このエラー通知を、動き回る被制御キャラクタ202の位置と連動して、その位置を動かしながら表示してよい。またこのエラー通知は、第1のエラー通知であっても、第2のエラー通知であってもよい。
【0094】
[まとめ]
以上の説明から明らかなように、本開示の一実施形態における情報処理装置100は、被制御キャラクタ202に指示する動作を示すプログラム部品を配置するプログラミング画面300を表示し、動作が失敗するプログラム部品を検出し、検出したプログラム部品を強調表示する。
【0095】
情報処理装置100は、失敗する動作を示すプログラム部品を含むプログラミング画面300上に作成されたプログラムが破綻しないが、当該プログラム部品が示す動作の内容が実現しない場合に、当該プログラム部品を検出してもよい。プログラムが破綻しないとは、情報処理装置100は、動作が失敗するプログラム部品を検出した後、当該プログラム部品に続くプログラム部品が示す動作を被制御キャラクタ202に指示可能であることでもよい。
【0096】
情報処理装置100は、プログラム部品が示す動作の内容、及び、被制御キャラクタ202が当該動作を行う仮想空間の状況に基づいて、当該状況において当該動作の内容が実現するか又は実現したかを判定し、実現しない又は実現しなかったと判定される当該プログラム部品を、動作が失敗するプログラム部品として検出してもよい。
【0097】
情報処理装置100は、動作が失敗するプログラム部品を示すエラーアイコンを表示してもよい。情報処理装置100は、動作が失敗するプログラム部品の近傍にエラーアイコンを表示してもよい。
【0098】
情報処理装置100は、動作が失敗するプログラム部品に対する操作が行われたとき、動作が失敗する理由を示す情報をプログラミング画面300に表示してもよい。動作が失敗する理由を示す情報は、動作が失敗する理由を説明するテキストであってもよい。動作が失敗する理由を説明するテキストは、動作の内容に関する単語を含んでもよい。
【0099】
情報処理装置100は、動作が失敗するプログラム部品を検出しないとき、プログラム部品の配置に従って被制御キャラクタ202に一連の動作を実行させてもよい。
【0100】
情報処理装置100は、ユーザにより指定された被制御キャラクタ202に一連の動作を実行させるためのプログラミング画面300を表示してもよい。
【0101】
情報処理装置100は、被制御キャラクタ202に一連の動作を開始させる操作が行われたとき、動作が失敗するプログラム部品を検出してもよい。情報処理装置100は、プログラム部品をプログラミング画面300に配置したとき、動作が失敗するプログラム部品を検出してもよい。
【0102】
情報処理装置100は、動作を完了するための条件を満たさないプログラム部品を検出してもよい。情報処理装置100は、動作の対象とするオブジェクトが設定されていないプログラム部品を検出してもよい。情報処理装置100は、動作の対象とするオブジェクトがキャラクタの行動可能な範囲に存在しないプログラム部品を検出してもよい。
【0103】
情報処理装置100は、所定の機能を有する複数のプログラム部品を配置し、プログラム部品の間を接続することで、被制御キャラクタ202に一連の動作を実行させるプログラムを作成するためのプログラミング画面300を表示してもよい。
【0104】
これにより、本開示の一実施形態によれば、動作が失敗するプログラム部品を通知可能な情報処理装置を提供することができる。
【0105】
キャラクタの動作を制御するような自由度の高いプログラムでは、各動作を完了するための条件が複雑となり、それらすべてを網羅してプログラムを作成することは困難である。本開示の一実施形態によれば、動作が失敗するプログラム部品が強調表示されるため、動作が失敗するプログラム部品を容易に特定することができる。
【0106】
なお、プログラムで発生するエラーを通知するとき、プログラミング言語の言語仕様の文脈でエラーの内容(例えば、構文エラー、変数の型の不一致エラー)を示すことが考えられる。プログラミング学習を目的とするプログラミングにおいては、プログラミングに精通していない人物であっても理解できるようにエラーの内容を説明するとよい。本開示の一実施形態によれば、被制御キャラクタの動作の文脈に従って動作が失敗する理由を示すため、プログラミングに精通していない人物であっても動作が失敗する理由を容易に理解することができる。
【0107】
[情報処理装置のハードウェア構成]
前述した実施形態における各装置(情報処理装置100)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、CD-ROM(Compact Disc-Read Only Memory)、USB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアの処理の全部又は一部がASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の回路に実装されることにより、当該ソフトウェアによる情報処理がハードウェアにより実行されてもよい。
【0108】
ソフトウェアを収納する記憶媒体は、光ディスク等の着脱可能なものでもよいし、ハードディスク、メモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし(主記憶装置、補助記憶装置等)、コンピュータ外部に備えられてもよい。
【0109】
図12は、前述した実施形態における各装置(情報処理装置100)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0110】
図12のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図12では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(情報処理装置100)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0111】
前述した実施形態における各装置(情報処理装置100)の各種演算は、1又は複数のプロセッサを用いて、又はネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実現されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0112】
プロセッサ71は、少なくともコンピュータの制御又は演算のいずれかを行う電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、ASIC等)であってもよい。また、プロセッサ71は、汎用プロセッサ、特定の演算を実行するために設計された専用の処理回路又は汎用プロセッサと専用の処理回路との両方を含む半導体装置のいずれであってもよい。また、プロセッサ71は、光回路を含むものであってもよいし、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0113】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェアに基づいて演算処理を行ってもよく、演算結果や制御信号を各装置等に出力してもよい。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0114】
前述した実施形態における各装置(情報処理装置100)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0115】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶してもよく、主記憶装置72に記憶された情報がプロセッサ71により読み出されてもよい。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ又は不揮発性メモリのいずれでもよい。前述した実施形態における各装置(情報処理装置100)において各種データ等を保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における各記憶部は、主記憶装置72又は補助記憶装置73により実現されてもよい。
【0116】
前述した実施形態における各装置(情報処理装置100)が、少なくとも1つの記憶装置(メモリ)と、この少なくとも1つの記憶装置に接続(結合)される少なくとも1つのプロセッサで構成される場合、記憶装置1つに対して、少なくとも1つのプロセッサが接続されてもよい。また、1つのプロセッサに対して、少なくとも1つの記憶装置が接続されてもよい。また、複数のプロセッサのうち少なくとも1つのプロセッサが、複数の記憶装置のうち少なくとも1つの記憶装置に接続される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0117】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか又はそれらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0118】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
【0119】
外部装置9Aはコンピュータ7とネットワークを介して接続されている装置である。外部装置9Bはコンピュータ7と直接接続されている装置である。
【0120】
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0121】
また、外部装置9A又は外部装置Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0122】
また、外部装置9Aまた外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aはネットワークストレージ等であってもよく、外部装置9BはHDD等のストレージであってもよい。
【0123】
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(情報処理装置100)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bに処理結果の一部又は全部を送信してもよいし、外部装置9A又は外部装置9Bから処理結果の一部又は全部を受信してもよい。
【0124】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0125】
本明細書(請求項を含む)において、「データを入力として/を用いて/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、データそのものを用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を用いる場合を含む。また、「データを入力として/を用いて/データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合(同様な表現を含む)、特に断りがない場合、当該データのみに基づいて当該結果が得られる場合や、当該データ以外の他のデータ、要因、条件及び/又は状態にも影響を受けて当該結果が得られる場合を含む。また、「データを出力する」旨が記載されている場合(同様な表現を含む)、特に断りがない場合、データそのものを出力として用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、各種データの中間表現等)を出力として用いる場合を含む。
【0126】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0127】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ、専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造等が動作Bを実際に実行するように構築(implemented)されていればよい。
【0128】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」、「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0129】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」、「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0130】
本明細書において、ある実施形態の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施形態についても当該効果が得られると理解されるべきである。但し、当該効果の有無は、一般に種々の要因、条件及び/又は状態に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件及び/又は状態が満たされたときに実施形態に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0131】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現(同様な表現を含む)が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、電子回路を含む装置等を含んでよい。
【0132】
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置のうち個々の記憶装置は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。また、複数の記憶装置のうち一部の記憶装置がデータを記憶する構成を含んでもよい。
【0133】
本明細書(請求項を含む)において、「第1の」、「第2の」等の用語は、単に2つ以上の要素間を区別する方法として使用されており、その対象に対して時間的態様、空間的態様、順序、量等の技術的意味を課すことを必ずしも意図するものではない。したがって、例えば、第1の要素及び第2の要素への参照は、2つの要素のみがそこで採用され得ること、第1の要素が第2の要素に先行しなければならないこと、第2の要素が存在するために第1の要素が存在しなければならないこと等を必ずしも意味するものではない。
【0134】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において、種々の追加、変更、置き換え、部分的削除等が可能である。例えば、前述した実施形態において、数値又は数式を説明に用いている場合、これらは例示的な目的で示されたものであり、本開示の範囲を限定するものではない。また、実施形態で示した各動作の順序も例示的なものであり、本開示の範囲を限定するものではない。
【符号の説明】
【0135】
100 情報処理装置
101 操作受付部
102 画面表示部
103 プログラミング部
104 エラー検出部
105 エラー通知部
106 メッセージ記憶部
107 コード変換部
108 動作制御部
【要約】
【課題】動作が失敗するプログラム部品を通知可能な情報処理装置を提供する。
【解決手段】情報処理装置が、少なくとも1つのメモリと、少なくとも1つのプロセッサと、を備え、少なくとも1つのプロセッサは、キャラクタに指示する動作を示すプログラム部品を配置する画面を表示し、動作が失敗するプログラム部品を検出し、検出したプログラム部品を強調表示する。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12