【ARCore】UnityでARCoreを使い、3Dモデルをスマートフォンに表示させ、スクリーンショット
TOP > てきとうにこらむ > ゲーム作りとプログラミング日記 > 【ARCore】UnityでARCoreを使い、3Dモデルをスマートフォンに表示させ、スクリーンショット
てきめんちゃんモデルを作った
自分のドット絵を、ボクセルに変換して過去に作ったモデルの顔にはめたところ、なかなかいい感じにかわいいのができた。
というわけで、スマホでも愛でたいので、ARCoreを使って3Dモデルを表示させたい。
ただの日記になってしまった。内容がないと思う
ARCore
Googleが作ってるARプラットフォーム。
https://developers.google.com/ar/discover/
これを使えば、自分で作った3Dモデルをスマホに表示できるはずである。
どう使うか
Javaから(Android)使うか、Unityから使うか、UnrealEngineから使うかなどいろいろ選べるらしいけれども、自分にとってUnityがやりやすいことがわかった。
今日知ったけど、Javaでのチュートリアルあったのか。https://ktaka.github.io/codelab/sceneform-ar-ja/#0 よさそう。
Unityで使う
Unity で使うので、ARCoreのunitypackageをダウンロードしてインポート。Quick Start for Androidページを読んで、どう動かすのか理解する。
サンプルをいじる
droidくんが使われているので、それをてきめんちゃんモデルに変える。とりあえず表示させることができた。
モーションを加える
そのままだとT字型なので、立ち姿と走り姿を加える。しかし、ここで問題が発生した。というのは、てきめんちゃんモデルのボーンがおかしかったのか、なにか変なポーズになっていたのだ。
ボーンの修正
blenderでボーンを修正することにした。腕と肩の位置調整が主。fbxでエクスポート。
ARCoreで表示させる
- 移動できるようにPlaneをおき、その上にてきめんちゃんを置く。
- CrossPlatformInputで移動できるようにした。
- カメラを撮るようにした
カメラを撮るようにした
カメラを撮るといっても、スクリーンショットを撮るのと同義としているので、Unityでスクリーンショットを撮るときのプラクティスを調べて撮影し、PNGファイルをスマホ内に保存させた。
スクリーンショットを保存する方法としては以下があるらしい。
- ScreenCapture.ScreenShot
- Texture2Dを作成し、Rectを呼び出してスクリーンをTexture2D.ReadPixels
どちらでも、まずスクリーンショットを取りたいとき、余計なコントローラー部分が表示されてほしくないので、SHOOTが押されたら非表示になってほしい。
そこで撮影して、撮影が終わったらコントローラーを表示させれば撮影となる、とした。
あとやりたいこと
ARCoreのObject Manipulationを使って、てきめんちゃんを拡大・縮小の操作ができるようにしたい
参考
- ARCoreを使って、ユニティちゃんを地面で歩かせてみた
- Quick Start for Android
- 【Unity】Unityでスクリーンショットを撮る時に必要なTipsまとめ
- Unityちゃんをキー操作で走らせる
- ARCore 取扱説明書