AJAXでヴァーチャルツアーを実現する

さて、本日は午前と午後に分けて、今週末のイベントでお話する内容のうち、AJAXで実現するパノラマVRプレゼンテーションについて、お話します。
フランスで活躍するウェブデベロッパ「OpenStudio」は、ウェブサイト開発のエキスパートとしてその世界ではよく知られています。
また彼らは、AJAXフレームワーク「jQuery」の使い手としても有名です。
そんな彼らが、jQueryを使った2種類のパノラマVRコンテンツを実現していますので、ご紹介します。

第1弾は、円筒パノラマ画像にクリッカブルマップを埋め込み、パノラマ画像をループスクロールさせて、画像中のホットスポットをクリックすると詳細画像が出てくる、というAJAXならではの挙動のバーチャルツアーコンテンツです。

jQuery virtual tour
jQuery virtual tour
http://www.openstudio.fr/jquery-virtual-tour/

デモサイトは一式がダウンロードできますので、ぜひご一読下さい。

ファイルの中に入ってるJavaScriptファイルは以下の通り。

  • jquery.js
  • jquery.panorama.js
  • jquery.advanced-panorama.js
  • cvi_text_lib.js
  • cvi_text_lib.js
  • thickbox.js

このうち「cvi_text_lib.js」は文字コードを制御するライブラリ、「jquery.flipv.js」は縦書き変換、そして「thickbox.js」は画面内ポップアップのライブラリです。
なので、重要なのは基本ライブラリの「jquery.js」に、OpenStudio独自開発の「jquery.panorama.js」「jquery.advanced-panorama.js」ですね。
「jquery.panorama.js」は、パノラマ表示とループスクロールを、「jquery.advanced-panorama.js」はクリッカブルマップ表示を機能させます。
cssも、thickbox用とjquery.panorama用が特別に導入されます。

<head>内に挿入するコードは以下のような感じでしょうか。


  • <link rel="stylesheet" type="text/css" href="css/thickbox.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="css/jquery.panorama.css" media="screen" />
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.panorama.js"></script>
    <script type="text/javascript">
     $(document).ready(function(){
      $("img.advancedpanorama").panorama({
       auto_start: 0,
       start_position: 1527
       });
      });
    </script>
    <script type="text/javascript" src="js/cvi_text_lib.js"></script>
    <script type="text/javascript" src="js/jquery.advanced-panorama.js"></script>
    <script type="text/javascript" src="js/jquery.flipv.js"></script>
    <script type="text/javascript" src="js/thickbox.js"></script>
    <script type="text/javascript">
     tb_pathToImage = "css/loadingAnimation.gif";
    </script>

この中で特に記述されているパラメーターは、
「auto_start: 0」
「start_position: 1527」
ですね。
上は起動時の自動回転のon/off(「0」でoff、「1」でon)を、下は起動時のポジションを画像の座標で指定しています。

またスクロールのスピードは「jquery.panorama.js」の14行目
「speed: 20000」
の数値を変えることで制御できます。この数値は1周するのにかかる時間をミリ秒で表してます。「20000ミリ秒=20秒」ですね。
またこのライブラリのヘッダ部には、このコンテンツを制御する様々な変数が与えられています。
「viewport_width」表示横幅(画角)(ピクセル)
「direction」左右の回転方向を制御(left/right)
「control_display」矢印などのインターフェイス部の表示の有無(true/false)
「start_position」起動時のポジション(ピクセル)
「auto_start」自動回転(true/false)
「mode_360」ループさせるかどうか?(true/false)

そして更に、<body>内に挿入するコードは以下のような感じになります。


  • <img src="img/sculpteur.jpg" class="advancedpanorama" width="2448" height="375" usemap="testmap" alt="Atelier du sculpteur" />
    <map id="testmap" name="testmap">
     <area shape="rect" coords="1653,72,1839,255" href="salleformation.html" alt="vers la salle de formation" />
     <area shape="rect" coords="2013,114,2091,210" href="img/statue1.jpg" alt="statues" class="thickbox" />
     <area shape="rect" coords="1920,276,2070,351" href="img/gouges.jpg" alt="gouges" class="thickbox" />
    </map>

画像そのものは円筒パノラマの画像サイズそのものを指定し、画面に表示される部分は「jquery.panorama.js」で指定された画角幅です。
クリッカブルマップのエリアを指定すると、パノラマ画像内に自動的に枠が入ります。これもJavaScriptで制御してるようですね。

意外と簡単に導入できるパノラマVRコンテンツです。
FlashもQTVRも表示できないiPhone用サイトには、ピッタリかもしれません。ウチでも導入してみようかな。
ループの横スクロールスクリプト、というだけでも価値あるかも、ですよ!


2008年8月23日(土)15:00〜17:00 参加無料のイベントです。お気軽にお越し下さい!
親睦会(参加費6,000円)の参加申込もこちらからどうぞ

QTVR Diary -OFFLINE- vol.5

アイコンをクリックして、iPhoneで使えるパノラマアプリを体感しよう!
Panorama
Panorama
¥1,200-
★★★
Pano
Pano
¥350-
★★★
PanoLabo
PanoLabo
free
★★★★★
PanoLabo Pro
PanoLabo Pro
¥600-
★★★★
TripStitch
TripStitch
¥1,200-
PangeaVR
PangeaVR
free
★★★★★
PangeaVR Pro
PangeaVR Pro
¥2,300-
★★★★★
Cube World
Cube World
free
★★★★

このページをdel.icio.usに追加する このページをGoogleBookmark に追加 このページをBlogPeople Instant Bookmarkに登録 このページをTechnoratiに追加 Digg This Story このページをはてなブックマークする Add Yahoo Myweb このページをRedditへ追加 このページをニフティクリップに追加 このページをLivedoor クリップに追加 このページをFC2ブックマークに追加 このページををBuzzurlに追加

トラックバック(0)

このブログ記事を参照しているブログ一覧: AJAXでヴァーチャルツアーを実現する

このブログ記事に対するトラックバックURL: http://pencil-jp.net/mt/mt-tb.cgi/589

コメントする