2020年7月12日日曜日

HoloLens 2でも、勝ちまくりモテまくり?手から札束を出して札束風呂にしてみた。

お疲れ様です。ZuQ9->Nnです。

2020年7月2日に、HoloLens 2が日本でも、マイクロソフトWebサイトから
個人開発者でも購入可能になり、さっそく購入しました。
僕は2020年7月7日に受け取りました。

初代HoloLensを購入したとき、思い付きでつくた
こちらの札束風呂アプリ。。

勝ちまくりモテまくり? HoloLensを買ったのでバスタブに札束を敷き詰めてみた

お疲れ様です。ZuQ9->Nnです。 HoloLensを発作的に購入してしまいました。 ただ購入して遊ぶだけでは物足りず、 折角、開発者なので、それらしいことをと 思いついたのがこのネタです。 基本的にはHoloToolkit-Unityの Input > Tests > Secene InputManagerTest.unityのSceneで利用している InputHandleCallbackFX.csをもとに作成しました。 個人的には、もっと、あふれださせたかったんですが、オブジェクトを あまりに多く作り出すため、アプリが頻繁に落ちてしまいました。 この辺は、まだまだ修行不足ですね。。 ゆーじ さんの、このネタと、若干かぶってしまいましたが。 すでに作りこんでしまっていたのでもったいなかったのと なぜだか、どうしてもやっておきたい衝動を抑えきれませんでした。 GitHubにもアップしたので参考にどうぞ。 ちなみに、GitHubのリポジトリ名は「 勝ちまくりモテまくり」を ローマ字表記にしたもので このキーワードで画像検索をするとよく雑誌でみかける画像がでてきます。 このネタ、リアルでやるとすると、いくらかかるんだろう。。 実際やるには、ちょっと敷居が高くても バーチャルなら結構簡単にできるってネタは HoloLensのようなデバイスのアプリとして 向いているのではと思います。 今後もできる限り技術情報を発信していきたいですが 僕のことだからすぐ飽きちゃうかも ゆるりと楽しんでいくとします。

また、作ってみようかなと思い立ったのでやってみました。
とは言え、まったく同じものを作るのもつまらないかなと。。

HoloLens 2はもちろん、Air Tapも可能なのですが、
なんといってもハンドトラッキングが使えるのが特徴です。

なので、今回は、手から札束を出すというアプローチを試みました。
実装は、空のGameObject(名前は、SpawnPointにしました)に
MRTKで提供されている。HandConstraintPalmUpをアタッチメントして作成。


ただ、このままだと手のひらが画面に映ったときに札束がでてしまいます。
今回は、手を風呂のほう、つまりカメラから見えなくなったときに
札束をだしたかったので、onHandDeactivateのタイミングで札束を出すようにしました。。。

しかし、onHandDeactivateは何も表示されていない場合もイベントが起きるらしく
onHandActivateでフラグを立てて、最初はイベントが起きても
札束が出ないように制御しました。あと、Orbitalもアタッチしないと
手を動かしたときに、手の位置から札束がだせなかったりと。。
こんな簡単なアプリをつくるだけでも色々ハマりがあり勉強になるものですね。

ちなみに、アプリに用いた、札束のアセットはこちらです

Money Pack | 3D | Unity Asset Store

Elevate your workflow with Money Pack asset from Perfect Games. Find this & other great 3D options on the Unity Asset Store.
そして完成したアプリを実機で動かしたのがこちらです。


今回は、デプロイに手間取りました。Visual Studioにまでは出力できるのですが
実機にデプロイするときに、何度も、タイムアウトになってデプロイが失敗する現象がおきてしまって。原因はちょっとわかりません。。Releaseでデプロイしようとすると各自にタイムアウトになってしまいます。。誰が、何が原因かを教えていただければ。。

僕の場合はですが、とりあえずの回避方法はペアリングを一度外して実機を再起動とかすると再びデプロイの成功率がよくなりました。。(これが正しいのかは不明です。)

やはり、いつものパターンでアウトプットが滞っているのでなんとかしたいです。。
せめて、こんな感じのネタアプリが連発できたらなと。。

ゆるりとモチベーションを維持しつつ、続けていければと思っています。

2020年2月13日木曜日

EyeTrackingTargetを試してみた【MRTKv2.2 】

お疲れ様です。ZuQ9->Nnです。
これは、2020/02/08(土)から2020/02/09(日)に開催されたOsaka HoloLens "2" ハッカソン2020の準備のため

EyeTrackingネタをやろうと決めたときに調べた調査メモのようなものです。

EyeTrackingはずっと実機じゃないと使えないと思っていたのですが、
Unity上でもシミレーションできると知って試してみました。

今回の環境はUnity2019.
Microsoft Mixed Reality Toolkit v2.2.0 です。

Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackageのインポート
UnityのMixed Relaity ToolkitメニューからAdd to Scene and Configureを選択する等はいつも通り
わからない方は、以前の記事を参考にしてください。
EyeTrackingを利用するにはProfileの設定が必要です。

Hierarchyから、MixedRealityToolkitを選択し、Inpsectorを表示
InpsectorからCopy & Cutomizeをクリック

Cloning Profileのダイアログが出ますので、Profile Nameを決定してCloneボタンをクリック
Profile Nameは何でも良いのですが、今回はTextMixedRealityToolkitConfigurationProfileとしました。

InpsectorのProfileがTextMixedRealityToolkitConfigurationProfileに切り替わっていることを確認し
Profileの中からInputを選択 DefaultMixedRealityInputSystemProfileの横のCloneボタンをクリック

Cloning Profileのダイアログが出ますので、Profile Nameを決定してCloneボタンをクリック
Profile Nameは何でも良いのですが、今回はTestMixedRealityToolkitInputSystemProfileとしました。

InpsectorのProfileがTestMixedRealityToolkitInputSystemProfileに切り替わっていることを確認し
Input Data Providersの + Add Data Providerをクリック、New Data providerが追加されますので
▼マークをクリックして展開します。

New Data providerのTypeのドロップダウンから
Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input > WindowsMixedRealityEyeGazeDataProviderを選択

Input Data Providersから Input Simulation Serveiceの▼マークをクリックして展開 DefultMixeRealityInputSimulationProfileのCloneボタンをクリック

Cloning profileのダイアログが出ますので、Profile Nameを決定してCloneボタンをクリック
Profile Nameは何でも良いのですが、今回はTestMixedRealityToolkitInputSimulationProfileとしました。

InpsectorのProfileがTextMixedRealityToolkitInputSystemProfileに切り替わっていることを確認し
Simulate Eye PositionのチェックをOnにします。


最後に、Hierarchyから、MixedRealityPlayspaceの下のMain Cameraを選択
InpsectorからUse Eye TrackingのチェックをOnにします。

これで、EyeTrackingのためのProfileの設定は完了です。
今回はEyeTrackingを利用して、視界に入ったらCubeの色を変えるようなサンプルを作成します。

HierarchyからCreate > 3D Object > CubeでCubeを作成

Cubeの座標を適当にCameraに写る位置に移動させます。(このサンプルでは x:0 y:0 z:2)

Hierarchyから、Cubeを選択、InpsectorからAdd Component > New Scriptを選択して新しいScriptを追加します。

Script名は特に何でも良いのですが、今回はEyeTrackingTestとしました。

 EyeTrackingTestの中身はこんな感じです。 Hierarchyから、Cubeを選択、InpsectorからAdd Component > EyeTrackingTargetを選択してアタッチメント
InpsectorからEyeTrackingTargetのイベントを設定します。
EyeTrackingTargetのイベントと、そのイベントの後、どのような動きになるかを関連づけます。
Hierarchyから、Cubeを選択、InpsectorのEyeTrackingTarget、On Look At Startに Runtime OnlyにはCube、Functionには、EyeTrackingTestのAfterOnLookStartを設定

InpsectorのEyeTrackingTarget、On Look Awayに Runtime OnlyにはCube、Functionには、EyeTrackingTestのAfterOnLookAwayを設定

これでアプリは完成です。Unityで実行するとこんな感じです。
Unity上はHead Trackingと同じ扱いになります。
なので、実機に入れないと実際の動きは確認しきれません

EyeTrackingTarget.csについて
こちらは、MixedRealityToolkit-Unityで提供されているScriptです。

Class EyeTrackingTarget

A game object with the "EyeTrackingTarget" script attached reacts to being looked at independent of other available inputs. Assembly: cs.temp.dll.dll Syntax public class EyeTrackingTarget : InputSystemGlobalHandlerListener, IMixedRealityPointerHandler, IMixedRealitySpeechHandler, IMixedRealityBaseInputHandler, IEventSystemHandler EyeCursorSnapToTargetCenter If true, the eye cursor (if enabled) will snap to the center of this object.
文字どうり、EyeTrackingの対象となるオブジェクトにアタッチして利用します。
定義されているイベントに、そのイベントの後の処理を関連づけることで、制御を行っていきます。
イベントは下記

* OnDwell
Event is triggered when the target has been looked at for a given predefined duration (dwellTimeInSec).
ユーザーがdwellTimeInSecで指定された一定時間ターゲットを見ていた場合。
 InpsectorからdwellTimeInSecが指定できるので、その秒数で指定された時間内でターゲットを見ていた時のようですが、 ちょっとよくわかりませんでした。

 * OnLookAtStart
 Event is triggered when the user starts to look at the target.
 ユーザーがターゲットに視線が入った時

* WhileLookingAtTarget
 Event is triggered when the user continues to look at the target.
ユーザーがターゲットを見続けたとき

*OnLookAway Event to be triggered when the user is looking away from the target.
ユーザーがターゲットから目をそらしたとき

* OnSelected
Event is triggered when the looked at target is selected
ターゲットが選択されたとき
これは、EyeTrackingで見つめて、かつ ハンドトラッキングのタップ、またはVoice Commandで対象のオブジェクトが選択された場合です。

目からビームでは、OnLookAtStartのタイミングで当たり判定を行いました。
そのため、必ずしもビームが当たらなくても視界に敵のターゲットが入った時点で
敵がダメージをくらい、うまい人だと、かなり長く遊べてしまいます。

WhileLookingAtTargetで3秒以上見つめたら、みたいな制御は必要だったかもしれません。

このようにEyeTrackingTarget.csを利用することで、
対象のオブジェクトに対する処理を書くだけでいいのは楽ですね。

しかし、きっちりとした制御を行うのは、
なにかしらもっと複雑な処理が必要になるかと思いますが
今のところ、僕の知識ではわかっていません。

EyeTrackingにつては他のデバイス含めて、
機会あるごとに積極的に使っていこうかと思っています。
何故かはわかりませんが、ハンドトラッキングよりも可能性が広がる気がしています

2020年2月12日水曜日

Osaka HoloLens "2" ハッカソン2020に参加 【二日目2020/02/09(日)】

お疲れ様です。ZuQ9->Nnです。
2020/02/08(土)から2020/02/09(日)に開催された
 Osaka HoloLens "2" ハッカソン2020 の二日目2020/02/09(日)レポです。

2020/02/08(土)で、なんとか目からビームのアプリを
実機で動くことに目途をつけて大阪の実家に戻り休むことにしました。

夜通しの開発も提供されてたのですが、一人作業になってしまうこと
日曜のハッカソンを乗り越えても、次の月曜からの仕事を考えると
ここは、無理に作業をせず、いかに休んで体力と集中力を保つかを重視しました。

会場に入って、とりあえず、実機での確認を行いました。
また、最終的な動画を撮れないことも考えて
バグがあっても動いているところさえと思い
保険的に、提出用の動画撮影も行いました。

棒状のオブジェクトから、LineRenderをメインに利用したアセットに切り替えたため
当たり判定がうまく行っていなかったり、音とパーティクルの素材 Prefabでは
Play on awakeのチェックが入りぱなしになっていたりと凡ミスも多く
動いてはいるものの。。不具合も結構ありました。

一番の苦戦は、やはり当たり判定です。当初はビームと一緒に
Shpereの球も出して、その当たり判定で倒せる実装にしたのですが
逆に球が全然当たらず、敵が倒せないようになってしまっていました。

しかし、一人作業の疲れからか、集中力がかなり落ち始めて
ずっと座っているのも。辛くなってきました。
頻繁に離籍しては休みを入れ、休憩を繰り返しました。

その間は、もう自分の焦りの気持ちとの闘い、
これは、最悪、バグ入りの動画を見せればいいとの保険の
ための動画をとっていたので、そちらを何回も見直すことで、
気持ちを落ち着けたり、先にプレゼンの資料だけを書いておいたり
その場で出来ることの作業を、少しづつ進めていきました。

エナジードリンクの差し入れもいただき
ようやく不具合も落ち着いたところで、お昼休憩
お昼はお弁当が用意されました。
また、ここで、HoloLens 2の実機の利用制限が出されました。
HoloLens 2は、一日目の利用により、バッテリーがかなり少なくなっていました。
あらかじめ予約することで、30分間利用できるルールになったので
予約をおこない、そこまでは、ひたすらにUnityでの確認を繰り返しました。

ここまで、不具合の修正と、動く最低限を目指しての
消極的対応だったので、せめてFirst Person Shotter系でよくみる、
十字の照準(CROSSFIREと言うみたいですw)等をつけてみて
実機での確認を待つばかり。。

ようやく実機での確認可能になってインストールをしてみたものの
ここで、先ほどいれた十字の照準(CROSSFIRE)が実機では
シェーダーがこわれてピンク色になり、またもや戻す羽目に。.. orz..

不具合の修正をおこない最終動画の撮影と、実機確認を行いました。
やはり、アイトラッキングの制御がカクカクだったのと
当たり判定が簡単になりすぎて、うまい人だと、
今度は、逆にゲームが終わらない感じに仕上がってしまいましたが
残念ながら、これ以上、手を加えるより、このままで評価をしてもらおうと
またもや、消極的な対応に戻しました。

1日目に行っていた、じゃんけんと、くじ引きの結果、
トップで発表することが決まっていたので、プレゼン資料のしあげと
配布用のパッケージ作成に時間を費やすことにしました。

15時に開発終了、その後、スポンサーのセッションが行われ
いよいよ最終発表。。最終発表の資料はこんな感じでした。
もう、なるべくポジティブなメッセージ性を発信しようと内容を何度か書き換えました。


途中でPCの操作を間違えてしまって焦ったり、
もはや自分では何を言っているのか頭が真っ白な感じでした。
発表終了して、次の人が来たので、慌ててしまい
審査員の人の総評の途中で舞台から捌けようとしたりと
もはや、何やってんだよって感じのテンパり具合。

発表前に、公平を期すために、この2日間での進捗で。。
とか言われて。アレやべ。事前に、プロトタイプ作ってきちゃったよ
ってのがやたらと気になり、 他の人の発表に心ここに在らずみたいな状態に

一応、全員の審査が終わってから、スタッフの方には
ごめんなさい、事前にある程度つくりました。てへぺろ☆(・ω<)って
正直に打ち明けました。あんまり、これは審査員は気にしてなかったみたいです。

発表のあと、試遊時間に、一人作業なので、自分のアプリの
アテンドを行うことに、となりのチームと合同でHoloLens 2を利用したこともあり
イマイチ、アプローチをうまくできず、試遊時間を活かしきれませんでした。

 試遊での課題は、やはりキャリブレーションでした。
また、自分のアプリをピン止めして直ぐに使えるようにすべきでした
どこにあるかをまず見つけてもらうのに苦労しました。

審査員によっては、簡単すぎたり、逆にキャリブレーションがうまくいかず
遊べなかったりとアイトラッキング故の問題点が多かった印象です。
最後に、Unityの@takashijona(常名)さんには、かなり楽しんでもらえたのでなんだか、ホッとしました。

他の開発者の作品で、個人的に気になっていた、音の可視化のアプリのみ体感させてもらいました。
実は、自分のネタを捨てて他人のネタをやるなら、これだなぁと思っていたアプリだったので。。

試遊を終え、審査結果発表。優勝のMVPは、AEDの訓練アプリ
ですよね。。僕が審査員なら絶対に選ぶよ。。って結果に。

その他各賞の発表が。。そしてなんと、主催コミュニティの一つHoloMagiciansさんから
賞をいただける、結果に、事前のプロトタイプ作成が気にかかりましたが
場の雰囲気を壊したくなかったので、素直にいただくことに。。
なんでも、EyeTrackingは絶対に役に立たないと思っていたが
そこを何とかしようとアプローチしたこと。
アプリとして完成して一応、一通り遊べるようになっていたことが評価されたようです。

賞をとれるとは思ってもみなかったので、かなり意外だったし
申し訳ない、こんなネタで。。とか、
嬉しさやら恐縮の気持ち、その他諸々が入り混じりました。

最後に、参加者スタッフで記念撮影、会場の片づけを行いました。
片づけの時間、他のチームの開発者さんから、刺激になりましたと言われたのが、なんとも印象的でした。

開発者だとやはり、EyeTrackingは利用してみたい欲求は高いみたいでした。
しかし、それを何に活かすか?って提案は中々できない、
ましてや真面目なビジネスシーンでは。。

だからこそ、こんなネタが許されるハッカソンのイベントで
目からビームというネタ一本で積極的に使えるように割り切ったのは
あながち悪い結果ばかりでは無かったようです。。

東京で次の日、普通に仕事があったので、新幹線の時間が
間に合わないとつらいなと思い、早々に会場を出てしまいました。。

これほど、大規模で、かなり大きな企業がスポンサーになっているイベントを
開催してくれたスタッフさんには感謝しかありません。中には、夜通しのイベントにも付き合ってた人もいたような感じなので本当にご苦労様でした。

なんどか、ハッカソンのイベントには参加したことがありますが
賞がもらえたこともあり、過去最高のハッカソンだったと思います。

ただ、100%全力で楽しめたか?と言われると、
色々な反省点や課題も多く残りました。。

また、これを次に活かせるのかとか思うとちょっと尻込みもあります。
まぁ、そこは、そんなにも思い詰めず、緩くしていこうかなと。。

とりあえず、主に発作的な欲求で参加したハッカソン。
今年はこれくらいのフットワークの軽さが維持できて
他のイベントにも積極的になれればと考えています。

おまけ。。
ハッカソンの後、気になってアイトラッキング関連を調べなおしたら。。
こちらのMicrosoftの公式ドキュメント

"お客様の目からレーザービームを撮影してください。 RoboRaid For HoloLens 2で試してみてください。"

との記述が。。。
どうやらすでにMicrosoftの公式アプリが、同じネタを実装していたようです。。
プレゼンでは、ひょっとして世界初では。。とかいっちゃったけど。。

全然、世界初でもなんでもなかったw

2020年2月10日月曜日

Osaka HoloLens "2" ハッカソン2020に参加 【一日目2020/02/08(土)】

お疲れ様です。ZuQ9->Nnです。

 2020/02/08(土)から2020/02/09(日)
Osaka HoloLens "2" ハッカソン2020 が開催されたので参加してきました。

Osaka HoloLens "2" ハッカソン2020 (2020/02/08 10:00〜)

スタッフ確保等兼ね合いで、少しだけ一般枠を増枠しました。 抽選が終了していますが、繰り上がりの可能性、(スタッフ増員等による)枠の増加/変動の可能性がありますので、 参加を希望する方は引き続き参加表明をお願いいたします。 また、逆に今後繰り上がり等で参加になった際に、参加が難しくなったという方はキャンセルの手続きをお願いいたします。 一般枠の定員が募集開始4時間ほどで埋まりましたが、抽選制&スタッフ人数次第では増枠(または他の枠との人数調整)の可能性有りなので、気にせずご応募ください。 当日はHoloLensやHoloLens 2等の開発が可能なイベントです。 メンターの対応などを考慮し、イベントでは以下の環境で進める予定です。 事前環境構築済みで参加していただくとよりスムーズに開発に入っていただけます。 Mac端末で参加予定の方への注意事項BootCampなどでWindows 10 OS環境をセットアップ済みの開発機を持参してください。 Bootcampで構築したWindows OSはUnity,Visual Studioをインストールするため最低でも100GB近いサイズは必要になります。ハッカソン当日開発に使う場合は常用できるディスクサイズを確保したものを用意してください 2020/01/20 HoloLensの開発環境に必要なセットアップ作業と確認方法を記載した資料を公開 2/1の環境構築ハンズオンはこの手順に従ってセットアップを実施します。 Mixed Reality Toolkit V2開発環境構築(2020/01版) Windows 10 Fall Creators Update(以降) OSのエディションについてはHome以上であれば問題ありません。 Unity 2019.1.10f1 以下のコンポーネントをセットアップ UWP Build Support(IL2CPP) UWP Build Support(.NET) Microsoft Visual Studio 2019(Community Edition可) Visual Studioインストール時に「ユニバーサルWindowsプラットフォーム開発」「Unityによるゲーム開発」選択 以下のオプション系もインストール Windows 10 SDK 10.0.17763 ⇒
きっかけは、2020/01/17(金)にHoloLens 2 HackDay2020 in Tokyo に参加したことです。
ここでアプリを作成し、やはり、楽しかったし、また、課題も見えてきました。

次にチャンスがあったら、もう少し上手く作業できるのでは?
あるいは、もっと面白いアプリを作れるんじゃないのか?
また、一人だと限界が早くなるけど、ほかの人と連携すると限界を少し伸ばせるのでは?
と、さまざまな、思いがこみ上げ、勢いで参加を決めました。
大阪には実家があるので、泊りのイベントでも、まぁ何とかなるだろう。そんな気持ちもありました。

いつまでも、他人がやったピザのネタに乗っかるのが、なんとなく嫌だったので
今回は、両手でピザのアプリは完全に封印しました。

HoloLens 2 HackDay2020 in Tokyo では、EyeTrackingをきちんと試せなかったので
絶対にEyeTrackingのネタで行こう。。そして、EyeTrackingを使うなら、目からビームのネタで行こう。
そう思い、事前にEyeTrackingに関して調査を行っていました。

以前、北海道に行ったとき、当日の移動でやらかしてしまったので
前日の2020/02/09(金)に、仕事終わりの直後に、新幹線で大阪に移動、実家で過ごすことにしました。

ハッカソン一日目、当日、茶屋町にあるMBSの会場に入りました。
あまりの会場の大きさと、まさしくテレビで見るような、いかにも
発表する舞台のある会場で、思っていた以上に、ガチな印象を持ちました。
参加人数は、参加者、スタッフを含めて50人くらいだったかと思います。

最初、Slackに入れなかったりトラブルも多少あったものの、
自己紹介を終えて、アイデアのある人の1分間ピッチが行われました。
ここで、せっかくなので目からビームのネタを披露しました。

まぁ、誰か一人くらいは、乗っかってくれるのでは?
そんな淡い期待があったものの、結局、誰一人として共感は得られませんでした。 orz...
ちょっと迷ったのですが、どうしても自分のアイデアを捨てれられなかった事
また、ほかに一人でやる方もおられたので、ボッチソンの道を選択しました。

Wi-Fiも提供され、いざというときの調査ができるようになり
とりあえず、お昼ご飯をとることにしました。
メンバーがいないため、結局お昼ご飯もボッチですることになってしまいましたw

昼から、@Miyaura さんによる、開発講座を聞いていると
EyeTrackingを使うには、目のキャリブレーションが必須という衝撃の事実が。。

なるほど、どうりで以前の Hack Dayではうまく動かなかったのか。。
という思いと、同時に、これは試遊の時のハードルが上がってしまうと感じました。
しかし、今更、後に戻ることもできず、突き進むことに。。

開発を 17時の中間発表まで、もくもくと開発、僕は事前にちょっと
プロトタイプを作ってきてたので、とりあえず実機でのEyeTrackingが
どのような体感になるかを確認、同時に、中間発表の動画を撮影しました。

ここで、勘違いが発覚します。てっきり両目の情報を扱えると思い込んでいましたが
実際に利用しているAPIでは両目から何かオブジェクトを操作する用ではありませんでした。

軽くその場で調べてみたのですが、すぐには見つけられませんでした。
なので、両目からビームを出すのは早々にあきらめることにしました。

最初は、棒状のオブジェクトをアイトラッキングで操作する予定でしたが、
そもそも勘違いをベースにコーディングしていたので
制御がヘンテコで、アイトラッキングでは操作が、ほとんどできなくて
あまりにも爽快感が得られず、なんか思っていたのと違う。。って結果に。

中間発表のプレゼン資料の作成も必要となり、
ここで、ボッチ開発の作業量の多さと、辛さを痛感させられることに
中間発表のプレゼンを書くことで、問題点を洗い出し一度頭を整理することに集中しました。

提供されたお菓子も堪能しながら、

プレゼン資料作成に飽きたら、少し開発作業をしたりと
とりあえず、何かしら手を止めない状況にしました。
そして、出来上がった中間発表の資料はこちら。

そして中間発表。。この時、審査員から、何故、HoloLens、HoloLens 2を
使う必要があるのか。。ってことも考えて。。との指示が。。
その場の思い付きで、なんか、「手や言葉の不自由な人にも出来る」。。
とか、言ってしまい、最後の締まで言葉が思いつかず、
おもいっきりグダグダな感じになってしまいました。

中間発表を元に、アプリの改修を始めたのですが、
いったん、目からビームをTrail Rendererにして出してみても
かえって邪魔になってしまったり、ロックオンのようなUIの作成が
思った以上に難しく、容易には実装出来きず苦戦してしまいました。

そして、決定的なのは、NavMeshでの制御を基本に考えていたので
ステージそのものをstaticにしてしまったこと。。
これによって変更すると、すぐにNavMeshが破綻して
今まで動いていた内容がすべてダメになってしまう結果となってしまいました。

流石に、ここで、何も動かないのはマズイと思いgitからもとに戻して
アイトラッキングの制御周りのコードの見直しと
きれいなビームのアセットに置き換えて、見栄えをよくする等
なるべく壊さずに、最終審査で実機で動くことを最低限にして
消極的な対応を行うことに切り替えました。

当初は考えていなかったBGMや効果音、爆破のパーティクル等
急遽、無料のアセットから選出して、なんとか実機で動く目途をつけて
1日目を終了しました。


2020年1月20日月曜日

【第39回】東ゲ部もくもく会に参加

お疲れ様です。ZuQ9->Nnです。



 2020/01/19(日)に

【第39回】東ゲ部もくもく会が開催されたので参加しました。

【第39回】東ゲ部もくもく会

関東ゲーム制作部こと、東ゲ部 のもくもく会です。 毎月第2日曜日に開催(を予定)しています。 各々ゲーム関係のやりたいこと、作業を持ち込み、ひたすらもくもくする会となっております。 職種、ツール、ジャンルは問いません。 アナログ、デジタルも問いません。 書籍を持ち込んで学習するもよし、ゲーム作りの作業をするもよし、アセットの作成をするもよし。 ゲームに関する作業であれば、なんでもOKです。 ...
場所は、茅場町のコワーキングスペース茅場町 Co-Edo
特に僕は、ガチでゲーム開発をしているわけではないんですが、
実は、かなり前から、タイミングが合えば参加していました。

基本的には、ゲームそのものでなくても、ゲームに関連するツールや
またデジタルゲームではなく、アナログのボードゲーム等の開発関連?なら
特におとがめなしで参加できるようです。。
僕は本当に、いつも、あんまりゲーム関連の作業してなくてすんません。って感じです。

僕は、毎回、そん時に気になった作業をしてたので
実際、まったくゲームに関係なくても、きちんとモクモク作業をしていたり
よほど行動が怪しくない限りは参加可能なようです。。

今回は、HoloLens 2 Hack Dayのイベントで作成したピザアプリを
もう少し改良していました。ただ、HoloLens 2は現状、所有してなかったので
折角つくっても実機で動かせないとテンションがさがるので
Oculus Questのハンドトラッキングで動く、簡単なゲームのようなものを作成しました。

実機まで動く形になったのがこちら。

内容は、Fruit Ninja VR のように
飛んでくるオブジェクトを切る感じです。

結局、ゲームのクリアとゲームオーバーを決めきれず
悩んでいるうちに制限時間終了。。

実際に実機で動かして自分で遊んでみたのですが、
まず、掴んだピザがすぐに外れてしまい、
とても操作できたもんじゃないですね。。

ここらへん実機でないと確かめられないので大変だなと。

本当に、個人でゲーム系のアプリを普段から作成され
展示会なんかで発表される方々には尊敬しかできません。

最後に、各自の進捗発表があるのですが、そこで主催の@Usuiさんに
ピザアプリちょっとやってみたいかも。。
と言われたのがちょっと嬉しかったので、
なんとか遊べる形までにはしたいです。。
来週別のモクモク会があるので、そこで続きをやりたい。



2020年1月18日土曜日

HoloLens 2 HackDay2020 in Tokyo に参加

お疲れ様です。ZuQ9->Nnです。

 2020/01/17(金)HoloLens 2 HackDay2020 in Tokyo に参加してきました。

HoloLens 2 HackDay2020 in Tokyo (2020/01/17 13:00〜)

HoloLens 2アプリを開発したいけど実機が無い・・・ そんなお悩みを抱える方にむけた HoloLens 2実機を使える開発者向けハックイベント です HoloLens 2が手元に届くのを待てない技術者の方はぜひこの機会に実機を触ってガンガン進捗上げちゃいましょう!! HoloLens 2の開発に欠かせないMRTK v2については下記をご覧ください! MRTK v2 の概要 事前にこちらのチュートリアルも確認しておくと吉です! チュートリアルとサンプルアプリ HoloLens 2 のチュートリアル ・HoloLens 2は参加者全員分の台数を準備できません。参加者同士譲り合ってご使用ください。 ・開発用PCの貸し出しはありません。 ・事前に開発を進めておき、当日ビルド&デプロイと不備修正などを行うことをお勧めいたします。 ・開発者向けのイベントです。事前アンケートに過去の開発物がわかるページへのリンクをご記入頂ける方を優先致します。 ・イベント中に取材が入る可能性があります。またイベントスタッフによる写真やビデオ撮影等を予定しております。撮影されました内容は後日主催者や会場提供者によるイベントの開催レポート等に使わせていただくことがありますので予めご了承ください。 ・当日の成果を是非とも当日夜の「HoloLensミートアップ Tokyo Vol.19」で発表してください! イベント名:HoloLens 2 HackDay2019 in Tokyo 日程:1月17日(金) 時間:12:30 受付開始 13:00~18:00  会場:日本マイクロソフト株式会社(品川) 31F セミナールームBCD 費用:無料 協力: 日本マイクロソフト Youtubeチャンネル: TMCN 私たちのコミュニティは、性別、性的自認、外形的な性別、年齢、性的指向、障害、身体的特徴、身体のサイズ、 人種、民族、宗教(あるいは無宗教)、技術の選択、を理由としたハラスメントの無い状態を維持すべく行動します。 私たちは、コミュニティメンバーに対する、いかなる種類のハラスメントも容認しません。 性的な表現や画像は、トーク、ワークショップ、パーティ、Twitterその他のオンラインメディアを含め、いかなるコミュニティイベントでも、不適切なものとします。 これらの規則を破った参加者は、オーガナイザーの決定のもと、制裁を受けるか、当該イベントおよび将来のあらゆるイベントあるいはコミュニティから、 払い戻し(もしある場合でも)無しで参加を拒絶されることがあります。 詳細は下記をご確認ください。 HoloLensミートアップ行動規範 https://holomagicianspolicy2019.azurewebsites.net/ 私たちのコミュニティは、ScalaMatsuri 2016にて上映された本動画に賛同いたします。 https://youtu.be/lIfOQNTWdxI
このイベントは、HoloLens 2の実機を操作するだけでなく、
自分が開発したアプリを実機にインストールして試せる。
またとない機会だと思い。平日の昼からのイベントでしたが
参加登録を行いました。とてもラッキーなことに、抽選にあたりチャンスをものにできました。

折角ですし、次のチャンスがいつくるのかわからない。
更に、落選した人もいるので、せめて、準備を十分にして参加しようと思い。
Visual Studio 2019の出力まで終えて参加に臨みました。

しかしながら、前半、USBのドライバを入れ忘れていて
正しくは、Visual StudioのUSDデバイス接続の設定でした。 m(-_-)m スマヌ

認識してくれなかったです。幸いスタッフの@torikasyu(とりかしゅ)さんに助けられ
こちらは、即解決となりました。

しかし、その後もUnityのバージョンなのか?はたまたVisual Studioが原因なのか
デプロイまで出来るがアプリが起動直後に落ちる等、うまくいきませんでした。
実機が5人に一台と少なく、しかもビルド、デプロイに時間がかかるため
あまり一人で占有しきれないので、待ちの時間が多くできてしまいました。

詳しい原因はよくわからないんですが。
Visual Studioで実機にインストールするときARMではなく、
ARM64だと アプリが落ちることがなく利用できるようになりました。

そして、ようやくうまく動いたのがこちら。
たまに、界隈の懇親会で利用されているネタ。
実は、すでに、Oculus Questがハンドトラッキング が対応され
ホロラボの@tarukosu(たるこす)さんが、MRTKv2で利用できるようにしてくれたので
その時にノリで作ってました。

その後、少し心の余裕ができ、まだ時間があるので、 前からやってみたかった、指から光線の出るアプリにとりかかりました。 かなり実装は雑で、なんちゃって感パナイのですが。 あまりなりふり構まっておられなかったので、とりあえずデプロイし、動かしたのがこちら。
その後、ピザアプリをもうちょっと遊べるようにとアセット等を入れて
改良して、ビルド、デプロイを行ったのですが、
ここでも、やはり、実機で実行時に落ちるようになってしまったり。

兎に角、もったいない時間も多かったと自分なりに反省です。
イベント中に、いろいろ聞きまくってたのに嫌な顔をせず、
むしろ、とても分かりやすく返答をいただいた@arcsin16(だん)さんにも
とても感謝しています。

そして何よりこのイベントを開催し、運営してくれた
コミュニティやスタッフさんにもお礼を申し上げます。
本当にありがとうございました。そしてお疲れ様でした。

ゆくゆくはこのチャンスをもらえたお返しに 少しでも良いアプリを作ること
アプリのクォリティーを高めることが重要かなと感じています。


2019年12月21日土曜日

[HoloLens Advent Calendar 2019] 21日目 MRTKv2のClippingをやってみた

お疲れ様です。ZuQ9->Nnです。
この記事は、HoloLens Advent Calendar 2019、21日目
2019/12/21 の内容です。

当初、azure remote renderingを試そうと思ったのですが、日本からではまだ利用できないようでした。
(認識あってます??、間違ってたら指摘お願いいたします。日本以外でも未だなのかも。。)
折角、枠をとったので、何か投稿しようと思い。色々見ていました。
やはり、Clippingの表現がとても映えて面白いと思ったので試してみました。
Clippingを利用するとオブジェクトをくり抜いて、中身を見るといったMRならではの表現が簡単に可能になります。
既に、何人か記事も出していますので、そちらも参考にお願いします。

2019-11-05から1日間の記事一覧 - デコシノニッキ

ホロレンジャーの戦いの記録

MixedRealityToolKit v2 Examplesを触ってみる ClippingExamples - 夜風のMixedReality

MixedRealityToolKit(以下MRTK)にはExamplesというデモサンプル集が含まれています。  Examplesを理解すればMRTKの機能の使い方を学習することや ノンコーディングでの アプリ開発 が可能になります。  今回は UX/StandardShader/ClippingExamplesを見ていきます。 HoloLens ClippingExample ...
今回の環境は、Unity 2019.2.12f1
Microsoft Mixed Reality Toolkit v2.1.0(Microsoft.MixedReality.Toolkit.Unity.Foundation.2.1.0.unitypackage) を利用しました。

プロジェクトの作成、 Microsoft.MixedReality.Toolkit.Unity.Foundation.2.1.0.unitypackageのインポート
UnityのMixed Relaity ToolkitメニューからAdd to Scene and Configureを選択する等はいつも通り
わからない方は、以前の記事を参考にしてください。
MixedRealityToolkit > StandardShaderに
ClippingBox.cs、ClippingPlane.cs、ClippingSphere.csが存在します。
そちらがClippingの処理を行うスクリプトで、形状の違いはありますが、使い方は一緒です。
今回はCubeにClippingPlaneを行う手順を示します。
まずは、HierarchyのCreate > 3D Object > CubeでCubeを作成

次にClipping用のマテリアルを作成します。
Pro

ProjectのCreate > Materialを選択、Materialの名前は何でも大丈夫ですが
今回はClippingMaterialとしました。


ClippingMaterialを選択、InspectorのShaderのドロップダウン押し
Mixed Reality Toolkit

さらにStandardを選択

InspectorがMixedRealityToolkit/Standardに切り替わったら
Clipping BorderのチェックをONにします。

ProjectrのClippingMaterialをHierarchyのCreateにドラッグ&ドロップでアタッチ
CubeのInspectorでClippingMaterialがアッタッチされたことを確認してください。

Cubeを右クリック、メニューからCreate Empetyを選択、Cubeの子供にします。

Empetyのオブジェクトの名前を変更します。特に何でも良いのですが、今回はClippingPlaneとしました。

ClippingPlaneのがInspectorのAdd Componentで、Clipping Planeのスクリプトをアタッチ

InspectorのClipping PlaneスクリプトRenderersのsizeに1を入力

HierarchyのCubeをClipping PlaneスクリプトのInspector > Renderers
Element 0 にドラッグ&ドロップでアタッチメント

そうすると、この時点で、SceneとGameのCubeの下半分が消えて見えなくなっています。
SceneでClipping PlaneオブジェクトのY座標を変更すると、Cubeが消えたり、現れたりします。こんな感じになります。

Exampleでは、すでに専用のMaterialが作成されていたり、
Animationを利用して自動でClipping Planeオブジェクトの座標を変更して
カッコイイ表現を行っていますので、是非、そちらを見てください。

おまけ。。

まぁ、やっちゃいますよね。こんなこと。。
あんたも好きねぇ。。