Slide 1

センサーやカメラを使った
Windows Phone のための
アプリケーション開発
D1-401
日本マイクロソフト株式会社
デベロッパーエバンジェリスト
太田
寛
セッションの目的とゴール
Session Objectives and Takeaways
セッションの目的
Windows Phone のセンサー、カメラ、XNA の使用
方法を理解いただく
Windows Phone のセンサー、カメラ、XNA 機能の
デモ
セッションのゴール
Windows Phone のセンサー、カメラ機能を活用した
アプリケーション開発ができるようになる
Windows Phone の Silverlight と XNA を組合せ、
高品質な描画を行うアプリケーション開発ができる
アジェンダ
本セッションで説明するアプリケーション最終形
Windows Phone のカメラ機能を使う
Windows Phone のセンサー機能を使う
XNA 機能の活用
Silverlight と XNA を組合せる
本セッションで説明する
アプリケーション最終形
カメラによる画像キャプチャ
下向き(重力)はどっち?
AR(仮想現実)
Shutter
Compass
方向(東西南北)
はどっち?
アプリケーション構成要素
実画像の取り込み
デバイスを取巻く環境情報の取込み
Shutter
Compass
ハイパフォーマンス 3D 画像
カメラ
センサー
XNA
Windows Phone のカメラ機能
動画
静止画
オートフォーカス
フラッシュ
画質・色調整
Picture Hub への格納
他アプリケーション連携
Web へのアップロード
デフォルトのカメラ機能を利用
デフォルト Task に含まれたカメラ機能を起動
名前空間
Microsoft.Phone.Tasks
クラス
CameraCaptureTask
• デフォルトのカメラ機能を
アプリケーションから起動
• 操作性はデフォルトの機能と
同一
• 戻り操作で、アプリケーション
ロジックに復帰
カメラ機能の活用
カメラ デバイスから画像をアプリケーションに
取り込む
名前空間
Microsoft.Devices
クラス
PhotoCamera
•
•
•
•
•
Shutter
Compass
アプリケーションからカメラ デバイスを起動
Silverlight コントロールへの画像の貼付け
フォーカス、画質、色の制御
静止画、動画の取り込み
Picture Hub や、 Web への画像格納
• アプリケーション ロジックによる細かな制御
カメラデバイス制御
XAML による
UI 定義
<Canvas …>
<Canvas.Background>
<VideoBrush x:Name="viewfinderBrush"/>
</Canvas.Background>
</Canvas>
1. カメラ インスタンスの作成
2. カメラ デバイス状態変化通知用ハンドラ登録
3. VideoBrush のソースにカメラを登録
Shutter
Compass
ボタン クリックなど
静止画を撮る場合
CaptureImage()
カメラ デバイスから
状態管理、画像修正、
格納処理など
Windows Phone 搭載センサー
加速度
重力を含む加速度
ジャイロ
デバイスの移動角速度
モーション
デバイスの向き
デバイスにかかる加速度
デバイスの移動角速度
コンパス
方向
各種センサーの使い方
センサー毎に用意されたクラスを利用
名前空間:
Microsoft.Devices.Sensors
クラス
加速度センサー
Accelerometer
ジャイロ
Gyroscope
モーション
Motion
コンパス
Compass
IsSupport プロパティで、
搭載されていることを確認
計測値更新
イベント ハンドラー
各種ロジック
CurrentValueChanged イベントに
イベントハンドラーを登録
センサーの計測値と座標
加速度、角速度、磁界方向
モーションのデバイス方向
+Y
-Z
-X
+Z
-Y
Yaw
+X
地軸の北極
地磁気の北極
角度
コンパス
Pitch
Roll
XNA紹介
ハイ パフォーマンスなゲーム
2D 、 3D グラフィックス
テクスチャやアニメーションなど凝った表示
XNA の動作モデル
描画で使う
コンテンツを
ロード
描画内容更新
OnUpdate
実時間タイマー
一定時間ごと
にコール
OnDraw
描画フレーム レートが決まっている
グラフィックス アクセラレーターの活用
描画実行
Silverlight の動作モデル
メインプログラム
1.
イベントソースにハンドラー
登録
• XAMLによるGUI定義
• デバイスの全機能利用可能
• 処理時間を考慮
繰り返し
イベントソース
イベントハンドラ
描画コントロール
2-3.
表示更新
2-2.
各種ロジック
実行
2-1.
イベント発生時
ハンドラーをコール
XNA と Silverlight の組み合わせ
Silverlightの特徴
Silverlight+XNA
XAML で UI を定義し、イベント
駆動フレームワークを利用
ハイパフォーマンスなゲーム制御
用のフレームワークを使う
RIA(Rich Internet
Application)スタイルの UI を
素早く作成
マルチスクリーン 2D、3D
ゲームを RIA スタイルの UI で
操作
Windows Phoneの 各種コント
ロールを利用する
グラフィックスや各種効果、
アニメーションを活用
ビデオ画像を埋め込む
グラフィックス画像に Silverlight
のテキスト描画機能で文字を描画
HTML Web ブラウザを埋め込む
XNA アプリケーションにページ
ナビゲーションを追加する
Windows Phone Silverlight/XNA アプリケーション
プロジェクトテンプレートを使用
XNA と Silverlight の統合
XNA フレームワーク
Silverlight フレームワーク
GamePage.xaml
コンストラクター
• ContentManager 取得
• ゲーム タイマー生成
• 描画用ハンドラー登録
OnNavigateTo メソッド
• コンテンツ ロード
• ゲーム タイマー起動
LayoutUpdate メソッド
• 表示サイズ調整
・OnUpdate
・OnDraw
MainPage.xaml
描画コンテンツ
実際に描画
OnNavigateFrom メソッド
• ゲームタイマーの停止
XNAとSilverlightの描画合成
XNA
GraphicDevice クラスで描画
TextBlock
XNA Texture2D
オブジェクトに変換
( Render() )
UIElementRenderer
スクリーンに描画
Texture
Draw()
SpriteBatch
セッションのまとめ
Session wrap up
セッションの目的
Windows Phone のセンサー、カメラ、XNA の使用
方法を理解いただく
このセッションで持ち帰っていただきたいモノ
センサーやカメラ機能の基本的な使い方と Tips
Silverlight と XNA を組み合わせたグラフィックス描
画方法とコツ
Windows Phone 向けの、高品位な魅力あるアプリ
ケーションを開発するための基本技術
関連セッション
D1-301:Windows Phone 7.5 のアプリケーション開発概要
D1-302:Windows Phone 7.5 のデータ アクセスとクラウド連携
リファレンス
Windows Phone デベロッパーセンター
http://msdn.microsoft.com/japan/windowsphone
Windows Phone 開発者登録
http://create.msdn.com/ja-jp/
.Windows Phone 技術情報
http://msdn.microsoft.com/enus/library/ff402535(v=VS.92).aspx
日本マイクロソフト UX チーム Facebook ページ
http://www.facebook.com/mswinux
スピーカー ブログ
http://blogs.msdn.com/hirosho
ご清聴ありがとうございました
D1-401
アンケート
にご協力
ください