SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

jQueryの記法でWebGLを操作できるライブラリ「jThree」の活用

表現の幅を広げるWebGLライブラリ「jThree」の公式プラグイン

jQueryの記法でWebGLを操作できるライブラリ「jThree」の活用 第5回

カメラコントロールを付加する

 動画と比較してWebGLのもっとも分かりやすい魅力はカメラのアングルを自由に操作できることでしょう。jThreeには2種類のカメラコントロールプラグインが用意されています。どちらもメソッドを呼ぶ際にコントロール機能を適用するrdr要素のCSSセレクタを渡します。省略するとすべてのrdr要素に適用されます。返り値は適用したrdr要素が1つならコントローラーオブジェクト、複数ならコントローラーオブジェクトの配列です。コントローラーオブジェクトはstop()とstart()で制御でき、reset()でカメラを初期位置に戻します。

Trackball

 オブジェクト鑑賞に適しています。ある1点を中心に回転したりズームができます。

操作 機能
左ドラッグ 視点を中心に回転
右ドラッグ 上下左右方向に視点移動
ホイール 視点までズームイン、視点からズームアウト

 jThree.Trackball.jsを読み込んでTrackballメソッドを呼び出すと適用されます。

var ball = jThree.Trackball();

 setupメソッドにハッシュを与えることでプロパティの設定ができます。

ball.setup( { rotateSpeed: 2 } );
プロパティ名 値 デフォルト値
rotateSpeed 回転速度 1.0
zoomSpeed ズーム速度 1.2
panSpeed 視点移動速度 0.3
damping 操作終了時の速度減衰率 0.2
FlyView

 空間移動に適しています。鳥のように空間を飛び回ることができます。

操作 機能
左ボタン長押し マウス位置に向かって前進
右ボタン長押し マウス位置から遠ざかるように後退
ホイール 加減速
W,A,S,D,十字キー 前後左右移動
R,Fキー 上下移動

 jThree.FlyView.jsを読み込んでFlyViewメソッドを呼び出すと適用されます。

var fly = jThree.FlyView();

 setupメソッドにハッシュを与えることでプロパティの設定ができます。

fly.setup( { movementSpeed: 50 } );
プロパティ名 値 デフォルト値
movementSpeed 移動速度 10
acceleration 加減速度 10
lookSpeed 視点移動速度 0.1

Oculus Riftに対応させる

 Oculus Rift(DK1)に対応するためのjThreeプラグインを紹介します。Oculus Riftとは、米フェイスブックの子会社であるOculus VR社が開発したヘッドマウントディスプレイで頭の動きに表示を追従させられるのが特徴です。

 jThree.Oculus.jsを読み込んでOculusメソッドを呼び出してコントロールオブジェクトを生成します。引数にはOculusモードを適用したいrdr要素のセレクタを指定できます。省略すると"rdr:first"が適用されます。

 好きなタイミングでコントロールオブジェクトのstartメソッドを呼ぶことで画面表示がOculusモードに切り替わります。WebGLの表示サイズ自体は変わらないので全画面表示の処理は自身で実装する必要があります。stopメソッドで通常表示に戻せます。

jThree.Oculus().start();

 Oculusを接続することに関して特別な設定は不要ですが、頭の動きに表示を追従させるにはユーザー側でブラウザの機能を拡張する必要があります。まずoculus.zipをダウンロード・解凍します。

Mac OS X
  1. binディレクトリからnpvr.pluginをコピー
  2. ~/Library/Internet Plug-Ins/以下にコピーしたnpvr.pluginを貼り付け

 これでChrome/Firefox/Safari上で使用可能になります。

Windows

 Chromeの場合:

  1. chrome://extensionsを開く
  2. "Developer mode"にチェックし"Load unpacked extension"をクリック
  3. binフォルダを選ぶ

 Firefoxの場合:

  1. コマンドプロンプトを起動
  2. binフォルダにcdで移動
  3. install.batを実行

 設定後ブラウザを再起動してコンテンツにアクセスすると、頭の動きに表示が追従するようになります。

次のページ
MMDのモデルとモーションデータを読み込む

この記事は参考になりましたか?

jQueryの記法でWebGLを操作できるライブラリ「jThree」の活用連載記事一覧

もっと読む

この記事の著者

松田 光秀(jThree合同会社)(マツダ ミツヒデ)

jQueryの記法で操作できるWebGLライブラリ「jThree」の開発者でjThree合同会社の代表。JavaScriptのスキルのみで平成26年2月に1人で起業する。平成元年生まれの24歳で現役高校生(平成26年5月時点)。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7826 2014/06/30 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー