アーマードコアっぽいカメラの実装

カメラが自プレイヤーを遅れておっかけてくれるようにしました。
主に参考、というより以下のサイトのコードをそのまま持ってきました。
【Unity5】AC4系のようなカメラワークを再現する – N煎ログブログ

こちらの記事のコードをSubカメラを撤廃してそのまま実装しました。
ただそのままでは移動の際にカメラがカクついてしまっていて自分のプロジェクト用に修正が必要な部分もありました。

カメラのカクつきは以下のサイトが参考になりました。
FixedUpdateとUpdateごちゃまぜでTransformをいじるとカクつく – 考え中

プレイヤー移動の更新間隔、カメラ移動の更新間隔、ディスプレイの更新間隔をうまいことあわせないとカクつきが発生してしまうようでした。
全てUpdateにしてしまうと物理演算の処理間隔がカメラ移動の更新間隔やディスプレイの更新間隔と合わなくてカクつきが発生してしまうようです。
そこで更新間隔を固定値にするFixedUpdateを利用すると良いみたいです。このFixedUpdateをディスプレイの更新間隔とだいたい一緒にしてあげればうまいこといくみたい?

そんでこんな感じになりました

このまんまだと上下を向いたときにプレイヤーが全然見えなくなってしまうのでカメラの目標地点をプレイヤーの向いている角度によって変える必要がでてくる。
また、プレイヤーを常に中心とするのを目標とするのではなく、X軸方向の目標値には多少の余裕を持たせたい。(プレイヤーを真ん中ではなく右よりとか左よりのまんまにしたり)

CameraPositionTargetオブジェクトに以下のコードをアタッチして対応しました。

値の調整とかがまだできるようにしてないから稚拙なコードだけど・・・
こんな感じになりました。

旋回速度とかも考慮して細かい値はまだ要調整

以上です。

コメント

タイトルとURLをコピーしました