34
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unreal Engine (UE)Advent Calendar 2021

Day 7

【UE4】嘘パースで遊ぼう

Last updated at Posted at 2021-12-06

はじめに

これを見てもらうのが早いです!


パースを使ったギミックに興味が湧いたでしょうか?
私が思うパースの面白ポイントは以下のとおりです。

  • 見た目の迫力がある
  • いろんな実現方法がある
  • 操作性について工夫の余地がある

使うだけでなく、作るのも楽しいです。
今回は手軽にこの楽しさを味わえるよう、実際に**「嘘パース」を実装する例**を紹介します。

「嘘パース」について、ここでは「カメラに近いものが より大きく見える」という効果として説明します

利用したUEのバージョン
UE4.27.1 & UE5EA

利用したキャラクタモデル
Twitterのリンクで利用しているのは シェンナさんシアノスさん です。
実装サンプルはVRoidStudioより AvatarSample_Aさん です。
感謝!

嘘パース実装の方針

簡単に言ってしまえば「カメラに近いものが より大きく見える」ようになれば良いです。
以下の2つのアプローチが思いつきます。順に作って紹介します。

  • 骨アニメーション(移動・スケール)で制御
  • マテリアルで制御

##骨を使った嘘パース
###伸ばす・スケールする
骨を動かしてAnimationSequenceを作成します!

リターゲティングオプションを Animationに設定し、骨を動かす
anim.png
通常 腕骨を伸ばす 手骨を拡大する
ScreenShot00034.png ScreenShot00035.png ScreenShot00036.png
上から見た図(左から 通常 / 腕伸ばし / 手拡大)
ScreenShot00037.png

簡単! …ですが、エディタ上でのお手軽な調整には不向きです。動的な制御をする場合はAnimBPやControlRigに仕込む必要があります。
ゲームプログラム的な視点では、スケールによる揺れ骨やコリジョンの整合性も気になります。

一般的にはDCCツール(MayaとかBlender)でカットシーン(カメラを含めた全アニメーション)を作るような作業フロー向けだと思います。
もちろんUE4上でもカットシーンは作成できますが、骨の細かな制御には難アリです。

もっと手軽 かつ 汎用的に使いたいので、マテリアルでなんとかする方法を考えます。

##マテリアルを使った嘘パース

###頂点をカメラに近づける
「カメラに近いものを より近づける」ようにマテリアルを組みます!
WorldPositionOffsetによって、頂点をカメラに近づけるよう変形します。

カメラに近いものが より近づく
node0.png
通常 手の頂点をカメラに近づける
camdire0.png camdire1.png

一見良さそうな結果に見えます。しかし実際に使ってみると構図を決めづらいです。
カメラを左右に動かすと違和感があります。腕の向きが変化するような見た目になります。
ファイル名

扱いづらい理由は「カメラの注視点を中心に拡大している」からです。中心を変更する方法を考えます。

###頂点をカメラに近づける 改良版
前段の方法にパラメータを追加して、拡大の中心点を指定できるようにします!

カメラの向きを考慮して近づける
node1.png

扱いやすくなりました。
カメラを左右に動かしても自然に変形します。(スケール中心座標を右手に設定しています)
ファイル名

これで嘘パースとして、十分使いやすい機能になりました。

ただ細かい点を挙げるなら…

  • 遠近法で拡大したように見せているため、頂点がカメラに近づきすぎるとモデルの見た目が歪む
  • 深度がズレるため、被写界深度(ピンぼけ)を併用した調整が難しい

色々解消するため、投影面で変形する方法を考えます。

###投影面上で拡大する
スクリーン座標で拡大します!
(中身は煩雑なので気にしなくてもOKです。興味ある方だけどうぞ。拡大方向の計算がちょっと面倒です…)

投影面に沿って拡大する
node3.png

これにて、モデルが破綻しにくくなりました。

通常 手の頂点を投影面で拡大する
無題1.png 無題2.png

さぁ準備は整いました!

エディタ上で遊んでみよう

パースを利用すると、ひと味違った絵が出て新鮮ですね。Blueprintと連動させて操作性を上げるのも楽しいです。

ちょっと不便な点
マテリアルによる制御では、不必要なパーツも拡大されてしまうことがあります。
より細かな制御をするには、拡大エリアのマスク処理等が必要そう… ですが、そこまでやるなら骨による制御を追求した方が良いかもしれません。
だんだんお手軽じゃなくなってきますね。

##おわりに

嘘パースが動く様子を紹介しました。パースで遊んでみたくなりましたか?
色々工夫して、迫力ある絵を作ってみましょう!

**「細かいことは置いといて、とにかく使ってみたい!」**という方は… 拙作ですが VRM4Uプラグイン でお試しできます(宣伝)
これは私が個人活動で作成している、UE4/UE5用のVRMモデルインポーターです。
プラグインにはこの他にも、キャラパース変更の機能があります。興味あればお試しどうぞー

おわり

34
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?