センサーやカメラを使った Windows Phone のための アプリケーション開発 日本マイクロソフト株式会社 デベロッパーエバンジェリスト 太田 寛 D1-401
セッションの目的とゴール Session Objectives and Takeaways Windows Phone のセンサー、カメラ、XNA の使用 方法を理解いただく Windows Phone のセンサー、カメラ、XNA 機能の デモ セッションのゴール Windows Phone のセンサー、カメラ機能を活用した アプリケーション開発ができるようになる Windows Phone の Silverlight と XNA を組合せ、 高品質な描画を行うアプリケーション開発ができる
アジェンダ 本セッションで説明するアプリケーション最終形 Windows Phone のカメラ機能を使う XNA 機能の活用 Silverlight と XNA を組合せる
本セッションで説明する アプリケーション最終形 本セッションで説明する アプリケーション最終形 カメラによる画像キャプチャ AR(仮想現実) Shutter Compass 下向き(重力)はどっち? 方向(東西南北) はどっち?
アプリケーション構成要素 実画像の取り込み カメラ デバイスを取巻く環境情報の取込み センサー ハイパフォーマンス 3D 画像 XNA Shutter ハイパフォーマンス 3D 画像 XNA Compass
Windows Phone のカメラ機能 動画 静止画 オートフォーカス フラッシュ 画質・色調整 Picture Hub への格納 他アプリケーション連携 Web へのアップロード
デフォルトのカメラ機能を利用 デフォルト Task に含まれたカメラ機能を起動 名前空間 Microsoft.Phone.Tasks クラス CameraCaptureTask デフォルトのカメラ機能を アプリケーションから起動 操作性はデフォルトの機能と 同一 戻り操作で、アプリケーションロジックに復帰
カメラ機能の活用 カメラ デバイスから画像をアプリケーションに 取り込む 名前空間 Microsoft.Devices カメラ デバイスから画像をアプリケーションに 取り込む 名前空間 Microsoft.Devices クラス PhotoCamera アプリケーションからカメラ デバイスを起動 Silverlight コントロールへの画像の貼付け フォーカス、画質、色の制御 静止画、動画の取り込み Picture Hub や、 Web への画像格納 アプリケーション ロジックによる細かな制御 Shutter Compass
カメラデバイス制御 <Canvas …> <Canvas.Background> <VideoBrush x:Name="viewfinderBrush"/> </Canvas.Background> </Canvas> XAML による UI 定義 Shutter Compass カメラ インスタンスの作成 カメラ デバイス状態変化通知用ハンドラ登録 VideoBrush のソースにカメラを登録 ボタン クリックなど カメラ デバイスから 静止画を撮る場合 CaptureImage() 状態管理、画像修正、 格納処理など
Windows Phone 搭載センサー 加速度 ジャイロ モーション コンパス 重力を含む加速度 デバイスの移動角速度 デバイスの向き デバイスにかかる加速度 コンパス 方向
各種センサーの使い方 センサー毎に用意されたクラスを利用 名前空間: Microsoft.Devices.Sensors クラス 加速度センサー Accelerometer ジャイロ Gyroscope モーション Motion コンパス Compass 計測値更新 IsSupport プロパティで、 搭載されていることを確認 イベント ハンドラー 各種ロジック CurrentValueChanged イベントに イベントハンドラーを登録
センサーの計測値と座標 +Y +X +Z -Z -X -Y 加速度、角速度、磁界方向 モーションのデバイス方向 地軸の北極 地磁気の北極 Pitch Yaw Roll +Y -Y +X -X +Z -Z 地軸の北極 地磁気の北極 角度 コンパス
XNA紹介 ハイ パフォーマンスなゲーム 2D 、 3D グラフィックス テクスチャやアニメーションなど凝った表示
XNA の動作モデル 描画で使う コンテンツを ロード 描画内容更新 OnUpdate 実時間タイマー 描画実行 一定時間ごと にコール OnDraw 描画フレーム レートが決まっている グラフィックス アクセラレーターの活用
Silverlight の動作モデル メインプログラム 1. イベントソースにハンドラー登録 XAMLによるGUI定義 繰り返し デバイスの全機能利用可能 処理時間を考慮 繰り返し イベントソース イベントハンドラ 2-1. イベント発生時 ハンドラーをコール 2-2. 各種ロジック 実行 描画コントロール 2-3. 表示更新
XNA と Silverlight の組み合わせ XAML で UI を定義し、イベント駆動フレームワークを利用 RIA(Rich Internet Application)スタイルの UI を 素早く作成 Windows Phoneの 各種コントロールを利用する ビデオ画像を埋め込む HTML Web ブラウザを埋め込む Silverlight+XNA ハイパフォーマンスなゲーム制御用のフレームワークを使う マルチスクリーン 2D、3D ゲームを RIA スタイルの UI で操作 グラフィックスや各種効果、 アニメーションを活用 グラフィックス画像に Silverlightのテキスト描画機能で文字を描画 XNA アプリケーションにページナビゲーションを追加する Windows Phone Silverlight/XNA アプリケーション プロジェクトテンプレートを使用
XNA と Silverlight の統合 XNA フレームワーク Silverlight フレームワーク コンストラクター ContentManager 取得 ゲーム タイマー生成 描画用ハンドラー登録 GamePage.xaml OnNavigateTo メソッド コンテンツ ロード ゲーム タイマー起動 LayoutUpdate メソッド 表示サイズ調整 ・OnUpdate 描画コンテンツ ・OnDraw 実際に描画 MainPage.xaml OnNavigateFrom メソッド ゲームタイマーの停止
XNAとSilverlightの描画合成 GraphicDevice クラスで描画 XNA の スプライト Silverlight の画面 XNA の スプライト TextBlock XNA Texture2D オブジェクトに変換 ( Render() ) スクリーンに描画 UIElementRenderer Texture SpriteBatch Draw()
セッションのまとめ Session wrap up セッションの目的 Windows Phone のセンサー、カメラ、XNA の使用 方法を理解いただく このセッションで持ち帰っていただきたいモノ センサーやカメラ機能の基本的な使い方と Tips Silverlight と XNA を組み合わせたグラフィックス描 画方法とコツ Windows Phone 向けの、高品位な魅力あるアプリ ケーションを開発するための基本技術
関連セッション D1-301: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/en-us/library/ff402535(v=VS.92).aspx 日本マイクロソフト UX チーム Facebook ページ http://www.facebook.com/mswinux スピーカー ブログ http://blogs.msdn.com/hirosho
ご清聴ありがとうございました アンケート にご協力 ください D1-401
© 2011 Microsoft Corporation. All rights reserved © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista ,Windows 7 and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.