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