質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.23%

ポストプロセスでモーションブラーがおそらくかかっていない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,743

tkmnusr

score 334

前提・実現したいこと

パッケージマネージャーからインストールできるポストプロセスで、
モーションブラー効果を試みているのですが、かかっているように見えません。
ご教示お願いします。

試したこと

当該ポストプロセスで、Bloomのエフェクトをかけることはできたので(Bloomがかかっている様子が視認できたので)、
ポストプロセスそのものの基本的な使い方は間違ってないと思います。
Bloomと同様に、Motion Blurをかけてみましたが、かかっている様子が見られませんでした。

Motion Blurをかけて、下記のことを試しました。
なお、効果を視認するためにシーンに赤色のキューブを配置しました(デフォルトのキューブに、赤色のマテリアルをアタッチしたものです)。

・ゲーム実行時にシーンビューで、ゲームオブジェクトの三軸をドラッグして素早く動かしてみる。

・キューブに下記スクリプトをアタッチして動かしてみる(スピードなども変えてみる)。

using UnityEngine;

public class Sample : MonoBehaviour
{

    float m_length    = 4;

    void Update()
    {
        Vector3 basePos  = transform.position;
        float y = Mathf.PingPong(Time.time * 15f, m_length);
        Vector3 position = new Vector3( basePos.x, y, basePos.z ); 
        this.transform.position = position;
    }
}

また、上記スクリプトで動かす際、BloomとMotion Blurの両方をオンにしてみたところ、Bloomがかかっていることは確認できました。

・Shutter AngleとSample CountをデフォルトやMAXの値で試してみる。
Shutter AngleとSample Countの値とはどういうものですか?
これらの値をどのようにすれば、モーションブラー効果がより顕著にあらわれますか?
こちらのドキュメントを見てみましたが、よくわからなかったです。

・モーションブラーをオンオフして、上記スクリプトなどでそれぞれの動きを確認してみる。
モーションブラーをかけていない状態でもわずかに残像っぽく見れました。
そして、モーションブラーをかけてみても、オフのときと大して変わりないように見えたので、やはりかかってなさそうでした。

補足情報(FW/ツールのバージョンなど)

Unity 2019.2.1f1 (64-bit)
Post-processing Stack v2

現状追記

・カメラ
イメージ説明

・キューブ
イメージ説明

・空のゲームオブジェクト
イメージ説明

・設定
イメージ説明

・実行画面
イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

Shutter Angleを大きくすると、普通は明らかに分かるような長さのぼけが生じると思いますので、どこか設定の不備がありそうですね。
まず気になる点として、キューブのMesh Rendererの「Additional Settings」の「Motion Vectors」はどうなっているでしょうか?
ここが「Force No Motion」だとモーションブラーは生じないでしょうし、「Camera Motion Only」だとカメラ側を動かしたときしかぼけなくなってしまうはずです。
そこに問題がなさそうでしたら、他の可能性としては対象プラットフォームに関する問題でしょうかね。マニュアルによるとAR/VRはサポート対象外で、その他必要条件としてモーションベクター・デプステクスチャ・シェーダーモデル3が使用可能な環境でないといけないようです。SystemInfo.supportsMotionVectorstrueになっているでしょうか?
プラットフォームがPost Processing Stackによるモーションブラーをサポートしていない場合はあきらめるか、他の方法を探すかでしょうかね...

Motion Blurの設定項目ですが、まずShutter Angleについては解説文の中に「rotary shutter」という言葉が出てきています。多分これはRotary disc shutterを表していて、Shutter Angleは遮光円盤の開口部の角度ということではないでしょうか。映画用カメラで映像を撮影するとき、シャッターの開口部が広いとフィルム上の一つのコマが光を受ける時間が長くなり、その間に被写体が動くと同じ動きでも大きくぶれて写る...というのをシミュレートしたもののような気がします。

Sample Countはぼかし映像を作る際に元の映像から運動方向に沿って色をサンプリングする際の、サンプリング地点の数を表すのだろうと思います。点数が小さいとサンプリング回数が少ないので高速ですが、代償として長い距離をぼかそうとするとサンプリング点がまばらになってしまい、ぼけ部分の品質が悪化してしまうかと思います。もしちゃんとモーションブラーがかけられるようになりましたら、Shutter Angleを大きくした状態で素早くオブジェクトを動かすとSample Countによる違いが分かりやすいんじゃないでしょうか。

追記
2つのキューブを並べて比べてみました。
左はForce No Motion、右はPer Object Motionです。エフェクトはMotion Blurのみで、Bloomは切っています。

図

判断しにくい場合、適当なオブジェクトに下記のようなスクリプトを付けてフレームレートを落としてやると比べやすいかもしれません。

using UnityEngine;

public class FrameRateDropper : MonoBehaviour
{
    [SerializeField] private int targetFrameRate = 10;

    private void Start()
    {
        QualitySettings.vSyncCount = 0;
        Application.targetFrameRate = this.targetFrameRate;
    }
}

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/02/01 02:48

    ご回答ありがとうございます。
    ご指摘いただいた通り、実はモーションブラーがかかっていたことがわかりました。
    ありがとうございます、お騒がせしました。
    [Additional Settings]を、[Force No Motion]と[Per Object Motion]にそれぞれ設定した2つのキューブオブジェクトを並べて、かなり高速で動かしてみたら、モーションブラーがかかっているものとそうでないものとの差異がわかりました。
    思いのほか、けっこう高速にして、Shutter Angleの値も最大にしないと、わかりづらいものですね。
    もうちょっと遅いスピードでもブラーが顕著にかかればいいなと思ったのですが、フレームレートを落とすことはあまりしたくないので、モーションブラーとはこういうものと理解したいと思います。
    ご教示いただき、大変ありがとうございました。

    キャンセル

  • 2020/02/01 04:53

    Post Processing StackのMotion Blurが映画用カメラで起こるブレをシミュレートしたものだとすると、ぼけ量を最大にしたとしても1フレームで被写体が動いた量以上にぼけることはない...というのは理にかなっているかもしれませんね。
    ですが表現上の都合で過剰なブレを発生させたいというケースはありそうです(酔っぱらってフラフラの様子を表現したいとか、オバケのような超常的なキャラクターの演出とか?)。その場合はそういうことができるモーションブラーアセットを探すか、あるいは自前で作るかでしょうかね。

    ご自身で作るなら物理的リアリティにとらわれず自由なぼけ幅にできるでしょう。検索してみますと「モーションブラーの実装 - 下町のナポレオン」(http://hikita12312.hatenablog.com/entry/2017/12/21/212641 )のような作例もあり、ご参考になりそうです。
    もっとシンプルな手段としては、「イメージエフェクトドリル : カメラブラー - 渋谷ほととぎす通信」(https://www.shibuya24.info/entry/camerablur )のような過去の描画結果と重ね合わせてやる方法もいいんじゃないでしょうか。
    この方法単独ですと個々の映像はくっきりしているため、サイトの実演画像のように残像みたいな見え方になりそうです。ですがPost Processing StackのMotion Blurと組み合わせれば、それぞれの映像をブレさせてもっとなめらかにできるかもしれません(なお、Post Processing Stackと旧来のイメージエフェクトを複合させる場合はPost Process Layerの「Directly to Camera Target」をオフにしておく必要があるかと思います)。

    キャンセル

  • 2020/02/01 14:39

    ご回答ありがとうございます。
    ご提示いただいたサイトを拝見させていただきました。
    「モーションブラーの実装 - 下町のナポレオン」のサイトの方はリアルに表現できていていいなと思いました。参考にさせていただきます。
    ありがとうございました。

    キャンセル

0

Post Processing Stack パッケージの Motion Blur はなぜか異様にかかりが弱いです。
以下のようにちょっとコードを修正してやればはっきりとかかります。

More intense motion blur with Post Processing Stack v2?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る