Archive For 2017年4月27日

HoloLensで画面共有(Device Portal)

By |

HoloLensで画面共有(Device Portal)

HoloLensで見ている映像を周りの人にも見せたい! HoloLensを使っている人だけ楽しんでてズルい。どういう世界がみえてるのかみたい。 もしくはイベント等で、体験者以外にも見せたい場合、webブラウザー経由でDevice Poetalにアクセスして画面を共有することができます。 ただしWifi環境が必要です。 下記のオリジナルドキュメントを基に関係する部分を抜粋します。 https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-hololens -デバイスポータルを設定するには 1.HoloLensの電源をオンにします。 2.ブルームジェスチャーでメインメニューを起動します。 3.セッティングを見つめエアタップジェスチャーでエアタップをもう一度行い好きな位置に配置。 4.アップデートメニューを選択します。 5.For developers メニューを選択を選択します。 6.Developer Modeを有効にします。 7.スクロールして Device Portalをオンにします。 1.HoloLensをwifiにつなぎます。 2.HoloLensのIPアドレスを見つけます。  Settings > Network & Internet > Wi-Fi > Advanced Options にあります。 もしくは、”Hey Cortana, what is my IP address?”とコルタナに聞いてもOKです。 ※私は発音がわるかった為、教えてもらえませんでした。 3.PC側から、先ほどのIPアドレスをアドレスバーに入力します。   https:// ブラウザーがセキュリティーの警告を表示してきますが、無視して進みます。 4.下記のような画面が表示されるかとおもいます。 PCとHoloLensが近い場合はHoloLensのサウンドストリーミングをオフにするとハウリングを防げます。 HoloLensのDevice portalへ初めてアクセスするときはユーザー名とパスワードを作成する必要があります。 1.PCのブラウザー側でHoloLensのIPアドレスを入れると、セットアップアクセスページにつながります。 2.暗証番号をリクエストをクリックして暗証番号を生成します。 3.HoloLensのテキストボックスに先ほどの暗証番号を入力します。 4.device portalに接続する為に使用するユーザー名を入力します。 ※Microsoft Account (MSA)…

Vuforiaで大きいオブジェクトを表示するためのアドバイス

By |

Vuforiaで大きいオブジェクトを表示するためのアドバイス

Vuforiaで大きいオブジェクトを表示するためのアドバイス マーカーとそのサイズとの関係 VuforiaのImageTargetと表示されて欲しいオブジェクトのサイズは相関関係があります。 例えばオブジェクトを2m*2mのサイズで表示したい場合、ImageTargetのサイズを0.2m*0.2mにして、 印刷したイメージも0.2m*0.2mサイズに出力をしなければなりません。 もし正しく設定されていなければ、オブジェクトが表示されるときの比率が壊れてしまいます。 オブジェクトをその場に残す方法 大きいオブジェクトの全体を表示するためにVuforiaのExtended Trackingはとても便利です。 ImageTargetのオプションをEnableにすると、 イメージからスマートフォンのカメラがちょっと離れてTrackingがなくなっても、 オブジェクトが残ります。 ARCameraのゲームオブジェクトのWorld Center ModeオプションをCameraにすると、 オブジェクトを中心に回り込むような表示がかのうです。 イメージターゲットは床でも壁でも、Unity内でオブジェクトのローテーションを変えることで、対応可能です。 マーカーとカメラとの角度で発生する問題 オブジェクトのカメラを通しての見え方(カメラアングル)はマーカーを 認識したときにデフォルトの仰角が決まります。 床においたマーカーとスマートフォンのカメラとの角度に関する注意点 そのため、床にマーカーを置きオブジェクトを表示した場合、 カメラのポジション(デフォルトの仰角)はマーカーを認識した際決定されるので、カメラを水平にして、 オブジェクトが正面ではなく少しずれた表示になります。 床にマーカーを配置した際のスマートフォンのカメラとの距離に関する注意点 マーカーを床に置くとカメラとイメージが必然的に遠く離れるため(ユーザが立っている場合) マーカーとユーザーのスマートフォンのカメラとの角度が浅くなるので認識しずらくなります。 大きいオブジェクトのマーカーは壁に配置がおすすめ 壁にマーカーを配置する場合はその問題はないでしょう。 イメージを壁に置いたらその高さを測定し、 Unity内でのImageTargetの高さと現実の世界のイメージの高さを合わせてください。 イメージか、QRコードか 最近QRコードはとても人気になりました。雑誌とかデパートの製品とかにどこでも使みかけます。 VuforiaもQRコードが使えますが色々悪いポイントがあります、 大きな欠点はトラッキング(カメラからの認識)の問題です。 大きいオブジェクトを表示するには比較的大きなQRコードコードを全部をスキャンする必要があります。 カメラがQRコードを認識する際、スキャンの角度やライトの明るくさは足りないとTracking機能が正しく動作しないことが多くなります。 一方、イメージであればQRコードよりも認識の向上が期待できます。 イメージであれば、画像の一部を認識できれば、マーカーとして機能するからです。 (※QRコードは全体が認識されないとオブジェクトが表示されない) 認識率を上げるため適切な写真を選ばなければなりません。 Vuforiaが推奨するイメージの条件は下記の三つです。1)ディテールが多いイメージ。 →頂点が画像の中に多く含まれるイメージ 2)いいコントラストのイメージ。 3)同じパターンではなく、色々な形が含まれている写真のほうがいい。 →有機的なパターン https://library.vuforia.com/articles/Best_Practices/Attributes-of-an-Ideal-Image-Target 以上がカメラにやさしいイメージの条件ですが、一つ付け加えるならば方向が分かりやすいほうがよいでしょう。 3つの条件にあう写真に画像ソフトでマークを付けくわえれば、配置する際に人間にとって便利です。

UE4のVRテンプレートを利用してミニゲームを作ってみよう!(一応の最終回)

By |

UE4のVRテンプレートを利用してミニゲームを作ってみよう!(一応の最終回)

この記事は以下のような方を対象としています。 ——————————- ・VR機器を持っていて、UE4でとりあえず使ってみたい方 ・UE4での経験がまだ浅い方 ——————————-     前提のスキルとして ——————————- ・UE4のエディタの操作方法がわかる ——————————- があればOKです。   また、先に前回・前々回の記事を読んでから、この記事を読み始めていただきたいです。   こんにちは、名残惜しいですが『パンチングゲーム制作』は今回で一旦の最終回です。 最後までしっかりやっていきましょう!     さて、前回まででは 『敵のBPの追加』 『敵のパラメータを設定』 『敵の移動処理』 『敵が死亡したら消える処理』 をやってきました。   今回はついに 『攻撃時に敵を死亡させる処理』 『プレイヤーが敵に攻撃する処理』 『レベルそのものの設定』 『プレイ中に敵をスポーンさせる処理』 『出来上がったものを試しにプレイ』 をやっていきます。     11.敵のブループリントを実装しよう!(ラスト) 敵のブループリントもこれで最後です。 これまでに『生存している間、移動する処理』と『死亡したら消える処理』を実装してきました。 そうなると、残っている処理は『生存/死亡を切り替える処理』です。   最初の仕様の通り、生存/死亡が切り替わるタイミングとは『プレイヤーに殴られた時』となります。   プレイヤーに殴られた時に呼び出されるイベントに、生死を切り替える処理を実装しましょう。   もしかしたら忘れている方もいるかもしれませんが、こういう時こそ『BPインターフェイス』を利用します。 画面上の『クラス設定』を選択し、『詳細ウィンドウ』の『インターフェース』→『実装インターフェース』に、初期に作成した『PunchingInterface』を追加しましょう。 これで、殴られたとき用のイベントが追加できるようになります。     ブループリント上で右クリックを行い、これまた最初に作成した『Punching』イベントを追加しましょう。 (インターフェイス追加後にコンパイルしないと表示されないので要注意です) これが殴られた時に呼び出されるイベントです。 あとはこの先に生死を切り替える処理を実装しましょう。 生死を判定している変数とは、そう、『IsAlive』です。 『IsAlive』をFalseに変えてしまえば敵の実装も完了です!…

UE4のVRテンプレートを利用してミニゲームを作ってみよう!(第二回)

By |

UE4のVRテンプレートを利用してミニゲームを作ってみよう!(第二回)

    2017/04/14:記事の文章にあった間違いを修正しました。 トランスフォームの可動性を変更しないと動かせませんね…。 失礼しました。     この記事は以下のような方を対象としています。 ——————————- ・VR機器を持っていて、UE4でとりあえず使ってみたい方 ・UE4での経験がまだ浅い方 ——————————-     前提のスキルとして ——————————- ・UE4のエディタの操作方法がわかる ——————————- があればOKです。   また、先に前回の記事を読んでから、この記事を読み始めていただきたいです。   こんにちは、前回から始まった『パンチングゲーム製作』。 わかりやすく説明できたでしょうか?     さて、前回まででは 『VRテンプレートでのプロジェクト作成』 『不要なBPの削除』 『BPインターフェイスの作成』 をやってきました。   今回は 『敵のBPの追加』 『敵のパラメータを設定』 『敵の移動処理』 『敵が死亡したら消える処理』 を実装していきます。   ガリガリ、というほどではありませんが、 それなりに本格的にBPを弄っていきますので、気を引き締めましょう!     6.敵を追加しよう! ついに敵キャラを作ります。 『新規追加』→『ブループリント クラス』で新しいBPを作成します。 StaticMeshActorを継承しましょう。 球体型の敵にしようと思うので、『BP_Enemy_Ball』と名付けましょう。     7.敵のパラメータを設定しよう! さて、今のままだと何も見えません。 敵の姿を追加していないためです。 敵のBPを開いて、『StaticMeshComponent』の『StaticMesh』を変更し、敵の姿を設定しましょう。…

UE4のVRテンプレートを利用してミニゲームを作ってみよう!(第一回)

By |

UE4のVRテンプレートを利用してミニゲームを作ってみよう!(第一回)

この記事は以下のような方を対象としています。 ——————————- ・VR機器を持っていて、UE4でとりあえず使ってみたい方 ・UE4での経験がまだ浅い方 ——————————-     前提のスキルとして ——————————- ・UE4のエディタの操作方法がわかる ——————————- があればOKです。     『せっかくHMDを買ったんだし、自分でVRゲームを作ってみたい!』   この記事を見ている方の中にも、そういった考えを持った方がいらっしゃるのではないでしょうか? ごもっともな考えです。新しい機材が手に入ったのならば、その機材を使ったゲームを作りたいと考えるのはクリエイターの性ですからね。     しかし、いざそういった機材を使ってゲームを作ろうとすると、なかなか作れないのが現実。 Unityを使おうとすれば色々とややこしい設定が必須になり、 ネイティブで実装しようとした場合の苦労は言わずもがな。 『VRで動くプログラムを見たい』、ただそれだけなのに、 そこへ辿り着くまでに力尽きてしまうこともありえます。     という事で、今回からは 『簡単にVRを使う』 『簡単に作れる』 『わかりやすい』 の3点を重視して、UnrealEngine4(以下UE4)を利用して VRのミニゲームを作っていきたいと思います。 (全3~4回予定)     0.作り始める前に… まず、このチャプターでは 『どんなゲームを作るのか』 『そもそもなぜUE4を使うのか』 の2点について説明します。     実装には関係ないチャプターですが、一応読んでおいて頂きたいです。   『どんなゲームを作るのか』   以下がゲームの仕様です。   ・プレイヤーはフィールドの中心にいて、移動はできない ・エネミーはフィールドの四方からスポーンしてプレイヤーに近づいてくる ・操作はモーションコントローラを使用 ・グリップトリガーを引いている間攻撃モードになる ・攻撃モード中に拳が敵に当たると、敵を撃破する ・テスト目的なので極力シンプルに。…

HTC VIVEでポジションリセンターを行う(UNITY)

By |

HTC VIVEでポジションリセンターを行う(UNITY)

Oculus Riftに比べて、HTC Viveのドキュメントは決して豊富とはいえません。 UnityのUnityEngine.VR.InputTracking.Recenter(); の関数が使えないなど、UnityのネイティブVRサポートも正しく動作しないことがあります。 例えば、作成中のゲームでStanding ModeやSeated Mode使おうとした場合SteamVRのValve.VR.OpenVR.System.ResetSeatedZeroPose (); を利用することになるとおもいますが、Room-Scaleでのプレイヤー位置のリセットの場合はその関数は動かないことを前提としえいる為利用することができません。 そこでルームスケールでの位置リセットを実現するため、スクリプトを作成しましたのでシェアしたいとおもいます。 上記のスクリプトでは、VRの体験者はPlayRoomのRoomScale内のどこでもいても、ゲームを起動するとスタートの際、ゲーム内の初期ポジションに配置されます。 そしてゲーム始まった後、またその決めた場所に戻させるスクリプトです。 ゲームが一旦始まった場合でも矢印↑キーをおせば、ゲームの初期ポジションに戻すことができます。 細かい部分についてはまた次回に説明したいと思います。    

HoloLensの開発(Unity)

By |

HoloLensの開発(Unity)

今回はUnityを使ってHoloLensでシンプルなCubeオブジェクトを表示するアプリをビルドしてみましょう。参考にするのは https://developer.microsoft.com/en-us/windows/mixed-reality/academy になります。 Microsoftの上記のドキュメントをしっかり読んでもいいですが、私のようにイライラしてしまうといけないのでCubeを出すのに必要な部分を抜き出して手順を下記に説明してみます。 まず、HoloLensの値段を見て絶望しないでください、HoloLensなしでも開発できます。ただし、HoloLensがない場合はWindows “Pro”が必要です(できればWindows 10) Windows”Home” ではHoloLensのエミュレータが動きません。では、早速始めましょう。 Unityで新しいプロジェクトを作ってください。 キャメラのセットアップ。Main Cameraを選択してインスペクターで: Positionを(0,0,0)にしてください。 Clear FlagsのドロップダウンをSkyboxからSolid Colorへ BackgroundをRGBA(0,0,0,0)にして「黒」 Near Clip Planeを0.85に プロジェクト設定 メニューバーのEdit > Project Settings > Qualityを選択します ウインドウズストアのロゴの下のドロップダウンからFastestを選択 メニューバーのEdit > Project Settings > PlayerのWindows StoreタブのOther Settingsで Virtual Reality Supportedをチェック Virtual Reality SDKsのリストにWindows Holographicが入っているを確認 ホログラムを作り Cubeでもシーンに入れて Cubeを選択された状態でインスペクターでPositionを(0,0,2)にしたらオブジェクトがユーザーのスタート位置から2m前にあるように見えます CubeのScaleも(1,1,1)だったら1mのCubeが見えますのでもうちょっと小さくしましょう(0.25,0.25,0.25)にしたら、25㎝のCubeになります。 シーンを保存 UnityからHoloLensでテスト(HoloLens必要) HoloLensのストアからHolographic Remoting Playerをインストールして、起動するとIPが表示され、待機状態になります UnityのメニューバーでWindow > Holographic Emulation.を選択…

Go Top