Unityタイトルにある通り、たった1人の個人開発で約1年をかけ、ARでつながるSNS「Treadraw」を制作しました。その制作の話をしたいと思います。NetworkingFreeapps.apple.comTreadrawとは?「トレドロ」と読みます。ARを使って現実世界にお絵描きしたり、メッセージや画像などを置き、それらを空間ごとシェアすることができるSNSアプリです。お絵描きなどのAR物体は現実空間にずっと残すことができ、他の人も同じ場所で同様のAR体験を共有できます!現実空間にあなたの思い出の足跡を残すことができる新しいSNSなのです!動画はこちら↓Treadrawの名前の由来は?treadとdrawの二つの英単語を組み合わせた造語を作品名にしました。treadには踏むや足取りなどの意味があり、drawには描くといった意味があります。思い出という足跡を描き残すという、このアプリのコンセプトを名前にしました。アイコンもそのような思いを込めたものを作成しました。作った理由ときっかけSFアニメなどで登場するホログラムなどの技術が研究開発されたりしていますが、この技術は将来的に街に溶け込むと思っています。ホログラムの時代が来る前にARによる疑似的な表現がなされる時代が来ると思っています。オーディナルスケール」のような世界です。↓オーグマーと呼ばれるデバイスを装着することで、バトルシーンでは街の建物がゲームの世界観に合わせた見た目になっています。このような街全体を対象としたARを現実的に実現する場合、ARCloudのような技術が必要になります(ARCloudの説明は割愛、興味ある方はリンクを見てください)。世界中の場所を網羅したARCloudデータはありませんし、僕の知らないところで存在していたとしても、今の時代において個人に貸してもらえるとは到底思えません。いった世界を実現してみたいと思っていましたが、まだ無理かな~と思っていました。そんな中約1年前、AppleのARKitの機能の一つのARWorldMapを知り、ARデータ(カメラが捉えた点群データ)を端末内に保存し復元できることを知りました。ARCloudのようなデータがなければ、各ユーザに点群データを集めてもらえば良いのではないか?ARWolrdMapの機能を応用することで、↑のようなことに挑戦しようと思い制作したのがTreadrawです。コンテンツに落とし込む私はせっかくやるなら、作品にしたいと思いました。できたものをTwitterで言うだけ、ブログに書くだけ、デモシステムの作成などではなく、作品として世の中に発信し、新しい価値観に触れてもらいたいと。考えた結果、自分はクラウド技術を使ったシステム制作の経験もあるため、その経験を活かせるSNSの作品とすることで、空間を「投稿」としてシェアする作品にしました。InstagramのARバージョンといったような感じをイメージしてました。ARWorldMapはARCloudなどと違い、現実世界の一部分しか捉えることができない欠点があります。「投稿」という形態とGPSを併用し、「現実空間の中でARオブジェクトを探す」ことで乗り換えました。来た人は空間もシェアし、時間を超えた体験の共有ができる新しい作品に落とし込むことができました。ARKit、Django前述したAppleのARKitの機能のARWorldMapを使用するので、UnityでiPhoneアプリとして制作しました。SNSなので当然、バックエンドが必要ですが個人開発なので、開発コスト(費用も)を考え、firebaseを利用しました。全体のシステム構成は↓のような感じですこのアプリのコアである、AR空間の共有(SNSシェア)↓のような感じです端末内に保存されているARWorldMapデータを取り出して、データベースに保存しています。Storage上のARデータを一緒に管理することで、投稿位置情報に基づいた空間体験共有を実現しています。約1年の制作で学んだ、長期制作の辛さ・苦労点ライブラリのバージョン変更やバグ完成したものでは、約10個近くのライブラリを使用させていただいております。それらのライブラリもアップデートが起こります。これは、ライブラリが開発者様によってメンテナンスされているので非常にありがたいことなのですが、Unityで使用するライブラリは一部手動で差し替えなければいけません。バグが発生し解決されるまで時間がかかることがあります(メンテナンスされていないライブラリだったら自分でデバックするしかない...泣)最も痛手だったのは、UnityでARKitを使うためのプラグインが制作中に非推奨になってしまったことです。Foundationの使用を推奨されました。́;ω;`)プラグインがバグってるから公式のを見に言ったらえぐいことが書いてあった。2019Unityアップデートでのバグ発生Unityのアップデートによってバグが発生することもありました。そもそも、制作中のものなのにUnityのバージョンを変更するべきではないというのは当然だと思うのですが、使用しているライブラリのアップデートによってUnityのバージョンを変更しなければならなくなりました。FoundationもUnityアップデートの一例です。大規模ネットワークデータへの対応これは僕の能力が劣っているだけかもしれませんが、SNSのデータをどのように管理するかに悩まされました。多くの人が利用しかつお互いのデータを共有するため、システム実装面とセキュリティ面を同時に考慮する必要がありました。将来的に機能を追加する場合でも問題ないかなど非常に神経質に考える必要があり、苦労しました。技術の進歩は日進月歩、というのは本当だと思います。長期の制作をしていると、新しい技術や流行が作られたり遷移したりします。Anchorsが発表され、iOS、アンドロイド、HoloLensとプラットフォームに依存しない点群データ共有のサービスが発表されました。これにより、自分の制作物が受け入れられるのかという不安になりました。U-22プログラミングコンテスト2019に応募してみた制作中にβ版ぐらいのものができたときに、他人がどう思っているのかを聞きたかったので、U-22プログラミングコンテスト2019に応募しました。審査員の方からのコメントは、お褒めの言葉から自分では気づかない着眼点のアドバイスなど、非常にありがたいお言葉をいただきました。リリース中のものは最低限の機能のみだと思っています。自分の中で拡大させたいユースケース案や追加機能を考えているので、これからもっとTreadrawを進化させていきたいと思います!!Treadrawのこれからの進化を楽しみにしていただけたら幸いです。~CycleGAN~前回、概念から数学的なことも含めてGANについて説明しました。~CycleGAN~敵対的生成ネットワークをまじめに勉強して実装してみたNAKEDのインターンに参加してきた月別アーカイブはてなブログをはじめよう!IKEPさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。