JP2017151806A - 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置 - Google Patents

情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置 Download PDF

Info

Publication number
JP2017151806A
JP2017151806A JP2016034704A JP2016034704A JP2017151806A JP 2017151806 A JP2017151806 A JP 2017151806A JP 2016034704 A JP2016034704 A JP 2016034704A JP 2016034704 A JP2016034704 A JP 2016034704A JP 2017151806 A JP2017151806 A JP 2017151806A
Authority
JP
Japan
Prior art keywords
straight line
information processing
calculating
rotation axis
dimensional object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016034704A
Other languages
English (en)
Other versions
JP6360509B2 (ja
Inventor
直徳 大西
Naonori Onishi
直徳 大西
宏明 蛭間
Hiroaki HIRUMA
宏明 蛭間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2016034704A priority Critical patent/JP6360509B2/ja
Priority to US15/213,653 priority patent/US10950048B2/en
Priority to EP16180082.6A priority patent/EP3211604B1/en
Publication of JP2017151806A publication Critical patent/JP2017151806A/ja
Application granted granted Critical
Publication of JP6360509B2 publication Critical patent/JP6360509B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/426Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】表示されている3次元オブジェクトを回転させる操作に関して、直感的な回転操作が可能であり、また、3次元オブジェクトの柔軟な回転が可能となる情報処理プログラム等を提供すること。
【解決手段】仮想3次元空間に3次元オブジェクトが配置された仮想3次元空間の画像が表示される。この3次元オブジェクトにおける所定の2点に基づいて第1の直線が算出され、更に、第1直線と直交する第2直線が算出される。そして、ポインティングデバイスによる入力に基づいて第1直線および第2直線のいずれか一方が回転軸として選択され、当該回転軸を中心として3次元オブジェクトの回転が行われる。
【選択図】図10

Description

本発明は、ポインティングデバイスによる操作入力に基づいて3次元オブジェクトを操作する情報処理に関し、より特定的には、画面に表示されている3次元オブジェクトを回転する処理に関する。
従来から、3次元オブジェクトの表示処理装置が知られている。そして、表示されている3次元オブジェクトを回転や移動させるために、ダイヤル式入力装置の操作を利用する表示処理装置が知られている(例えば特許文献1)。このような表示処理装置では、ダイヤル式入力装置の押し込み操作に基づいて、仮想3次元空間におけるx軸、y軸、z軸のうちのいずれか1軸が回転軸として選択される。そして、ダイヤル式入力装置の回転操作の回転方向および回転量に基づき、上記選択された回転軸を中心に回転させていた。
特開2004−259063号公報
上記の表示処理装置では、ダイヤル式入力装置の1回の押し込み操作に応じて、仮想3次元空間内のx軸、y軸、x軸を予め決められた順番に切り替えて回転軸を選択していた。そのため、直感的な回転操作が行いにくい側面があった。また、回転軸として選択される3軸は、3次元仮想空間におけるx軸、y軸、z軸として固定されている軸であった。そのため、3次元オブジェクトの回転の柔軟性に欠けるという側面もあった。
それ故に、本発明の目的は、表示されている3次元オブジェクトを回転させる操作に関して、直感的な回転操作が可能であり、また、3次元オブジェクトの柔軟な回転が可能となる情報処理プログラム等を提供することである。
上記目的を達成するために、例えば以下のような構成例が挙げられる。
構成例の一例は、ポインティングデバイスによる入力を受け付け可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、オブジェクト配置手段と、3次元画像表示手段と、第1直線算出手段と、第2直線算出手段と、回転軸選択手段と、第1のオブジェクト回転手段としてコンピュータを機能させる。オブジェクト配置手段は、仮想3次元空間に3次元オブジェクトを配置する。3次元画像表示手段は、仮想カメラで仮想3次元空間を撮影した3次元画像を画面に表示する。第1直線算出手段は、3次元オブジェクトにおける所定の2点に基づいて第1の直線を算出する。第2直線算出手段は、第1直線と直交する第2直線を算出する。回転軸選択手段は、ポインティングデバイスのよる入力に基づいて第1直線および第2直線のいずれか一方を回転軸として選択する。第1のオブジェクト回転手段は、選択された回転軸を中心として3次元オブジェクトを回転させる。
上記構成例によれば、3次元オブジェクトを回転させる操作について、直感的な操作性を提供することができる。
他の構成例として、前記第2直線算出手段は、第1直線を所定の平面に射影することによって得られる直線である第3直線を算出する第3直線算出手段と、所定の平面上において第3直線に直交する直線である第4直線を算出する第4直線算出手段とを含んでいてもよい。そして、第2直線算出手段は、所定の平面から仮想3次元空間内の3次元オブジェクトに第4直線を平行移動することによって得られる直線を第2直線として算出するようにしてもよい。
上記構成例によれば、3次元オブジェクトの姿勢に応じて第2直線を算出することができ、3次元オブジェクトの柔軟な回転操作を提供することができる。
他の構成例として、情報処理プログラムは、ポインティングデバイスによる操作に基づいて、所定の平面上における当該操作にかかるベクトルを算出する操作ベクトル算出手段として更に前記コンピュータを機能させてもよく、回転軸選択手段は、操作ベクトル算出手段が算出したベクトルを第3直線および第4直線の少なくとも一方に射影し、当該射影した直線上における当該ベクトルの長さに基づいて、第1直線および第2直線のうちの一方を選択するようにしてもよい。更には、回転軸選択手段は、操作ベクトル算出手段が算出したベクトルを第3直線および第4直線の双方に射影し、当該射影したそれぞれの直線上における当該ベクトルの長さが短いほうの直線に基づいて、第1直線および第2直線のうちの一方を選択するようにしてもよい。また、回転軸選択手段は、ベクトルの長さが短いほうの直線が第3直線である場合には、第1直線を選択し、ベクトルの長さが短いほうの直線が第4直線であるときには、第2直線を選択するようにしてもよい。
上記構成例によれば、3次元オブジェクトの回転に際し、ユーザの操作内容に対して違和感の少ない回転を行うことができる。
他の構成例として、情報処理プログラムは、ポインティングデバイスによる操作に基づいて、所定の平面上における当該操作にかかるベクトルを算出する操作ベクトル算出手段と、第1直線を所定の平面上に射影した直線の長さが所定値未満であるか否かを判定する長さ判定手段と、操作ベクトル算出手段が算出したベクトルの方向と直交する直線である第5直線を算出する第5直線算出手段としてコンピュータを更に機能させてもよい。そして、回転軸決定手段は、長さ判定手段によって射影した直線の長さが所定値未満であると判定されたときは、第5直線を仮想3次元空間内の前記3次元オブジェクトに平行移動することによって得られる直線を第2直線として算出し、当該第2直線を回転軸として選択してもよい。
上記構成例によれば、3次元オブジェクトの回転にかかる操作性を高めることができ、また、ユーザの操作内容に対して違和感の少ない、適切な回転を行うことができる。
他の構成例として、所定の平面は、ディスプレイ面または当該ディスプレイ面に平行な面であってもよく、ポインティングデバイスは、タッチパネルであってもよい。
上記構成例によれば、直感的な操作性を提供でき、また、操作内容に対して適切な回転を行うことができる。
他の構成例として、情報処理プログラムは、ポインティングデバイスによる操作に応じて、仮想3次元空間のワールド座標系における所定の1軸を中心として3次元オブジェクトを回転させる第2のオブジェクト回転手段としてコンピュータを更に機能させてもよい。
上記構成例によれば、3次元オブジェクトの姿勢をより自在に変化させることができ、また、その時々の姿勢に応じた適切な回転を行うことができる。
他の構成例として、第1のオブジェクト回転手段は、ポインティング操作に基づいて回転量を算出し、当該回転量に従って3次元オブジェクトを回転させてもよい。
上記構成例によれば、例えば1度のスワイプ操作で、3次元オブジェクトの回転軸と回転量の双方を決定することができ、操作性をより高めることができる。
本実施形態によれば、3次元オブジェクトを回転させる操作について、より直感的で違和感の少ない操作性を提供することができる。
スマートデバイス102の構成の一例を示すブロック図 本実施形態にかかる処理の画面例 第1の回転処理の原理を説明するための図 第1の回転処理の原理を説明するための図 第1の回転処理の原理を説明するための図 第1の回転処理の原理を説明するための図 第1の回転処理の原理を説明するための図 スマートデバイス102のメインメモリ113に格納されるプログラムおよびデータの一例 本実施形態にかかる処理の詳細を示すフローチャート 図9のステップS5の回転軸決定処理の詳細を示すフローチャート
以下、本発明の一実施形態について説明する。
本実施形態では、表示処理装置の一例として、スマートフォン等の、タッチ操作が可能な携帯型スマートデバイス(以下、単にスマートデバイスと呼ぶ)を想定する。本実施形態では、当該スマートデバイスの画面に3次元オブジェクトを表示する。そして、タッチパネルに対する操作(具体的には、スワイプ操作)に応じて当該3次元オブジェクトを回転させる処理を行う。
まず、本実施形態に係るスマートデバイスのハードウェアの構成について説明する。図1は、スマートデバイス102の機能ブロック図である。図1において、スマートデバイス102は、プロセッサ部111と、内部記憶装置112と、メインメモリ113と、操作部115と、表示部116とを備えている。プロセッサ部111は、後述する情報処理を実行したり、スマートデバイス102の全体的な動作を制御したりするためのシステムプログラム(図示せず)を実行することで、スマートデバイス102の動作を制御する。なお、プロセッサ部111は、単一のプロセッサを搭載してもよいし、複数のプロセッサを搭載するようにしてもよい。内部記憶装置14には、プロセッサ部111によって実行される各種プログラムや当該プログラムで利用される各種データが格納されている。内部記憶装置14は、例えば、フラッシュEEPROMやハードディスク装置である。メインメモリ15は、コンピュータプログラムや情報を一時的に記憶する。操作部115は、例えば、ユーザからの操作を受け付けるための入力装置である。表示部116は、典型的には液晶表示装置である。なお、本実施形態に係る処理では、操作部115及び表示部116として、液晶画面と一体化したタッチパネルを想定する。なお、他の実施形態では、操作部115として、タッチパネル以外の所定のポインティングデバイス(例えばタッチパッドやトラックボール等)を用いても良い。
次に、本実施形態にかかる情報処理の動作概要を説明する。図2は、本実施形態に係る処理の画面例を示す図である。図2において、表示部116には、3Dモデル表示領域151とメニュー表示領域152とが表示されている。メニュー表示領域152は、ユーザが、例えば3次元オブジェクト153のデータをロードしたりセーブしたり、当該3次元オブジェクトを編集したりするための各種命令を指示するための領域である。3Dモデル表示領域151は、3次元オブジェクト153が存在する仮想3次元空間画像を表示するための領域である。なお、本実施形態では、3次元オブジェクト153の一例として人型のオブジェクト(アバターオブジェクト)を例として示す。そして、本実施形態では、当該3Dモデル表示領域151に対して行われたタッチ操作に基づいて、3次元オブジェクト153に対する所定の処理が実行される。具体的には、本実施形態では、3Dモデル表示領域151に対するスワイプ操作に応じて、3次元オブジェクト153を回転させることできる(以下、第1の回転処理)。
ここで、本実施形態に係る上記第1の回転処理の原理について、図3〜図7を用いて説明する。まず、図3に示すように、仮想3次元空間内の3次元オブジェクト153における所定の2点を通過するような第1直線201が算出される。図3の例では、仮想3次元空間における3次元オブジェクト153の頭頂部と足先(かかとの部分)とを結ぶような直線として示されている。なお、この2点は図3の例に限るものではなく、どのような2点であってもよい。
次に、この第1直線201に直交する直線である第2直線202の算出が行われる。この第2直線202の算出は、以下のようにして行われる。まず、図3に示すように、第1直線201を所定の平面に射影することで得られる第3直線203が算出される。本実施形態では、この所定の平面は、ディスプレイ面であるとする(つまり、表示画面に相当する平面である)。なお、他の実施形態では、ディスプレイ面に平行な面を所定の平面としてもよい。
次に、図4に示すように、上記ディスプレイ面上において第3直線203と直交する第4直線204が算出される。そして、この第4直線204を仮想3次元空間内にある上記3次元オブジェクト153の中心点に平行移動して得られる直線が第2直線202として算出される。なお、他の実施形態では、3次元オブジェクト153の厳密な意味での中心点ではなく、中心点から少しずれた位置に平行移動してもよいし、中心ではない任意の位置、例えば、3次元オブジェクト153の頭部の中心点等に平行移動するようにしてもよい。
そして、第1の回転処理では、この第1直線201と第2直線202のいずれかが回転軸として選択される。具体的には、以下のようにして選択される。まず、図5に示すように、ユーザが行ったスワイプ操作のベクトル210(以下、スワイプベクトルと呼ぶ)が算出される。次に、このスワイプベクトル210が上記第3直線203および第4直線204に射影される。そして、射影した結果、第3直線203に対応する成分と、第4直線204に対応する成分とで、いずれが短いかが判定される。そして、第3直線203および第4直線204のうち、短い方の成分に対応するいずれか一方の直線が選択される。図5の例では、第3直線203が選択されることになる。
次に、第1の直線201と第2の直線202のうち、上記選択された直線に応じたほうの直線が回転軸として選択される。すなわち、上記射影の結果選択された直線が第3直線203の場合は、第1直線201が回転軸として選択される。また、上記射影の結果選択された直線が第4直線204の場合は、第2直線202が回転軸として選択される。図5の例では、第1直線201が回転軸として選択されることになる。
そして、上記選択された回転軸を中心として、上記スワイプベクトル210のスワイプ方向およびスワイプ距離(スワイプ量)に応じた3次元オブジェクト153の回転処理が行われる。
ところで、図6に示すように、3次元オブジェクト153の姿勢がディスプレイ面に対して直交する姿勢に近づいてくると、ディスプレイ面に射影した第1直線201が1点に収束してしまうことが考えられる。そのため、適切な回転処理を行う事が困難になることが考えられる。そこで、本実施形態では、このような場合(例えば第3直線203の長さが所定値未満となる場合)は、次のような処理を行う。まず、スワイプベクトル210に直交する直線が算出され、これを第5直線205とする。そして、上記第4直線の場合と同様に、第5直線205を平行移動して第2直線202が算出される。そして、当該第2直線202を中心として3次元オブジェクト153の回転処理が行われる(つまり、第3直線203の長さが所定値未満となる場合は、常に第2直線202が回転軸になる)。
このように、本実施形態では、スワイプ操作に基づいて、第1直線201と第2直線202のいずれかを回転軸として用いるような3次元オブジェクト153の回転処理を実行する。上記のような回転処理の実行により、直感的な回転操作が可能となる。また、第1直線201、第2直線202は3次元オブジェクト153の姿勢変化に応じて変化していくものであるため(つまり、固定的なものではないため)、柔軟な回転操作を行うことも可能となる。換言すれば、第1の回転処理は、3次元オブジェクト153を基準とした軸回りの回転を行うものといえる。
なお、上記第1の回転処理は、次のように捉えることも可能である。例えば、上記第1直線201をy軸とし、第2直線202をx軸とし、この双方に直交する軸をz軸とした、3次元オブジェクト153のローカル座標系を考える。そして、y軸は固定したまま、z軸の方向を、ワールド座標系における奥行き方向(z軸方向)に一致させる。そして、x軸がy軸およびz軸に直交するように、x軸を回転させることで、回転処理用のローカル座標系を導出する。そして、この回転処理用のローカル座標系におけるy軸またはx軸の一方を中心に、3次元オブジェクト153を回転させる処理である、と捉えることも可能である。
次に、上記第1の回転処理以外の操作に関して説明する。まず、3Dモデル表示領域151に対して2本指でタッチして、そのまま指を回転するように動かすことで、画面を正面から見た場合における奥行き方向の軸を中心とした3次元オブジェクト153の回転が可能である(以下、第2の回転処理)。なお、本実施形態では、上記第1の回転処理で用いられる回転軸と、第2の回転処理で用いられる回転軸は、異なる軸となっている。換言すれば、第2の回転処理は、仮想3次元空間のワールド座標系における所定の1軸(本例では奥行き方向の軸)を基準にして3次元オブジェクト153を回転させるものといえる。また、その他、3次元オブジェクト153をタッチしてドラッグ操作することで、3次元オブジェクト153を移動させることができる。また、ピンチイン、ピンチアウト操作に応じて、3次元オブジェクト153を縮小または拡大することができる。
このように、スワイプ操作以外でも3次元オブジェクトの表示態様を変更することが可能である。特に、第2の回転操作による3次元オブジェクト153の姿勢の変化も可能であることから、3次元オブジェクト153の適切な回転操作を行いやすくするために、上述の第1の回転操作にかかる処理は有効である。
次に、図8〜図10を参照して、本実施形態における処理の動作をより詳細に説明する。
まず、本実施形態に係る処理で用いられるデータについて説明する。図8は、スマートデバイス102のメインメモリ113に格納されるプログラムおよびデータの一例を示している。メインメモリ113には、表示制御プログラム221、操作データ222、3Dモデルデータ223等が格納される。
表示制御プログラム221は、上記説明したような回転処理等を実行するためのプログラムである。具体的には、後述する図9のフローチャート処理を実行するためのプログラムである。
操作データ222は、操作部115に対して行われた各種操作内容を示すデータである。本実施形態では、操作部115としてのタッチパネルへの入力の有無や、タッチ座標等を示すデータが含まれている。
3Dモデルデータ223は、上記3次元オブジェクト153を構成する3Dモデルデータである。
次に、図10〜図11のフローチャートを参照して、スマートデバイス102のプロセッサ部111によって実行される処理の流れを説明する。なお、図10におけるステップS2〜S9の処理ループは、例えば60フレーム毎に繰り返し実行されるものとする。
まず、本実施形態にかかるアプリケーションの起動命令が受け付けられると、ステップS1で、プロセッサ部111は、初期化処理を実行する。具体的には、本処理で用いられるデータを初期化する処理が実行される。更に、3Dモデルデータ223に基づいて3次元オブジェクト153が生成され、仮想3次元空間内に配置される。また、仮想カメラも当該仮想3次元空間内に配置される。そして、プロセッサ部111は、上記仮想3次元空間を仮想カメラで撮像した画像を生成し、3Dモデル表示領域151に表示する。
次にステップS2で、プロセッサ部111は、操作データ222を取得する。続くステップS3において、プロセッサ部111は、操作データ222に基づいて、3Dモデル表示領域151に対してのスワイプ操作が行われたか否かを判定する。その結果、スワイプ操作が行われているときは(ステップS23でYES)、そのスワイプ操作にかかる上記スワイプベクトルを算出する。次に、ステップS5で、第1の回転処理における回転軸を決定するための回転軸決定処理を実行する。
図10は、上記ステップS5の回転軸決定処理の詳細を示すフローチャートである。図10において、まず、ステップS21で、プロセッサ部111は、上述したような第1直線201を算出する処理を実行する。例えば、3次元オブジェクト153について予め定義されている所定の2点を結ぶ直線を算出する処理が実行される。
次に、ステップS22で、プロセッサ部111は、上記第1直線201を上記ディスプレイ面に射影することで、上記第3直線203を算出する。
次に、ステップS23で、プロセッサ部111は、上記第3直線203の長さが、所定値未満であるか否かを判定する。つまり、第1直線201がディスプレイ面に対してどの程度直交する姿勢(上記図6参照)に近いかを判定する。当該判定の結果、第3直線203の長さが所定値未満ではないときは(ステップS23でNO)、ステップS24で、プロセッサ部111は、ディスプレイ面において第3直線203に直交する上記第4直線204を算出する。続いて、ステップS25で、プロセッサ部111は、当該第4直線204を3次元オブジェクト153の中心に平行移動した直線を第2直線202として算出する。
次に、ステップS26で、プロセッサ部111は、上記スワイプベクトルを上記第3直線203、および、第4直線204に射影する。そして、プロセッサ部111は、当該射影にて得られた、スワイプベクトルにおける第3直線の成分と第4直線の成分の長さを比較する。そして、プロセッサ部111は、長さが短い方の成分に対応する直線を選択する。上記図5の例でいうと、スワイプベクトル210については、第4直線204の成分よりも第3直線203の成分のほうが短い。そのため、この図の場合は、第3直線203が選択されることになる。
なお、上記の比較の結果、スワイプベクトルにおける第3直線の成分と第4直線の成分の長さが同じであった場合は、例えば、その直前に実行された処理ループにおいて選択されていたほうの成分を選択するようにしてもよい。あるいは、上記長さが同じ場合は、いずれか一方を固定的に選択するようにしても良い。例えば、上記長さが同じ場合は、常に第3直線のほうを選択するようにしてもよい。
次に、ステップS27で、プロセッサ部111は、上記選択された直線に対応する第1直線201または第2直線202のいずれかを回転軸として決定する。第3直線203が選択されていた場合は第1直線201が選択され、第4直線204が選択されていた場合は第2直線202が選択されることになる。その後、回転軸決定処理は終了する。
一方、上記ステップS23の判定の結果、第3直線203の長さが所定値未満であったときは(ステップS23でYES)、ステップS28で、プロセッサ部111は、ディスプレイ面上で上記スワイプベクトルに直交する直線を上述の第5直線205として算出する。
次に、ステップS29で、プロセッサ部111は、上記第5直線205を上記3次元オブジェクト153の中心に平行移動した直線を第2直線202として算出する。
続いて、ステップS30で、プロセッサ部111は、上記ステップS29で算出された第2直線を回転軸として決定する。そして、回転軸決定処理は終了する。
図9に戻り、ステップS5の処理の次に、ステップS6で、プロセッサ部111は、上記回転軸決定処理で決定された回転軸を中心として3次元オブジェクト153を回転する処理を実行する。具体的には、プロセッサ部111は、上記スワイプベクトルに基づいて、スワイプ操作の方向およびその長さ(距離)を算出する。そして、この方向および長さに応じて、上記決定した回転軸を中心に3次元オブジェクト153を所定量だけ回転させる処理を実行する。
一方、上記ステップS3の判定の結果、スワイプ操作が行われていないときは(ステップS3でNO)、ステップS7で、プロセッサ部111は、操作データ222の内容に基づいた上記の処理以外の所定の処理を実行する。具体的には、操作データ222で示される操作内容が、ピンチイン、ピンチアウト操作のときは、その操作内容に応じて、3次元オブジェクト153を縮小または拡大表示する処理(仮想カメラの位置や画角の制御)を実行する。また、操作内容が、3次元オブジェクト153をタッチしてドラッグ操作している(選択しながらドラッグ操作している)場合は、このドラッグ操作の方向や距離に応じて、選択中の3次元オブジェクト153を仮想3次元空間内で移動させる処理を実行する。また、操作内容が上記第2の回転操作に相当する場合は、ディスプレイ面を正面から見た場合における奥行き方向に対応する、仮想3次元空間の方向軸を中心として3次元オブジェクト153を回転させる処理を実行する。つまり、仮想3次元空間内における奥行き方向の軸周りに3次元オブジェクト153を回転させる処理を実行する。また、操作内容が上記メニュー領域に対する操作であれば、プロセッサ部111は、そのタッチ位置に基づいた所定の処理を実行する。
次に、上記ステップS6またはS7の処理が終われば、ステップS8で、プロセッサ部111は、上記の処理が反映された3次元仮想空間を仮想カメラで撮像した画像を画面に描画する処理を実行する。
次に、ステップS9で、プロセッサ部111は、本処理の終了条件が満たされたか否かを判定し、満たしていれば(ステップS9でYES)、本処理を終了する。満たしていなければ(ステップS9でNO)、上記ステップS2に戻り、上記の処理を繰り返す。以上で、本実施形態に係る表示制御処理の詳細説明を終了する。
このように、本実施形態では、第1の回転処理として、第1直線201および第2直線202を利用した回転処理を行っている。換言すれば、スワイプ操作に応じて、2つの回転軸を利用した処理を行っている。また、回転軸の選択とその回転量とが1度のスワイプ操作で決定されている。これにより、直感的な回転操作をユーザに提供することができる。また、第1直線201および第2直線202の仮想空間内における姿勢は、上記の操作に応じて変化し得るため、3次元オブジェクト153の柔軟な回転も可能である
なお、上記第1直線201の算出の基となる2点については、予め定義されたものでもよいし、ユーザが自由に設定可能なようにしてもよい。また、上記の例では、第1直線201〜第5直線205のように「直線」として算出する例を示していたが、これらを「直線」ではなく「ベクトル」として算出して処理するようにしてもよい。
また、第1直線および第2直線から回転軸を決定する処理に関して、上記の例では、スワイプベクトル210を第3直線203および第4直線204の双方に射影する場合を示した。他の実施形態では、いずれか一方にのみ射影するようにしてもよい。例えば、スワイプベクトル210を第3直線203にのみ射影する。そして、射影した直線の長さが所定値未満であれば第1直線201を回転軸として選択し、所定値以上であれば第2直線202を選択する、というような処理を行っても良い。
また、上記実施形態では、上述のようなアプリケーションの一連の処理が単一のスマートデバイス102において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
102 スマートデバイス
111 プロセッサ部
112 内部記憶装置
113 メインメモリ
115 操作部
116 表示部

Claims (13)

  1. ポインティングデバイスによる入力を受け付け可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
    仮想3次元空間に3次元オブジェクトを配置するオブジェクト配置手段と、
    仮想カメラで前記仮想3次元空間を撮影した3次元画像を画面に表示する3次元画像表示手段と、
    前記3次元オブジェクトにおける所定の2点に基づいて第1の直線を算出する第1直線算出手段と、
    前記第1直線と直交する第2直線を算出する第2直線算出手段と、
    前記ポインティングデバイスによる入力に基づいて前記第1直線および第2直線のいずれか一方を回転軸として選択する回転軸選択手段と、
    前記選択された回転軸を中心として前記3次元オブジェクトを回転させる第1のオブジェクト回転手段として前記コンピュータを機能させる、情報処理プログラム。
  2. 前記第2直線算出手段は、
    前記第1直線を所定の平面に射影することによって得られる直線である第3直線を算出する第3直線算出手段と、
    前記所定の平面上において前記第3直線に直交する直線である第4直線を算出する第4直線算出手段とを含み、
    前記所定の平面から前記仮想3次元空間内の前記3次元オブジェクトに前記第4直線を平行移動することによって得られる直線を前記第2直線として算出する、請求項1に記載の情報処理プログラム。
  3. 前記情報処理プログラムは、前記ポインティングデバイスによる操作に基づいて、前記所定の平面上における当該操作にかかるベクトルを算出する操作ベクトル算出手段として更に前記コンピュータを機能させ、
    前記回転軸選択手段は、前記操作ベクトル算出手段が算出したベクトルを前記第3直線および第4直線の少なくとも一方に射影し、当該射影した直線上における当該ベクトルの長さに基づいて、前記第1直線および第2直線のうちの一方を選択する、請求項1または請求項2に記載の情報処理プログラム。
  4. 前記回転軸選択手段は、前記操作ベクトル算出手段が算出したベクトルを前記第3直線および第4直線の双方に射影し、当該射影したそれぞれの直線上における当該ベクトルの長さが短いほうの直線に基づいて、前記第1直線および第2直線のうちの一方を選択する、請求項3に記載の情報処理プログラム。
  5. 前記回転軸選択手段は、前記ベクトルの長さが短いほうの直線が前記第3直線である場合には、前記第1直線を選択し、前記ベクトルの長さが短いほうの直線が前記第4直線であるときには、前記第2直線を選択する、請求項4に記載の情報処理プログラム。
  6. 前記情報処理プログラムは、
    前記ポインティングデバイスによる操作に基づいて、所定の平面上における当該操作にかかるベクトルを算出する操作ベクトル算出手段と、
    前記第1直線を所定の平面上に射影した直線の長さが所定値未満であるか否かを判定する長さ判定手段と、
    前記操作ベクトル算出手段が算出したベクトルの方向と直交する直線である第5直線を算出する第5直線算出手段として前記コンピュータを更に機能させ、
    前記回転軸決定手段は、前記長さ判定手段によって前記射影した直線の長さが所定値未満であると判定されたときは、前記第5直線を前記仮想3次元空間内の前記3次元オブジェクトに平行移動することによって得られる直線を前記第2直線として算出し、当該第2直線を回転軸として選択する、請求項1に記載の情報処理プログラム。
  7. 前記所定の平面は、ディスプレイ面または当該ディスプレイ面に平行な面である、請求項1ないし請求項6のいずれかに記載の情報処理プログラム。
  8. 前記ポインティングデバイスは、タッチパネルである、請求項1ないし請求項7のいずれかに記載の情報処理プログラム。
  9. 前記情報処理プログラムは、前記ポインティングデバイスによる操作に応じて、前記仮想3次元空間のワールド座標系における所定の1軸を中心として前記3次元オブジェクトを回転させる第2のオブジェクト回転手段として前記コンピュータを更に機能させる、請求項1ないし請求項8のいずれかに記載の情報処理プログラム。
  10. 前記第1のオブジェクト回転手段は、前記ポインティング操作に基づいて回転量を算出し、当該回転量に従って前記3次元オブジェクトを回転させる、請求項1ないし請求項9のいずれかに記載の情報処理プログラム。
  11. ポインティングデバイスによる入力を受け付け可能な情報処理システムであって、
    仮想3次元空間に3次元オブジェクトを配置するオブジェクト配置手段と、
    仮想カメラで前記仮想3次元空間を撮影した3次元画像を画面に表示する3次元画像表示手段と、
    前記3次元オブジェクトにおける所定の2点に基づいて第1の直線を算出する第1直線算出手段と、
    前記第1直線と直交する第2直線を算出する第2直線算出手段と、
    前記ポインティングデバイスによる入力に基づいて前記第1直線および第2直線のいずれか一方と回転軸として選択する回転軸選択手段と、
    前記選択された回転軸を中心として前記3次元オブジェクトを回転させる第1のオブジェクト回転手段とを備える、情報処理システム。
  12. ポインティングデバイスによる入力を受け付け可能な情報処理装置のコンピュータを制御するための情報処理方法であって、
    仮想3次元空間に3次元オブジェクトを配置するオブジェクト配置ステップと、
    仮想カメラで前記仮想3次元空間を撮影した3次元画像を画面に表示する3次元画像表示ステップと、
    前記3次元オブジェクトにおける所定の2点に基づいて第1の直線を算出する第1直線算出ステップと、
    前記第1直線と直交する第2直線を算出する第2直線算出ステップと、
    前記ポインティングデバイスによる入力に基づいて前記第1直線および第2直線のいずれか一方と回転軸として選択する回転軸選択ステップと、
    前記選択された回転軸を中心として前記3次元オブジェクトを回転させる第1のオブジェクト回転ステップとを前記コンピュータに実行させる、情報処理方法。
  13. ポインティングデバイスによる入力を受け付け可能な情報処理装置であって、
    仮想3次元空間に3次元オブジェクトを配置するオブジェクト配置手段と、
    仮想カメラで前記仮想3次元空間を撮影した3次元画像を画面に表示する3次元画像表示手段と、
    前記3次元オブジェクトにおける所定の2点に基づいて第1の直線を算出する第1直線算出手段と、
    前記第1直線と直交する第2直線を算出する第2直線算出手段と、
    前記ポインティングデバイスによる入力に基づいて前記第1直線および第2直線のいずれか一方と回転軸として選択する回転軸選択手段と、
    前記選択された回転軸を中心として前記3次元オブジェクトを回転させる第1のオブジェクト回転手段とを備える、情報処理装置。
JP2016034704A 2016-02-25 2016-02-25 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置 Active JP6360509B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016034704A JP6360509B2 (ja) 2016-02-25 2016-02-25 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置
US15/213,653 US10950048B2 (en) 2016-02-25 2016-07-19 Computer-readable non-transitory storage medium having stored therein information processing program, information processing system, information processing method, and information processing apparatus
EP16180082.6A EP3211604B1 (en) 2016-02-25 2016-07-19 Information processing program, information processing system, information processing method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016034704A JP6360509B2 (ja) 2016-02-25 2016-02-25 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2017151806A true JP2017151806A (ja) 2017-08-31
JP6360509B2 JP6360509B2 (ja) 2018-07-18

Family

ID=56920456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016034704A Active JP6360509B2 (ja) 2016-02-25 2016-02-25 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置

Country Status (3)

Country Link
US (1) US10950048B2 (ja)
EP (1) EP3211604B1 (ja)
JP (1) JP6360509B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110249626B (zh) * 2017-10-26 2020-07-31 腾讯科技(深圳)有限公司 增强现实图像的实现方法、装置、终端设备和存储介质
EP3629203A1 (en) * 2018-09-26 2020-04-01 Bricsys NV Improved parallel face alignment in cad
JP7267753B2 (ja) * 2019-01-21 2023-05-02 キヤノン株式会社 制御装置、制御方法、及びプログラム
US11816785B2 (en) * 2019-06-14 2023-11-14 Sony Group Corporation Image processing device and image processing method

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01106179A (ja) * 1987-10-19 1989-04-24 Nec Corp 3次元形状の投影像表示装置
JPH0269798A (ja) * 1988-07-29 1990-03-08 Univ Toronto Innov Found デイスプレイされたオブジエクトを回転する方法
JPH03175588A (ja) * 1989-12-04 1991-07-30 Nec Corp 視点回転方式
JPH0816825A (ja) * 1994-04-25 1996-01-19 Fujitsu Ltd 3次元立体配置編集方法及び3次元立体配置編集装置
JP2000194493A (ja) * 1998-10-22 2000-07-14 Fujitsu Takamisawa Component Ltd ポインティングデバイス
JP2004259065A (ja) * 2003-02-26 2004-09-16 Sony Corp 3次元オブジェクトの表示処理装置、表示処理方法、およびコンピュータプログラム
JP2011048522A (ja) * 2009-08-26 2011-03-10 Fujitsu Ltd 3次元データ表示装置およびプログラム
WO2015025345A1 (ja) * 2013-08-21 2015-02-26 パナソニックIpマネジメント株式会社 情報表示装置、情報表示方法および情報表示プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019809A (en) * 1988-07-29 1991-05-28 University Of Toronto Innovations Foundation Two-dimensional emulation of three-dimensional trackball
JP2004259063A (ja) 2003-02-26 2004-09-16 Sony Corp 3次元オブジェクトの表示処理装置、表示処理方法およびコンピュータプログラム
US7248270B1 (en) * 2004-01-22 2007-07-24 Pacific Data Images Llc Stroke-based posing of three-dimensional models
JP2010146683A (ja) * 2008-12-22 2010-07-01 Fuji Electric Device Technology Co Ltd 保護膜の形成方法、及び当該方法により得られた保護膜、並びに当該保護膜を含む磁気記録媒体
US9696842B2 (en) * 2009-10-06 2017-07-04 Cherif Algreatly Three-dimensional cube touchscreen with database
US8717360B2 (en) * 2010-01-29 2014-05-06 Zspace, Inc. Presenting a view within a three dimensional scene
US9594487B2 (en) * 2012-02-27 2017-03-14 Autodesk, Inc Systems and methods for manipulating a 3D object in a 3D model using a software widget and surface constraints
US9310092B2 (en) * 2012-11-27 2016-04-12 International Business Machines Corporation Analytics for optimizing usage of cooling subsystems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01106179A (ja) * 1987-10-19 1989-04-24 Nec Corp 3次元形状の投影像表示装置
JPH0269798A (ja) * 1988-07-29 1990-03-08 Univ Toronto Innov Found デイスプレイされたオブジエクトを回転する方法
JPH03175588A (ja) * 1989-12-04 1991-07-30 Nec Corp 視点回転方式
JPH0816825A (ja) * 1994-04-25 1996-01-19 Fujitsu Ltd 3次元立体配置編集方法及び3次元立体配置編集装置
JP2000194493A (ja) * 1998-10-22 2000-07-14 Fujitsu Takamisawa Component Ltd ポインティングデバイス
JP2004259065A (ja) * 2003-02-26 2004-09-16 Sony Corp 3次元オブジェクトの表示処理装置、表示処理方法、およびコンピュータプログラム
JP2011048522A (ja) * 2009-08-26 2011-03-10 Fujitsu Ltd 3次元データ表示装置およびプログラム
WO2015025345A1 (ja) * 2013-08-21 2015-02-26 パナソニックIpマネジメント株式会社 情報表示装置、情報表示方法および情報表示プログラム

Also Published As

Publication number Publication date
US10950048B2 (en) 2021-03-16
JP6360509B2 (ja) 2018-07-18
EP3211604A1 (en) 2017-08-30
EP3211604B1 (en) 2021-08-25
US20170249784A1 (en) 2017-08-31

Similar Documents

Publication Publication Date Title
US11727650B2 (en) Systems, methods, and graphical user interfaces for displaying and manipulating virtual objects in augmented reality environments
US11119581B2 (en) Displacement oriented interaction in computer-mediated reality
JP6469706B2 (ja) 深度センサを用いた構造のモデル化
WO2020146146A1 (en) Discrete and continuous gestures for enabling hand rays
JP6360509B2 (ja) 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置
US20150186004A1 (en) Multimode gesture processing
US20170263033A1 (en) Contextual Virtual Reality Interaction
US20150169165A1 (en) System and Method for Processing Overlapping Input to Digital Map Functions
CN109189302B (zh) Ar虚拟模型的控制方法及装置
JP5986261B1 (ja) 画面制御のための効率的なインタフェースを提供するシステムおよび方法
WO2017185459A1 (zh) 一种图标移动方法以及装置
US20170212669A1 (en) Input techniques for virtual reality headset devices with front touch screens
US11087561B2 (en) Three-dimensional sketching in mobile augmented reality
JP7340927B2 (ja) 3dオブジェクトの設計のための描画平面を定義するための方法
US10073612B1 (en) Fixed cursor input interface for a computer aided design application executing on a touch screen device
KR101338958B1 (ko) 멀티터치 단말기에서 가상물체의 3차원 움직임 조작시스템 및 방법
US9927892B2 (en) Multiple touch selection control
US20230147561A1 (en) Metaverse Content Modality Mapping
CA2886483C (en) Dynamically determining workspace bounds during a collaboration session
KR102392675B1 (ko) 3차원 스케치를 위한 인터페이싱 방법 및 장치
US20220335676A1 (en) Interfacing method and apparatus for 3d sketch
JP2016201005A (ja) 座標入力装置および情報処理装置
JPH10334280A (ja) 画像処理装置及び方法並びにプログラム記憶媒体
CN116430990A (zh) 虚拟环境中的交互方法、装置、设备和存储介质
JP2019128927A (ja) 方向指示入力プログラム、方向指示入力装置、および方向指示入力を利用するプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180508

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180622

R150 Certificate of patent or registration of utility model

Ref document number: 6360509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250