簡単な使い方
1.CocoaPodsを使って導入する。
Podfile
target ‘アプリ名’ do
pod 'GVRSDK'
end
2.Bridging-Headerファイルを作る。
(*Build Settingsへの追加をお忘れなく。)
Bridging-Header.h
#import "GVRPanoramaView.h"
#import "GVRWidgetView.h"
#import "GVRVideoView.h"
3.パノラマ写真なら「GVRPanoramaView」、動画なら「GVRVideoView」を使う。
例)パノラマ写真
panoramaView.swift
//変数宣言
var panoramaView: GVRPanoramaView!
//デリゲートとボタン表示の設定
panoramaView.delegate = self
panoramaView.enableFullscreenButton = true
panoramaView.enableCardboardButton = true
//loadメソッドを使って画像を表示する。
let panoramaImage = UIImage(named: "panorama.jpg")
panoramaView.load(panoramaImage)
//または
pano.load(panoramaImage, of: <GVRPanoramaImageType>)
/*
PanoramaImageTypeはkGVRPanoramaImageTypeMonoかkGVRPanoramaImageTypeStereoOverUnder
panoramaView.load(panoramaImage)の場合はkGVRPanoramaImageTypeMonoとなる。
*/
例)360度動画
videoView.swift
//変数宣言
var videoView: GVRVideoView!
//デリゲートとボタン表示の設定
videoView.delegate = self
videoView.delegate = true
videoView.delegate = true
//loadメソッドを使って動画を表示する。
let videoPath = Bundle.main.path(forResource: "sample", ofType: "mp4")
//URLで読み込むため変換
let videoUrl: URL = URL(fileURLWithPath: videoPath!)
videoView.load(videoUrl)
/*
もちろんサーバー上にあるファイルも指定可能。
HSL対応なので環境さえ揃えればストリーミング配信もできる。
*/
あとは適宜デリゲートメソッドを実装していく。
主なメソッドは下記、細かなことはリファレンスで確認を。
video.swift
//コンテンツのロードが成功した時に呼ばれるデリゲートメソッド
func widgetView(_ widgetView: GVRWidgetView!, didLoadContent content: Any!) {
}
//コンテンツのロードが失敗した時に呼ばれるデリゲートメソッド
func widgetView(_ widgetView: GVRWidgetView!, didFailToLoadContent content: Any!, withErrorMessage errorMessage: String!) {
}
//画面がタップされた時に呼ばれるデリゲートメソッド
func widgetViewDidTap(_ widgetView: GVRWidgetView!) {
}
使ってみた感想
360度のパノラマ写真とか動画をみるアプリなら十分イケる。
でもcardboard対応ゲーム(SceneKitと組み合わせるとか)を作るのはけっこう面倒。
(ググった限りは使用例はGVR-SceneKitくらい。)
Unity向けSDKも用意されているのでゲーム用途なら素直にそっちを使った方が断然楽。
Daydreamに対応しているので今年リリースされる予定の「VIVE standalone headset with Daydream」と「Lenovo standalone headset with Daydream」に期待。