キャラ用シェーダー
2026/7/13
カメラの近くでキャラが魚眼に歪んだりするのが嫌でカメラの視野角を28°にしていたが、そうするとカメラが遠すぎて色々面倒の原因になっていた。
そもそも一般的なアクションゲームと比較して、ステージがキャラに対して小さいためカメラ距離を設定していても実際には壁にぶつかってほとんど機能していなかった。
そこでカメラの視野角を変更せずにパースを緩める方法がないか探してみた。


光学的には不可能なはずの要件だが、シェーダーの設定で奥行きによる補正を手動で弱められるようだ。
モデルにシェーダーを設定して遠近法の適用が弱まるようにしてみた。
上が適用前で下が適用後のスクリーンショットだが、こうしてみると違いが全くわからない。
しかしぐりぐりと画面内で動かしたりカメラを回すとそれなりに違う。
ドアップの顔などが綺麗になる代わりに、なんとなく合成のように浮いて見えるようになる。


静止画での違和感はこのアングルの方がわかりやすいだろうか。
背景の色が違うせいかもしれないが、下は遠近法が弱いせいで銃にパースがついておらず銃身がかなりまっすぐになっている感じがする。
3D空間では箱型の銃身がこんなに綺麗な四角になることは稀なため、なんだか特殊な形に見えてしまう。
画像では遠近法の適用を50%カットしているが、背景はそのままキャラだけに補正をかけるにしてはちょっとやりすぎな感じがするのでやや弱めにかけてみようと思う。
キャラの手は遠近法が効かないのに武器だけ遠近法で位置が変わってしまうとずれてしまうので、武器のマテリアルにも同じ処理がかかるようにシェーダーを設定する。
このときに、補正の基準点を自身ではなくワールドにしておかないとキャラと武器で歪みのかかり方が若干ずれてしまう。
とりあえず38%カットにしてみた。遠近法が適用されなくなることでカメラに映るモデル全体が縮小されてしまうので若干拡大表示している。
パースが強すぎるとイラスト感のあるバランスが崩れてしまうために作った処理だが、この処理を効かせすぎると立体空間に違和感が出たりカメラを回した時にキャラの身長が変わって見えるのが気になってしまう。
ガッツリ補正をかけつつサイズの違和感などをもう一つ別の計算を挟んで補正するのも手だが、とりあえず立体に違和感が少ない程度に軽く補正するに留めておくことにした。
画面UIなどが追加されたらまたカメラ距離などを変えるかもしれないので調整の仕方を忘れないようにしておかねば。