センサーやカメラを使った 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 アンケート にご協力 ください
© Copyright 2024 ExpyDoc