せっかくiPhone12Proを買ったので、LiDARを使って遊んでみたい。
ということで調べたことをまとめていきます。
できればかわいい女の子を自分の部屋に召喚したい...。
2021/01/09追記
→App Storeにリリースしました
ARでユニティちゃんを出すとこまでできたボール飛ばす機能はARFoudationのサンプルそのままアニメーションとかできればもうちょいそれっぽくなりそう pic.twitter.com/9eVSSUA4wg
— カルロ (@carlvwxyz) December 13, 2020
このままではユニティちゃんが立っているだけなので、現実感に欠ける。
こっちを向くように実装したい。
下記スクリプトを設定したところ、想定した動作になった。
Unityちゃんの見る方向をIKで変える方法 - Qiita
ただし後ろに回っても顔だけ変えようとするのが微妙
怖い...
とりあえず、カメラがユニティちゃんの後ろに行ったらこちらを見ないように実装して回避
ボーッと立っててもアレなので、ランダムでユニティちゃんが動くように実装
下記のように基本の立ちポーズから、色々なモーションに移行するようなAnimatorを作成。
あとはコードでランダムに移行させる。
Conditionsに移行条件を設定しておく
public enum UnityChanMotion
{
Pose1,
Wait3,
Wait2,
Wait1,
Win0,
Lose0,
}
private Animator _animator;
private UnityChanMotion _motion;
void Start()
{
_animator = GetComponent<Animator>();
_motion = UnityChanMotion.Pose1;
_animator.SetInteger("AnimationPattern", (int)_motion);
StartCoroutine("StartRandomMotion");
}
private IEnumerator StartRandomMotion()
{
while (true)
{
if (_motion != UnityChanMotion.Pose1)
{
_motion = UnityChanMotion.Pose1;
_animator.SetInteger("AnimationPattern", (int)_motion);
yield return new WaitForSeconds(1.0f);
}
//一定の確率で何もしない
if (UnityEngine.Random.Range(1, 100) < 90)
{
yield return new WaitForSeconds(1.0f);
continue;
}
int max = (int)Enum.GetValues(typeof(UnityChanMotion)).Cast<UnityChanMotion>().Max();
int cnt = UnityEngine.Random.Range(1, max + 1);
_motion = (UnityChanMotion)cnt;
_animator.SetInteger("AnimationPattern", (int)_motion);
// 指定した秒数だけ停止
yield return new WaitForSeconds(3.0f);
}
}
このあたりを参考させて頂いて準備して提出!
iOS アプリ申請のためXcodeでアップロードする
個人開発のUnityアプリをApp Storeに公開するまで - Qiita
個人開発者がAppStore用にプライバシーポリシーを書く - Qiita
1度リジェクトを食らう
「During review, we found that your app includes TrueDepth APIs. However, we were not able to locate any features in your app that use TrueDepth APIs.」
True Depth API使っているけど、アプリにその機能がないよ。いらないなら消してね。という感じ。
これが若干詰まった。ARFoundationのサンプルプロジェクトでインストールされている、ARKit Face Trackingのパッケージがダメらしいのだが、removeしても消えない。なぜか自動的に再インストールされる
【Unity】App Store申請時にTrueDepth APIでRejectされた際の対応(Unity AR Foundation使用)Part.1 : Lab 7 in Singapore
なんとAssets¥XR¥Settingsフォルダ下にあるAR Kit SettingsのFace TrackingがTrueになっていると自動でインストールされるみたい。
オフにして解決。
この機能いる?
ARKit3.5およびAR Foundation4.0を試しました - じゅころぐAR
→「ARがわかる本」を買ってARの基本をざっと試してみた
Unity-Technologies/arfoundation-samples: Example content for Unity projects based on AR Foundation
→ARFoundationのサンプル
iPhone 12 Pro(LiDAR) + ARFoundationで ARゲームことはじめ - カミナシ開発者ブログ
→ARFoundationでLiDARの機能を使うやり方
iPhone 12 Pro(LiDAR) + ARFoundationで ARゲームことはじめ - カミナシ開発者ブログ
CharacterControllerのチェックを外すと落ちなくなった。
ユニティちゃんにCapsule Collidar,Rigidbodyを追加
CharacterControllerの使い方について【Unity】 | グッドラックネットライフ
→CharacterControllerでキャラを動かせそう
Unity初心者のためのアニメーションの基礎の基礎 - Qiita
Unityのアニメーションの切り替えシステムとスクリプト | Unityを使った3Dゲームの作り方(かめくめ)
【UnityC#講座】ユニティちゃんでもっとAnimator Controllerを上手く使いたい | Unityで魔物使い♀ゲームを作る
unitychan_dynamicのFace Updateのチェックを外したら出なくなる
デフォルトである
床設置しなければ落ちる
キーを押すと設定されているアニメーションが順に実行される
キーを押すと設定されているアニメーションが順に実行される(ポーズ系)
ユニティちゃんの背後に回った時に、後ろを振り返って欲しい
回転に関しては下記を参考に実装
Unityでオブジェクトを回転させる方法まとめ | tama-lab
//指定した方向にゆっくり回転する
_target = Quaternion.Euler(0, 90f, 0);
Quaternion nextAngle = Quaternion.RotateTowards(transform.rotation, _target, step);
transform.rotation = nextAngle;
//終了検知
if (Mathf.DeltaAngle(transform.rotation.x, _target.x) == 0 &&
Mathf.DeltaAngle(transform.rotation.y, _target.y) == 0 &&
Mathf.DeltaAngle(transform.rotation.z, _target.z) == 0)
{
_needRotate = false;
//Debug.Log("Rotation end");
}
【Unity】アスペクト比や解像度に合わせてUIの位置とサイズを固定する方法 | ぺんごや
【Unity】タップされた位置がボタンの上だったら反応させない - Kludge Factory
【Unity】カメラのシャッターエフェクト(フラッシュ)を実装してみる | ぐるたかログ
[Unity4.6 Unity UI (uGUI)のCanvas内で表示順(重なり)を調整する - タカシカンパニーブログ](http://takashicompany.hatenablog.com/entry/2014/09/02/234901
info.plistに下記項目を追加し、アクセス権限要求文言を追加
Privacy - Photo Library Usage Description
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント