UnityUnityで衝突と言えばColliderですが、Colliderコンポーネントをアタッチされたオブジェクトは、お互いが重ならないように処理されます。『Scene』ビューで重ねて配置しても、ゲーム実行時にColliderが重ならない位置まで移動させられます。この時、重複って何フレームで解消されるんでしょうかね。重箱の隅をレーザーで突くような細かい話ですが、気になったものは調べるスタイルでいきましょ。SierraUnity2018.1.0f2ColliderについてColliderの種類については以下の記事で紹介しています。ときに読む記事【解説】https://ekulabo.com/check-colliderColliderは種類が多いので、どれを使ったらいいか迷うことも。Colliderですし、軽さ重視ならプリミティブなBoxやSphereです。この記事では、3Dで使うColliderの形状と使い道を紹介しています。今回は主にBoxColliderを使って実験してみます。知っている人も多いと思いますが、Unityのゲーム実行はコマ送りで進めることができます。ゲーム実行ボタンの右が一時停止ボタン、その右がStep(コマ送り)ボタンです。コマ送りできるのだポッターフレーム毎に描画できるので、今回注目しているような細かい話で威力を発揮します。一時停止ボタンを押した状態でゲームを開始すると1フレーム目で停止した状態になるので、そこからコマ送りしていきます。実験で使うオブジェクトは以下の通り。接触が終わったことはOnCollisionExit()で確認オブジェクトを重ねるColliderの重複が解消された後は斥力が働いたかのように反対方向に飛び出します。この飛び出す様子は以下の記事で観察したのですが、今回の実験はその延長線上にあります。user【Unity】重なっているColliderの斥力を観測する実験https://ekulabo.com/collider-repulsionColliderでは衝突を扱いますが、Colliderコンポーネントがアタッチされているオブジェクトの占有領域が重複している場合は、お互いのColliderが重ならない位置に移動させられます。その時の移動速度はオブジェクトの運動にも影響を与えるため、実験をしてみました。Rigidbodyがない状態ではColliderが重なっていてもオブジェクトは動きませんが、Rigidbodyをアタッチした場合は重ならない位置まで動きます。10フレーム経過後にRigidbodyをアタッチするようにしているのは、ゲーム開始時は処理が立て込んでいるためです。この実験用のシーンではStart()にいっぱい処理が入ってるんです......。実際にやってみようframeCountが10になるまでコマ送りで飛ばして、11フレーム目でRigidbodyがアタッチされてから何フレームでOnCollisionExit()が呼ばれるかを確認します。5フレーム待ちで良かったかなーと思いつつ、11フレーム目になりました。このフレームで黄色のオブジェクト、ピンクのオブジェクトの双方にRigidbodyがアタッチされました。この段階ではまだ動きません。11フレーム目でRigidbodyがアタッチ続いて12フレーム目。黄色いオブジェクトは左へ、ピンクのオブジェクトは右へ移動を開始しました。それぞれの移動距離は0.8です。最初の中心の距離(2m)がCubeのサイズである4を超えていれば、距離の上ではColliderの重複が解消されたことになります。12フレーム目13フレーム目で見た目には重複が解消されたように見えますが、Transformを見ると双方向への移動距離が0.96mなので、若干重なっています。13フレーム目14フレーム目ではオブジェクトの間に隙間があるように見えます。移動距離も1.038となったので重複はしていなそうですが、『Scene』ビューで拡大してみたらちゃんと重複していました。14フレーム目とても細かい部分ですが、黄色オブジェクトの領域を示すオレンジ色の線が、ピンク色オブジェクトの領域内にあるため、Colliderが微妙に重複しています。OnCollisionExit()は優秀ですね。14フレーム目の重複15フレーム目でついに重複が解消されました。15フレーム目で解消OnCollisionExit()ではデバッグ文を出力するようにしていたので、ちゃんとそれも観測できました。デバッグ文も出た実際に移動を開始したのが12フレーム目。そこから4フレーム目でColliderの重複が解消されたことに。1フレームで解消されるもんだと思っていたので、案外時間かかっているなーというのが正直な感想です。4フレームに対して「時間かかってる」ってのも変な話ですけどね。何かあったかな?」とギリ知覚できる程度ですね。Colliderが重複して配置された時、その重複が解消されるまでのフレーム数を観測してみました。聞かれたらいやもう本当に答えに窮するけど、たまにはこういう小ネタもいいよね。ゲーム開発の攻略チャートを作りました!「ゲームを作ってみたいけど、何から手を付けていいか分からない!」そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。投稿一覧Unityを使ってアプリを作ったり、Assetを作ったりしてる個人開発者。Unity全般ネタとAsset開発の情報を扱っています。Asset開発は日本語の情報が少ないのよね。ことで些細なネタでも情報を蓄積するのが目的です。2018.05.23衝突を表現するのに必要なコンポーネントであるColliderを扱っています。Colliderのパラメータについて。2018.06.16衝突を表現するのに必要なコンポーネントであるColliderを扱っています。2018.05.26Unityで衝突を表現するためのColliderを使って、オブジェクトの爆発的なぶっ飛びを表現してみます。Colliderのチュートリアルが載っていたので、それを使って遊んでいます。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。todoUnityのアセットを作ったり、スマホ向けのアプリを作っています。このブログではUnity初心者に向けたチュートリアルやテクニックを放出しています。詳しいプロフィールはこちら。お仕事の相談や現在提供中のサービスについては、こちらの『サービス内容』のページをご覧ください。Explorers_todoオンライントレーニングのサイトをオープン!エクスプラボを運営しているtodoが、より集中的にゲーム作りについて学べるオンライントレーニングのサイトをオープンしました。エクスプラボのトレーニングルーム』です。勉強したことの進捗も表示できるようになっているので、どれだけ頑張ったのかが分かるようになっています。ゲーム開発の攻略チャート』というe-bookをプレゼントしています。メルマガではゲーム開発のテクニックを中心に役立つ情報をお届けします。詳しくはこちら!お仕事の依頼はこちら!ゲーム開発のサポートも可能!エクスプラボではゲーム開発のサポートのサービスも行なっています。いう場合にオススメのプランです。普通に開発依頼をいただいてもOKです。【Unity】ポストプロセシングを使って簡単にプロっぽいゲーム画面を作るゲームの作り方を学べるオンライン講座のサイトをオープンしました!【ゲーム開発】ゲーム開発者こそ体を動かしてアイディアを出すべきRANKING【Unity】Mathfの切り上げ、切り捨て、偶数丸め。使い分けが大事よねMathf【Unity】ゲームといえばランダム要素。(12)作ったアプリ空とにゃんこと風船と癒し系縦スクロール避けゲーの『空とにゃんこと風船と』(TODOWORKS名義でリリース)気軽に遊べるスマートフォン向けアプリです。ボクセルアートで彩られるどこかレトロ、でも新しい世界で癒されてみませんか?ぼく、猫ですって!タップ系RPG『ぼく、猫ですって!』(TODOWORKS名義でリリース)気軽に遊べるスマホRPG。