10連休に改めてARを勉強する日記 その2

ARを学ぶ10連休。折り返し地点までの記録。

Day4

最近バックエンドの開発ばかりやっていたので忘れていたが、スマホのアプリ開発は目と首が疲れる。4日目にして大分辛くなってきたので、初めてSwift Playgroundを導入した。ARKit部分のデバッグはできないが、SceneKit関連の開発・デバッグが可能。やはり画面が大きいと快適。

複数のマーカーを識別し、その上にSCNNodeを重ねて動かすというところまで実装ができた。非常に簡素なコードでの実装なのだが、SceneKit / 3D数学の理解力不足のため、ここまで到達するのにやたら時間がかかってしまった。SceneKitはなかなか良いチュートリアルを見つけることができず苦戦。

Day5

マーカーをタップしてインタラクトできるようになった。Nature RemoのAPIとつなげて、家電を制御したりしてみた。赤外線リモコンで操作できる家電はNature remoで、Wi-Fi対応の家電はIFTTTで操作できそうだ。アイリスオーヤマのWi-Fi対応LED電球に関しては、APIが公開されておらず、IFTTTにも対応していないため、残念ながら操作する方法がなさそうだ。

Nature RemoのAPIを試すにあたって、Postmanというリクエスト生成ツールを使ってみたらとても便利だった。

ARでマーカーを認識して、AR上に表現したUIを操作して、現実世界のオブジェクトを制御する、という一連の流れができたので、今後は各部位のブラッシュアップをやっていく。

Day 6

UIの実装を進めて、シーリングライトの設定を色々変更できるようにした。現実世界のオブジェクトを制御できる幅が広がるとやはり楽しい。

並行でひたすらSceneKitの勉強を進める。PlaygroundではAssetsが使えないのが不便で、あまり使わなくなってしまった。

SCNPlaneが透過テクスチャに対応していることがわかり、楽に細かい表現を実現できるようになった。コードもすっきりしてきた。透過テクスチャを重ねた場合にチラツキが発生していたのだが、座標を少しずらしてあげて完全に重ならないようにすればOKだった。

ARKit + SceneKitアプリのUIはピクセルという単位ではなくメートル単位で設計していく。ピクセル単位でのUI実装に比べると、直感的でとても良い。特に、マーカーをベースに現実世界のオブジェクトに表現をオーバーレイしたいような場合に、実寸で設計/実装ができるのは実に便利。PC/スマホのUIもメートル単位で設計/実装するような日が来るのだろうか。

アニメーションに関して、使い慣れているCoreAnimationが使えるというのが嬉しい。transform、opacityなどをCoreAnimationでアニメーションさせるようにしたところ、大分ハリボテ感がなくなってきた。

3Dの数学については引き続き苦戦している。MatrixのCombinationが増えてくると、頭の整理が追いつかない。SCNNodeを入れ子構造にすることで、Matrix Combinationをなるべく書かなくて良いようにするという苦肉の策を講じているが、パフォーマンス的に大丈夫なのかという不安がある。

残り4日間で、シーリングライト以外の家電についても操作できるように実装しつつ、UI表現をブラッシュアップさせていく。あと部屋の掃除をやる。

続きはこちら

Pocket

「10連休に改めてARを勉強する日記 その2」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です