テラシュールブログスマートフォン用の表示で見るテラシュールブログ旧テラシュールウェアブログUnity記事。UnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。カメラなんか面白くなって色々やってたら無駄に時間かかってしまったので、コードとコードの解説についてはモチベーションが上がった時に。スタート地点はこんな感じです。プレイヤーの子オブジェクトとしてカメラがくっ付いている、Unityでは良くあるパターンです。ちなみにカメラ境界線もカメラの移動予測地点移動も無くすとこんな感じ。27カメラの移動範囲を制限しようと思いましたが、StandardAssetsのUtilityにCameraFollowなるコンポーネントがあり、これがカメラの移動範囲を制限する機能だったのでそのまま拝借。類似品にFollowTarget(3D用の対象を追跡するコンポーネント)やSmoothFollow(FollowTargetをスムーズにしたもの)FollowCamera2D(移動先を向いてくれるが移動すると追いついてしまう微妙なコンポーネント)もあった。キャラクターの制御システム組むのも面倒くさいのでアリものを使用。StandardAssets/2DのCharacterRobotBoy(旧名PlatformerCharacter2D)を拝借。tsubakit1.hateblo.jpとりあえずカメラはキャラクターを直接見るんじゃなくて、キャラクターの移動先を見るように設定。画面端で止まるカメラ。26で、CameraFollowさんは設定がワールド座標に移動するくせにシーンビューに範囲が表示されてなくて使いにくいって事で、範囲をシーンビューに表示するように改造。使ったのはGizmoとHandle。UnityのStandardAssets/2DにあるCameraFollowを少し改造。カメラの移動範囲を表示するようにした。ここで欲が出てきたのがいけなかった。カメラを切り替えられるようにしようと、範囲内に入ったらカメラのレンジを切り替えるコンポーネントを作成。範囲切り替えの計算と切り替え先の取得はコライダーじゃなくて自前計算。ノードマップを作っといて、キャラクターが画面外に出たときに隣接するエリアの判定を行いエリアを更新する...みたいな感じ。事前計算はMenuItemでサクっと。更新忘れが何度かあったから、エリア更新後1秒後とかにどんどんやっちゃっても良いかも。boxのあたり判定だし。ちなみに隣接エリアが無ければ全検索という力技。これで画面外に出たときもちゃんと復帰出来る。キャラクターがカメラの範囲から抜けた時、隣接するエリアにカメラを移動する。27これ縦にも使えるんじゃね...?って事で縦にもやってみる。あとあと、カメラのx軸移動可能範囲を0にすることで、スクロールしないエリアが設定できる事に気づく。27何か色々と物足りなくなってきたので「2Dゲームを面白くする技術」の内容を思い出してマージンを設定してみる。「エリアを出たら=画面が居に移動したら=ゼルダの伝説トライフォースっぽいやつ」を想定して作ってたけど、せっかくなので色々やってみよう的なモチベーション。基本的に「画面から出たら」がトリガー条件なので、移動先が少し巻き戻っててもあまり良い感じがしない。「2Dゲームを面白くする技術」を参考に、カメラに移動マージンを設定してみる。27流石に「画面から出たら」に限界を感じたので、トリガー条件の「画面から出たら」にマージンを設定。カメラの移動範囲を繋げるとカメラ切り替え境界線が大分離れてても綺麗につながるのは中々面白い。「2Dゲームを面白くする技術」で紹介されてる動作を参考に、カメラ移動境界線に遊びのパラメータを追加。良い感じになった気がする。27次はグリッド移動とドット移動について作ろうか、それとも2Dカメラをもっと色々出来るようにしようか。(1)月別アーカイブはてなブログをはじめよう!tsubaki_t1さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。