Building holographic apps with Unity抜粋
Holographic development documentationのBuilding holographic apps with Unityの、気になる部分をメモ。
Unity development overview
Sceneの設定
- Main CameraのPositionを(0,0,0)にする。
- Main CameraのClear FlagsをSolid Colorにする。
- Main CameraのBackgroundを#00000000にする。
- Main CameraのClipping Planes - Nearを0.85にする。
プロジェクトの設定
- 使うAPIによって、Player SettingsのPublishing SettingsにあるCapabilitiesをチェックする。
- Build SettingsのPlatformをWindows Storeにする。
- Build SettingsのSDKをUniversal 10にする。
- Build SettingsのUWP Build TypeをD3Dにする。
- Project SettingsのQualityの、Windows StoreのDefaultをFastestにする。
- Holographic viewで表示させる場合は、Player SettingsのOther SettingsにあるVirtual Reality Supportedをチェックする。
Recommended settings for Unity
スプラッシュ画面
- Unity Proライセンスが無い場合は、常にUnityスプラッシュ画面が表示される。変更できない。
トラッキングロス
- デフォルトはトラッキングロスが発生すると、レンダリングを停止する。
- トラッキングロス時に画像を表示することができる。Player SettingsのSplash Imageの、Windows HolographicのTracking Loss Image。
- トラッキングロス時の動作を変更できる。(Manual Handling)
Performance recommendations for Unity
後日、書く
Exporting and building a Unity Visual Studio solution
- UWP Build Typeは、D3Dが推奨。システムキーボードを使う場合はXAML。
- Unity C# Projectsをチェックすると、Visual Studioのリモートデバッガが使えて、さらにスクリプトが編集できる。Unityとはファイルが分離されているので、Unityを編集したときは、再エクスポートが必要。
- Configurationは、Debug,Master,Releaseの3種類。最適化とプロファイラに違いがある。
Best practices working with Unity and Visual Studio
- 開発は1つのUnityと2つのVisual Studio。Visual Studioはスクリプト編集用とエクスポートしたアプリのビルド用。
- Unity C# Projectsにチェックすると、エクスポートにUnityフォルダのスクリプトが参照で含まれる。そのため、開発は1つのUnityと1つのVisual Studio。
まとめ
設定しておくと良さそうな項目は次のとおり。
- Build Settings.Platform = Windows Store
- Build Settings.SDK = Universal 10
- Build Settings.UWP Build Type = D3D
- Project Settings.Quality.Windows Store.Default = Fastest
- (Holographic view) Player Settings.Other Settings.Virtual Reality Supported = checked
- Main Camera.Position = (0,0,0)
- Main Camera.Clear Flags = Solid Color
- Main Camera.Background = #00000000
- Main Camera.Clipping Planes - Near = 0.85
HoloLens開発はじめました
HoloLensのアプリケーション開発のために、Unityはじめます。
公式のDevelopment overviewによると、
2D apps can use any tools for building Universal Windows Apps suited for environments like Windows Phone, PC and tablets. These apps are experienced as 2D projections and can work across multiple device types.
Holographic apps need tools designed to take advantage of the Windows Holographic APIs. In particular, if building an app we recommend using Unity. Developers interested in building their own engine can use DirectX and other Windows APIs.
Holographic appsは、UnityもしくはDirectX。
くうさんによるとこれでも出来るらしい。
DirectXはちょっと辛そうなので、Unityで。
ざざっとネットを漁った感じだと、大きく2つのことをマスターしないといけないようです。
- Unityのこと
- Holographic appsのこと
それぞれについて、参考書を頼りにやっていきたいと思います。
Unity5の教科書
http://amzn.asia/3P6jwtKamzn.asia
他のUnity5本と比べて、仕組みを理解してもらうことを主眼に、丁寧に構成されていると感じました。C#プログラミングの説明が少ないのも好印象。
Develop Microsoft HoloLens Apps Now
現時点、本だとこれしか見当たらない。
chibi:bitの開発環境
chibi:bitの開発環境を一通り確認しましょう。
chibi:bit開発環境
chibi:bitの公式な開発環境chibibit/ideです。 ここでは、ブロックとJavaScriptの2種類でプログラミングでき、画面上でchibi:bitをシミュレートして動作確認することができます。 また、ブロックとJavaScriptを相互変換(ブロック→JavaScript、JavaScript→ブロック)も可能です。
micro:bit開発環境
chibi:bitは、BBC micro:bitの互換機なので、micro:bitの開発環境を使ってプログラミングしても問題ありません。 micro:bitの開発環境は、現在、5種類(+モバイルアプリ)もあります(!)
こちらのWebページから、使いたい開発環境の"Start with this editor"をクリックします。 簡単に扱えそうなものから順に見ていきましょう。
Touch Develop
タッチパネル操作しやすい開発環境です。 見た目はテキスト入力ですが、左下に並んだボタンをクリックしてプログラミングします。関数電卓のような操作感です。
Block Editor
ブロックでプログラミングする開発環境です。 Touch Developに変換することができます。
JavaScript
JavaScriptでプログラミングする開発環境です。 JavaScriptとはいえ、テキストエディタではなく、マウスでポチポチと操作します。
Python
MicroPythonでプログラミングする開発環境です。テキスト入力です。
Microsoft PXT
ブロックとJavaScriptの2種類でプログラミングする開発環境です。 chibi:bit開発環境と同じ。(というか、Microsoft PXTがchibi:bit公式に、という流れですね。)
一通り眺めてみると、
- Touch Develop, Block Editor, Pythonが同一環境。(作ったスクリプトの一覧も統合されている)
- Microsoft PXT, chibi:bitが同一環境。
- JavaScriptは別。
- Microsoft PXTはBeta。
- 言語を相互変換できるのは、Microsoft PXT/chibi:bitのみ。(ブロック<->JavaScript)
これがベストっていうのは無く、、、 好きなものを使いましょうw
KH-270の改造メモ2
KH-270の改造メモです。
ソレノイドの駆動をmbedから制御できるよう、トランジスタアレイの入力部分にI2C-GPIOを差し込む。
標準搭載のマイコンからの制御を無効にして、mbedからの制御だけにするなら比較的簡単なのだが、鹿ちゃん(←依頼主)からの無効化しないで圧力があり...
まず、トランジスタアレイを外す。
I2C-GPIOをオモテに配置するスペースは無いので、ウラに貼り付けなければいけない。 ウラに貼り付けたときに、既存の配線と短絡しないよう、I2C-GPIOの裏面をポリイミドテープで絶縁する。さらに、厚手の両面テープを貼り付け。
基板のウラに貼り付ける。
ちょっと傾いて付いてしまったが、見なかったことに。
UEW0.26mmで、基板から出てくる制御信号を、I2C-GPIOに入力する。
トランジスタアレイを載せやすいよう、L型ピンヘッダで嵩上げして、
トランジスタアレイを載せる。
トランジスタアレイを表裏反対にしたほうが電源の配線が楽だったなこれ。
UEW0.26mmで、I2C-GPIOの出力を、トランジスタアレイに入力する。
この状態で、編み機に基板を収納してみたが、特に当たりは無かったので、一安心。
ここからは体力作業だー
Inkscape 0.92を動かしてみました
Inkscapeの新バージョンがリリースされたみたい。
早速、動かしてみたいと思います。
ダウンロードサイトはこちら。
わたしはSurface Pro 2を使っているので、64bit-Windowsのinstaller(exe)をダウンロードしました。
で、インストールして起動。相変わらず起動には時間がかかりますが無事起動できました。
以前のバージョン(前面)と比較すると、メニューの文字やアイコンがクッキリ表示になっています。これはうれしい。
所々、文字化けしていたのも、改善したようです。
■旧バージョン(0.91)
■新バージョン(0.92)
わたしが時々使うビットマップのトレースも問題なし。
少し触っただけではありますが、新バージョンの方が良さそうでした。
3Dスキャン & 3Dプリントでオリジナルフィギュアを作ってみました
この記事を書いているときに、ファブラボ北加賀屋さんに同様の記事がアップされました。 そちらと合わせて読んでもらえると楽しめます。^^
Facebookで、
というコメントで盛り上がり、カネマツさんの「フチ子さん」を作ってみました。
3Dスキャン準備
3Dスキャンするために、次の機材を用意しました。
Kinect for Windows Developer セット
3Dスキャンするためのセンサーで、Xbox One KinectセンサーとXbox One Kinectセンサーアダプターのセット商品です。
Kinectはv1とv2の2種類ありますが、深度の解像度が高いv2を使いました。機能の違いを詳しく知りたい人はコチラをご参照ください。
USB3.0接続できるパソコン
Xbox One Kinectセンサーを接続するパソコンです。 Surface Pro 2を使いました。
最新のKinect for Windows SDK
パソコンに、Kinect for Windows SDK 2.0をインストールします。
プロジェクター
3Dスキャンしている様子をパソコンから離れていても確認できるよう、プロジェクターを用意すると良いです。
3Dスキャン
SDK Browser (Kinect for Windows) v2.0を起動して、下の方にあるKinect Fusion Explorer-WPFのRunをクリックして実行します。
3Dスキャンの様子が分かるように、パソコン画面をプロジェクターで映しながら、3人で実行しました。
- スキャンされる人(カネマツさん)
- スキャンする人
- パソコン操作する人
スキャンする人がKinectを持って、上下に動かしながら、スキャンされる人の周りをゆっくりと周って測定します。
測定距離が外れたり、早く回り過ぎると、エラーになってしまうので、慣れるまで少し手間取りました。画面右上の赤外線画像を見ながらゆっくりと周ると良さそうです。 測定距離が近すぎても遠すぎてもダメなので、結構難しいです。根気よくやりましょう。
リアルタイムにパソコン上にスキャン結果が表示されます。
その後、Create Meshをクリックして、スキャン結果をSTLファイルで保存します。
STLファイルを3D Builderで確認すると、スキャンした結果に余分なもの(イス、テーブル)があったり、穴があいていたりして、そのままでは3Dプリントできません。また、「オブジェクトの定義が正しくありません」と、データに問題があることが表示されています。
3Dデータ修復
3Dデータの修復には、Meshmixerを使いました。
メッシュを減らす
スキャンしたそのままのデータだと、メッシュが多すぎて処理が遅いので、メッシュを減らしましょう。
全て選択してから、Edit->Reduceで、メッシュの数を減らすことができます。
余分なデータを削除
削除したい部分を選択(ぐるっと囲うとか、ブラシ使うとか)して、Delキーで削除します。
自動修復
Analysis->Inspectorで、自動で修復します。
File->Exportを実行して、OBJファイルで保存します。
確認
再度、3D Builderで開いて、エラーが発生しないことを確認します。
問題なければ、向きと縮尺を変更して、STLファイルで保存します。
3Dプリント
3Dプリンターで出力します。
まとめ
- Kinect v2 + Meshmixer + 3D Builderで、3Dスキャンと修復ができる。
- 3Dスキャンするには、広い場所が必要。
- スキャン中、スキャンされる人は動いてはいけないので、姿勢をキープするのが大変。
- 3Dスキャンの途中で頻繁にエラーが発生した。スムーズにスキャンできるようになるには、時間がかかる。