blogプログラムやゲーム、旅、愛する家族について綴っていきます。プログラミングはじめに自分がダメージを受けた際や、近くで爆発などが起きた際にカメラを揺らす演出はよく使用されます。UE4ではカメラを揺らす機能が用意されていますが、実際に使用する際はいろいろと注意が必要そうです。基本的な使用方法はhistoliaさんのブログで紹介されているのでこちらも参考にしてみてください。扱う際の注意点などもありますので、もう少し掘り下げてみたいと思います。再生方法カメラを揺らす方法は以下の3つがあります。PlayerController::ClientPlayCameraShake()自分のカメラのみを揺らす場合に使用します。APlayerController::ClientPlayCameraShake_Implementation()の中でPlayerCameraManagerがあったらPlayerCameraManager->PlayCameraShake()を呼び出しています。PlayerCameraManager::PlayCameraShake()CameraManagerのリファレンスから呼び出すことができます。自分のカメラに使用すればカメラを揺らすことができます。UGameplayStatics::PlayWorldCameraShake()ワールド座標で震源の座標を指定して、その範囲内入ればカメラを揺らします。TPSでこの機能を試してみましたが、最初はカメラが振動してくれませんでした。いうかたまに振動する場合があるのでおかしいと思って調べてみたら、キャラクタの位置ではなく、カメラの位置で判定しているようです。FPSの場合はこれで問題ないと思いますが、TPSの場合はこれでは問題が出てきます。ソースを確認してみると、この関数内でAPlayerCameraManager::PlayWorldCameraShake()を呼び出しています。この中でWorldのPlayerControllerのイテレータで回してPlayerCameraManagerが設定されている場合は処理されます。その際にCalcRadialShakeScaleで揺れの強さを求めていますが、カメラの座標で揺れの強さを求めているようです。その後にPlayerController->ClientPlayCameraShake()を呼び出しています。マルチの場合もこの関数でクライアント側もちゃんと処理が行われるようです。TPSで使用したい場合はキャラクタからの位置で処理してあげることで同じようにカメラを揺らすことができます。その場合はC++やBPで別の関数を用意する必要が出てきます。停止方法APlayerController::ClientStopCameraShake()引数で再生したCameraShakeClassを指定することで停止することができます。bImmediatelyをtrueにすると即時停止、falseの場合は収束して停止します。PlayerCameraManager::StopCameraShake()PlayerCameraManager::PlayCameraShake()で再生した際の返却値のCameraShakeのインスタンスを引数で渡すことで指定したカメラの揺れを停止することができます。PlayerCameraManager::StopAllInstancesOfCameraShake()引数でclassを指定することで指定したカメラの揺れを停止することができます。PlayerCameraManager::StopAllCameraShakes()お構いなしに全てのカメラ揺れを停止することができます。その他UEの機能でカメラを揺らす場合、CameraShakeを継承したBPでパラメータを設定します。それを引数でClassとして渡しているため、パラメータを動的に変更することができません。いうか、変更できる方法があったら教えてもらいたいです。その為、プリセット的に複数のパラメータを用意して適宜選択して再生するといった運用になると思います。取り回しがしにくい感じがしますが、とりあえず揺らすだけであれば使用できると思います。今回はキャラクタに付けたカメラでの話でしたが、カットシーンなどでカメラが独立している場合などは未検証です。path」...先日、Node.jsをセットアップする為にbrewからnodebrewをインス...2017-11-22【UE4】GameMode、GameState、PlayerState、PlayerControll...GameModeとGameStateとPlayerStateの関連について再度確認して...2017-07-04【UE4】エディタ実行とStandalone実行で挙動が異なるUE4.16の環境。UE4.16.0の環境で確認している現象です。はてなブログProプログラムやゲーム、旅、愛する家族について綴っていきます。C++はてなブログをはじめよう!takezoh_1127さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。