【文献】
Neil Desai,WWDC 2015 Session 108 watchOS,Building Watch Apps,米国,APPLE INC.,2015年 6月12日,URL,https://developer.apple.com/videos/play/wwdc2015/108/
【文献】
松浦 博、他,マルチーモーダル対話システムのためのUI設計支援ツール,情報処理学会研究報告,日本,社団法人情報処理学会,1994年10月21日,Vol.94 No.90,p.37−42
(58)【調査した分野】(Int.Cl.,DB名)
複数のコンテンツの各々に対応する複数のUI画面を制作するUI制作手段であって、前記複数のコンテンツの各々は、それぞれ異なる機器に対応するコンテンツであり、かつ前記複数のUI画面の各々は、それぞれ異なる機器に備えられた表示画面に表示される、UI制作手段と、
前記UI制作手段により制作された前記複数のUI画面の各々を制御するコンテキストを作成し、作成したコンテキスト及び前記複数のUI画面の各々のフレームレートに基づいて、前記複数のUI画面の各々のプレビューを1つの画面に同時に表示するマルチプレビュー実行手段と、
前記マルチプレビュー実行手段によりプレビュー表示された前記複数のUI画面のうち、少なくとも1つのUI画面で発生したイベントの情報を含むメッセージを、他のUI画面に対応するコンテキストに発行することで、前記複数のUI画面の各々の間の連携を行う連携手段と、
前記連携手段により発行されたメッセージに応じてコンテキストを変更することによって、前記複数のUI画面を生成する画面生成手段とを有することを特徴とするUI制作装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について詳細に説明する。
【0013】
<UI制作装置の機能構成例>
図1は、本実施形態におけるUI制作装置の機能構成の一例を示している。
図1に示すように、UI制作装置10は、入力手段11と、出力手段12と、記憶手段13と、UI制作手段14と、設定手段15と、マルチプレビュー実行手段16と、連携手段17と、画面生成手段18と、通信手段19と、制御手段20とを有する。
【0014】
入力手段11は、本実施形態におけるUI制作処理に関する各種指示の開始/終了、設定等の入力等を受け付ける。入力手段11は、例えばUI制作装置10がPC(Personal Computer)等の汎用のコンピュータであれば、キーボードやマウス等のポインティングデバイスである。また、UI制作装置10が、タブレット端末やスマートフォン等であれば、タッチパネル等である。また、入力手段11は、例えば音声等により上述した入力が可能なマイク等の音声入力デバイスであってもよい。
【0015】
出力手段12は、入力手段11により入力された内容や、入力内容に基づいて実行された内容等を出力する。出力手段12は、例えばディスプレイやスピーカ等である。出力手段12は、入力手段11と一体型のタッチパネルであってもよい。また、出力手段12は、処理結果等を紙等の印刷媒体に印刷するプリンタ等の印刷デバイスであってもよい。
【0016】
記憶手段13は、本実施形態において必要な各種情報を記憶する。例えば、記憶手段13は、本実施形態におけるUI制作処理を実行するための各種プログラム(アプリケーション、ソフトウェア等)や、各種設定情報等を記憶する。また、記憶手段13は、実行経過や実行結果(履歴情報)、エラー情報、ユーザ情報等を記憶してもよい。
【0017】
ここで、記憶手段13は、上述したような多種の情報の集合物であり、例えばキーワード等を用いて検索し、抽出可能に体系的に構成されているデータベースとしての機能を有していてもよい。更に、記憶手段13に記憶される情報は、例えばインターネットやLAN(Local Area Network)に代表される通信ネットワークを介して接続される外部装置等から取得してもよい。
【0018】
UI制作手段14は、複数のコンテンツ(例えば映像、画像、音楽、メール、地図表示、速度表示等の多種のコンテンツ)の各々に対応する複数のUI画面を制作する。本実施形態では、UIを開発するための統合的なソフトウェア群が記憶手段13に記憶されている。UI制作手段14は、これらのソフトウェア群を用いて、各機器に対応したUIを制作することができる。また、UI制作手段14は、複数のプラグインを結合することでUI画面を制作してもよい。
【0019】
なお、対象の機器は、例えばユーザが操作したり、参照するための画面(表示手段)を備えた機器であり、例えばPCや、サーバ、タブレット端末、スマートフォン、ウェアラブル端末等であるが、これに限定されるものではなく、例えばカーナビゲーション画面や車両のインストルメントパネル(以下、「インパネ」と略称する)、ゲーム機器等の表示手段であってもよい。
【0020】
設定手段15は、設定ダイアログ画面等により、複数のUIの動作を確認するためのマルチプレビュー実行時における処理内容の設定を行う。設定内容としては、例えば同期制御を行う複数のUIコンテンツの設定や、開始スクリーンの設定、受信イベントの設定、連携させる各UIに対応するコンテキストを識別するコンテキストIDの設定、UIのプレビュー時の表示速度を設定するFPS(Frames Per Second)設定等を行う。なお、コンテキストとは、例えばプログラムの内部状態や状況、条件等の情報であり、コンテキストの内容に対応させてUI画面が作成され、画面に表示される。
【0021】
本実施形態では、上述した設定情報に基づき、1つのUI制作装置10で複数の機器(デバイス)に対応する複数のUIを作成したり、プレビューすることができる。なお、設定内容については、これに限定されるものではなく、例えば、マルチプレビューを実行できるユーザの権限を設定し、UIの制作者を限定したり、複数の制作者のうち、選択された制作者のみが、マルチプレビューを実行できるような仕組みを設けてもよい。
【0022】
マルチプレビュー実行手段16は、予め複数のUIコンテンツを用意し、プレビュー毎に独立したコンテキストを作成する。つまり、マルチプレビュー実行手段16は、複数のUI画面の各々をプレビューするようにシミュレート(制御)するためのコンテキストを作成する。なお、複数のUIコンテンツは、異なる機器に対応するコンテンツであるが、これに限定されるものではなく、例えば同一機器を含む複数の機器に対応するコンテンツであってもよい。
【0023】
また、マルチプレビュー実行手段16は、コンテキストにUIコンテンツの情報を適用して、プレビュー毎にウィンドウを作成して、画面表示する。これにより、複数のディスプレイ(デバイス)のUIの動きを同期させて確認できる。なお、本実施形態では、プレビュー毎にウィンドウを作成して、それぞれの別画面にしなくてもよく、1つのウィンドウ内に複数のプレビューを表示させてもよい。
【0024】
また、マルチプレビュー実行手段16は、プレビューでユーザ操作により何らかのイベント(例えば、画面上のアイコンのタッチ等)が発生すると、そのイベント情報と共に、送り先のコンテキストIDを含むメッセージを発行する。また、マルチプレビュー実行手段16は、発行されたメッセージを、指定されたコンテキストIDのコンテキストに送信する。
【0025】
連携手段17は、マルチプレビュー実行手段16によりプレビュー表示された複数のUI画面のうち、少なくとも1つのUI画面で発生したイベント情報を含むメッセージを、他のUI画面に対応するコンテキストに発行することで、複数のUI画面の各々の間の連携を行う。例えば、連携手段17は、対象の機器用のコンテキストがメッセージを受け取り、受け取ったメッセージの内容に応じて対象のUIコンテンツを変化させる。UI画面が変更され、ディスプレイ間で連動するUIを確認することができる。
【0026】
画面生成手段18は、本実施形態における各種画面の生成を行い、生成した画面の内容を出力手段12に表示する。例えば、画面生成手段18は、連携手段17により発行されたメッセージに含まれるイベント情報に応じて、既存のコンテキストの内容を変更することによって、1又は複数のUI画面を生成する。
【0027】
なお、画面生成手段18は、例えば、UI制作手段14により制作されたUI画面や、設定手段15により設定されるマルチプレビューの設定ダイアログ画面、マルチプレビュー実行手段16により実行されたマルチプレビュー画面、連携手段17による同期処理結果の画面等を生成することができる。なお、画面生成手段18が生成する画面例については、これに限定されるものではない。
【0028】
通信手段19は、インターネットやLAN等に代表される通信ネットワークを介して、他の装置とデータの送受信等を行う。例えば、UI制作装置10は、通信手段19を介して記憶手段13に記憶されたデータや、UI制作手段14により制作されたUIを対象機器に導入(例えば、インストール)するためのUI情報(実行プログラム)、各種設定情報等を他の装置に送信したり、他の装置に記憶された各種データを取得して、記憶手段13に記憶させる等の処理を行う。
【0029】
制御手段20は、UI制作装置10の各構成部の動作等を制御する。制御手段20は、例えばUI制作手段14によるUI制作、設定手段15による各種情報設定、マルチプレビュー実行手段16によるマルチプレビュー画面、連携手段17による各種連携、画面生成手段18による画面生成、通信手段19による各種データの送受信等の処理を行う。
【0030】
また、制御手段20は、処理の開始や終了、エラー発生時の処理等を行うことができる。なお、制御手段20により制御される内容としては、これに限定されるものではない。
【0031】
UI制作装置10は、例えばPCやサーバ等であるが、これに限定されるものではなく、例えば一以上の情報処理装置を有するクラウドコンピューティングで構成されたクラウドサーバ等でもよい。
【0032】
<UI制作装置10のハードウェア構成例>
次に、UI制作装置10のハードウェア構成例について、図を用いて説明する。
図2は、本実施形態におけるUI制作装置のハードウェア構成の一例を示す図である。
図2の例において、UI制作装置(コンピュータ)10は、入力装置31と、出力装置32と、ドライブ装置33と、補助記憶装置34と、主記憶装置35と、CPU(Central Processing Unit)36と、通信制御装置37とを有し、これらはシステムバス38で相互に接続されている。
【0033】
入力装置31は、例えばユーザ等が操作するキーボード及びマウス等のポインティングデバイスや、マイクロフォン等の音声入力デバイス、コントローラ等の操作デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等の入力を受け付ける。
【0034】
出力装置32は、本実施形態における処理を行うためのコンピュータ本体(UI制作装置10)を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ等を有する。出力装置32は、CPU36が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
【0035】
ここで、本実施形態において、例えばコンピュータ本体にインストールされる実行プログラムは、記録媒体39等により提供される。記録媒体39は、ドライブ装置33にセット可能である。CPU36からの制御信号に基づき、記録媒体39に格納された実行プログラムが、記録媒体39からドライブ装置33を介して補助記憶装置34にインストールされる。
【0036】
補助記憶装置34は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等のストレージ手段等である。補助記憶装置34は、CPU36からの制御信号に基づき、本実施形態における実行プログラム(UI制作プログラム)や、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。補助記憶装置34は、CPU36からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
【0037】
主記憶装置35は、CPU36により補助記憶装置34から読み出された実行プログラム等を格納する。主記憶装置35は、ROM(Read Only Memory)やRAM(Random Access Memory)等である。
【0038】
CPU36は、OS(Operating System)等の制御プログラム、及び主記憶装置35に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現する。プログラムの実行中に必要な各種情報等は、補助記憶装置34から取得することができ、また実行結果等を格納することもできる。
【0039】
具体的には、CPU36は、例えば入力装置31から得られるプログラムの実行指示等に基づき、補助記憶装置34にインストールされたプログラムを実行させることにより、主記憶装置35上でプログラムに対応する処理を行う。例えば、CPU36は、UI制作プログラムを実行させることで、UI制作手段14によるUI制作、設定手段15による各種情報設定、マルチプレビュー実行手段16によるマルチプレビュー画面、連携手段17による各種連携、画面生成手段18による画面生成、通信手段19による各種データの送受信等を制御する。CPU36における処理内容は、これに限定されるものではない。CPU36により実行された内容は、必要に応じて補助記憶装置34等に記憶される。
【0040】
通信制御装置37は、上述した通信ネットワークを介して、他の外部装置との通信を行う。通信制御装置37は、CPU36からの制御信号に基づき、通信ネットワーク等と接続することにより、実行プログラムやソフトウェア、設定情報等を外部装置等から取得する。また、通信制御装置37は、プログラムを実行することで得られた実行結果を外部装置等に提供したり、本実施形態における実行プログラム自体を外部装置等に提供してもよい。
【0041】
記録媒体39は、上述したように実行プログラム等が格納されたコンピュータで読み取り可能な記録媒体である。記録媒体39は、例えばフラッシュメモリ等の半導体メモリやCD−ROM、DVD等の可搬型の記録媒体であるが、これに限定されるものではない。
【0042】
図2に示すハードウェア構成に実行プログラム(例えば、UI制作プログラム等)をインストールすることで、ハードウェア資源とソフトウェアとが協働して本実施形態におけるUI制作等の各種情報処理を実現することができる。
【0043】
<UI制作処理>
次に、本実施形態におけるUI制作処理の一例について、フローチャートを用いて説明する。
図3は、本実施形態におけるUI制作処理の一例を示すフローチャートである。
図3の例において、UI制作装置10で、UI制作が開始される(S01)。ユーザは、マルチプレビュー用の設定を行う(S02)。S02の処理では、例えば複数のUIコンテンツの設定や、開始スクリーンの設定、受信イベントの設定、コンテキストID設定、FPS設定等を行うが、これに限定されるものではない。これらの各設定情報は、記憶手段13に記憶される。
【0044】
次に、マルチプレビュー実行手段16は、マルチプレビュー開始コマンドを実行すると(S03)、記憶手段13に記憶された設定情報を読み出し(S04)、設定したコンテンツ毎に独立したUIコンテキストを作成する(S05)。また、作成したUIコンテキストにUIコンテンツを適用し(S06)、UIのプレビュー毎にウィンドウを作成する(S07)。
【0045】
また、マルチプレビュー実行手段16は、ユーザ指示等により、プレビューからのイベントを発生させ(S08)、送り先のコンテテキストIDを含むメッセージを発行する(S09)。
【0046】
次に、UIのプレビューを作成し、連携している各機器に対応するコンテキストがメッセージを受け取るとUIコンテンツが変化するように、連携手段17が、UIの同期制御処理を行う(S10)。これによって、画面間で連動するUIが画面に表示される(S11)。
【0047】
次に、制御手段20は、ユーザ指示等によりマルチプレビューによる同期制御等の処理を終了するか否かを判断し(S12)、処理を終了しない場合(S12において、NO)、S08の処理に戻る。また、処理を終了する場合(S12において、YES)、制御手段20は、ユーザ指示等によりUI制作を終了するか否かを判断する(S13)。UI制作を終了しない場合(S13において、NO)、S02の処理に戻る。また、UI制作を終了する場合(S13において、YES)、制御手段20は、UI制作処理を終了する。
【0048】
<本実施形態におけるUI制作について>
次に、本実施形態におけるUI制作の具体例について、図を用いて説明する。
図4は、本実施形態におけるUI制作画面の一例を示す図である。
図4の例は、UI制作装置10の出力手段12のディスプレイに表示されるUI制作画面40を示している。
【0049】
UI制作画面40は、画面生成手段18で生成される画面であり、コンポーネント設定領域41、UI表示領域42、ツール領域43とを有する。
【0050】
コンポーネント設定領域41は、制作する対象のUIに対する各種コンポーネント、アクション、オブジェクト等の設定を行う。コンポーネントの一例としては、グラフィック用のコンポーネントやイベント用のコンポーネント、イベントに対応した処理を行うアクションコンポーネント、レイアウトを生成するためのレイアウトコンポーネント、画面の所定領域を設定するためのピックエリアコンポーネント、基本構成等を設定するベースコンポーネント等があるが、これに限定されるものではない。また、UI表示領域42は、制作する対象のUI画面が表示される。UI制作手段14は、ユーザ指示により、コンポーネント設定領域41内の各項目、及びツール領域43に表示される各アイコン情報等を、UI表示領域42に移動(例えば、ドラッグ&ドロップ操作)することで、UI画面を制作することができる。
【0051】
ツール領域43には、アイコンに対応させて各ファイルやソフトウェアを実行するための各種ツールの一覧が表示されている。UI制作手段14は、ユーザ指示により、選択された何れかのツールをUI表示領域42に移動させることで、UI画面を制作することができる。ツールの一例としては、動画(movie)、音楽(music)、画像(image)、Web(ブラウザ)、テキストファイル(text)等があるが、これに限定されるものではない。これらのツールを用いることで、UIのデザイン、UIによる対話機能の設定、アニメーションの作成、画面遷移の設定、プレビュー画面の表示、データベースへの接続設定、ローカライゼーションの指定、ドキュメントの出力の機能等の多種の処理を実現することができる。
【0052】
本実施形態では、
図4に示すように、UI制作において、使い易いツールで高い生産性を実現することができる。また、本実施形態では、ドラッグ&ドロップ操作でUIを作成していくことができるため、専門知識を有していない人でも容易にUI画面を制作することができる。
【0053】
なお、本実施形態では、UI制作においてプラグインアーキテクチャを用いている。
図5は、本実施形態におけるプラグインアーキテクチャの一例を示す図である。
図5に示すように、UI制作手段14は、UI制作における基本のソフトウェア群50に対して、グラフィックプラグイン(例えば、テキスト表示、画面表示、矩形・楕円描画等)51、イベントプラグイン(例えば、タッチ入力の機能、キー入力の機能、タイマー設定の機能等)52、画面上のボタンの押下等に対するアクションの機能であるアクションプラグイン53、リソース設定の機能等であるリソースプラグイン54等を追加することができる。また、本実施形態では、各機器毎に設定される独自の機能55等もプラグインとして追加することができる。これにより、ツールとして、又はランタイムとして、各プラグインを追加することで、新たな機能を利用することができる。これにより、高い拡張性を実現することができる。
【0054】
<連携手段17について>
次に、上述した連携手段17の処理について、マルチプレビュー画面を例に図を用いて説明する。
図6は、本実施形態におけるマルチプレビュー画面の一例を示す図である。なお、
図6の例では、連携させる複数のUIコンテンツの一例として、車両のインパネ用画面60と、スマートフォンのコンテンツ選択用画面61とを示している。インパネ用画面60と、コンテンツ選択用画面61とは、それぞれUI制作手段14で制作されたUI画面(例えば、GUI画面)である。各UI画面は、連携させる対象のUI画面である。
【0055】
例えば、
図6に示すように、コンテンツ選択用画面61において、画面の複数のアイコンからミュージックのツール(アプリケーション)を起動させるアイコン62を選択すると、スマートフォンが音楽再生用の画面に切り替わると共に、画面間でイベントの送受が行われ、インパネ用画面60の連携表示領域63にも、スマートフォンが音楽(Music)のアプリを実行している旨が表示される。
【0056】
なお、マルチプレビューの画面数は、2つに限定されるものではなく、3以上の画面間で同期制御を行うことができる。また、
図6に示す例では、1つのウィンドウに1つのプレビュー画面を表示したが、これに限定されるものではなく、1つのウィンドウに複数のプレビュー画面を表示してもよい。
【0057】
このように、本実施形態では、開発段階において、複数の機器の表示画面間で連動するUIを作成し、プレビューすることができる。これにより、早い段階でUI画面の連携した動作も含めたプロトタイプを作成することができ、正確な仕様を早期に固めることができ、開発コストも削減することができる。
【0058】
なお、本実施形態において、マルチプレビュー実行手段16は、各画面を表示する対象機器の性能等に合わせてFPSの上限を固定にしたり、FPSを表示する機能を設けてもよい。
【0059】
図7は、UI画面間の連携を説明するための図である。本実施形態では、2つのUIコンテンツ71A,71Bを、それぞれ独立したコンテキスト72A,72Bに読み込み、同時に複数ディスプレイのUIプレビュー(プレビュー画面)73A,73Bの表示を行う。コンテキスト間でメッセージを送受信し、その送受信した結果を反映した画面をディスプレイに表示することで、画面間の連携を開発段階で確認することができる。
【0060】
また、このとき、設定手段15において、プレビュー時のFPSをデバイスに対応付けて設定することで、異なるデバイスの描画性能をPC等の1つの端末上で高精度にシミュレーションすることができる。プレビュー画面73A,73Bでは、UI画面をプレビュー表示している場合のFPSが表示されているが、UIプレビューの表示内容については、これに限定されるものではない。なお、
図7の処理は、プレビューのUI間のシミュレーションであり、実機での通信の方法(プロトコル等)は、上述したメッセージの送受信の方法とは別に自由に規定することができる。
【0061】
また、本実施形態では、UI制作手段14において、制作した画面間において、連携動作を示したが、例えば外部デバイス(外部機器)等からの入力情報を用いて連携動作の確認を行ってもよい。
【0062】
図8は、外部デバイスからの入力情報を用いた連携動作を説明するための図である。
図8の例では、外部デバイス81A〜81C等の入力をイベントとして送信し、それらのイベントを処理するためのツールをプレビューするためのプラグイン82A〜82Cを作成する。なお、
図8の例では、外部デバイスからのイベントを受け取りを処理するためのプラグインが設けられていてもよい。連携手段17は、その各イベントを取得し、取得したイベントに対する処理を各画面に対応させて実行し、
図8に示すようなマルチプレビュー83による画面間の連携(同期制御)を実現することができる。
【0063】
<本実施形態の具体例>
上述した本実施形態におけるUI制作処理は、例えば車両におけるカーナビゲーションシステムの画面と、その車両のインパネ画面と、その車両の搭乗者の携帯端末(例えばスマートフォン)の画面との間で、表示内容を連動させた開発を迅速に行うことができる。
【0064】
また、本実施形態におけるUI制作処理は、例えばゲームセンター等にあるアーケードゲームやパチンコ等の遊戯機器等の分野においては、遊技者がプレイするために各遊技機器に設置された個々の画面(メイン画面)と、その画面の内容を複数の人が見れるようにゲームセンター側で設置したスクリーン画面とがある場合に、それらを画面間で連動させたUI制作を行うことができる。
【0065】
また、本実施形態におけるUI制作処理は、例えば医療システムの分野においては、患者が個人の情報にアクセスできる端末の個別画面と、巡回する医師や看護師が所持し、その場で患者の状況を入力できる電子カルテ用力タブレット端末の画面と、データ化された情報をリアルタイムで管理する統合管理端末の画面との間で、患者の情報を連携させるような場合のUI画面の制作にも適用することができる。
【0066】
上述したように、本実施形態によれば、UI制作の効率化を実現することができる。例えば、本実施形態によれば、複数の表示装置(マルチディスプレイ)に対するUIをまとめてオーサリング(制作)することができる。なお、上述した実施形態では、UI制作における複数の画面間の連携動作について説明したが、これに限定されるものではなく、1つのUI画面の中で機能の連携を設計する際にも適用することができる。
【0067】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲において、種々の変形及び変更が可能である。また、上述した各実施例の一部又は全部を組み合わせることも可能である。
【解決手段】UI制作装置において、複数のコンテンツの各々に対応する複数のUI画面を制作するUI制作手段と、前記UI制作手段により制作された各UI画面の各々を制御するコンテキストを作成し、作成したコンテキストに基づいて、前記複数のUI画面の各々のプレビューを同時に表示するマルチプレビュー実行手段と、前記マルチプレビュー実行手段によりプレビュー表示された前記複数のUI画面のうち、少なくとも1つのUI画面で発生したイベントの情報を含むメッセージを、他のUI画面に対応するコンテキストを発行することで、前記複数のUI画面の各々の間の連携を行う連携手段と、前記連携手段により発行されたメッセージに応じてコンテキストを変更することによって、前記複数のUI画面を生成する画面生成手段とを有することにより、上記課題を解決する。