空へ打ち上げ
空高く打ち上げられたいですか?私もそうは思いません。でも面白いので、やってみましょう!このチュートリアルでは、キャラクターが小道具に当たったときにラグドール物理を有効にする方法を学びます。
キャラクターをラグドール化する。
小道具を 投げる
新しいブループリントを作成しましょう。ここではトリガーとして、再び「キーボードボタンを押したとき(On Keystroke Pressed)」ノードを使用しますが、好きなイベントノードを使用できます。動作確認のしやすさから、ホットキーをスペースキーに設定します。次に、キャラクターにアイテムを投げる(Throw Prop At Character) ノードをその隣に追加し、以下のようにノードを接続します。キャラクターオプションを自分のキャラクターに、アイテムソースeオプションをキャラクターに投げたい小道具モデルに設定します(私は「アシカ」を選びます)。
このノードは巨大です。キャラクターにアイテムを投げる ノードには多くのオプションがありますので、少し詳しく見ていきましょう。
-
衝突パーティクルソース と スケール は、小道具がキャラクターに当たった際に再生されるパーティクル効果を決定します。ここでは「Basic Impact 02」を選択しますが、ギャラリーアイコンをクリックしてプレビューギャラリーを開き、利用可能なパーティクルをすべて確認することもできます。
-
発射音ソース、衝突音ソース、サウンドボリュームは、その名の通りです。
-
出発点のドロップダウンメニューでは、小道具が投げられる場所を選択できます。以下のオプションから選択できます。
- 視界境界ランダム座標:画面上の任意の位置、つまりカメラから小道具が投げられるようシミュレートします
- スクリーンエッジ:画面の端のどこか、すなわちカメラの外から小道具が投げ入れられるようシミュレートします
- キャラクターの頭上:キャラクターの頭の真上から落下します
- シーンオブジェクト:シーン上のオブジェクトを出発点とします。キャラクター、カメラ、指向性ライト、環境などを指定します
- ワールド位置:シーン内のワールド座標から出発点を指定します
デフォルトの「視界境界ランダム座標」が最適です。
-
ドロップダウンメニューの 到達点 では、小道具がどこに投げられるかを選択できます。以下のオプションから選択できます。
- ボディランダム位置:キャラクターの身体のどこかランダムな場所に投げられます
- 人体骨格:キャラクターの身体の標準的なボーン、例えば頭部、左手などを指定します
- 変換パス:キャラクターの子トランスフォーム、例えば、キャラクターの尻尾に投げたい場合は、ここで尻尾のトランスフォームを選択できます
私はこれを「人体骨格」に変更し、「ヘッド」のボーンを選択します。違和感のないアクションになると思います。
-
スケール、品質(質量)、スポード、重力は、小道具の物理的特性であり、キャラクターが小道具にどのように反応す るかを決定します。お好みに応じて調整できます。私はスケールを 2 に、速度を 10 に変更します。
-
初期トルクと初期回転をランダム化は、小道具が発射されたときの回転度合いを決定します。
-
生存時間 は、小道具が消える前にシーン内に留まる時間を決定します。
スペースキーを押すと、小道具がキャラクターの頭めがけて投げられ、キャラクターがそれに反応します。
ラグドールの起動
しかし、私たちはキャラクターをラグドール化したいのであって、ただキャラクターをひるませたいわけではありません。キャラクターラグドールをアクティブにする(Activate Character Ragdoll)ノードを追加し、キャラクターにアイテムを投げるノードのオンコライドフロー出力を、キャラクターラグドールをアクティブにするノードの入口フロー入力に接続します。次に、キャラクターオプションで対象キャラクターを設定し、突出力を(0、300、-600)に設定します。
「出口」フロー出力からではなく「オンコライド」フロー出力から接続する点に注意してください。これは、小道具がキャラクターと衝突したときにラグドールを起動させたいからです。「出口」から接続すると、小道具が投げられた直後にラグドールが起動してしまい、望む動作になりません。
もう一度スペースキーを押してみましょう。小道具が投げられますが、今度はキャラクターに当たったときに、キャラクターが古典的なラグドール方式で打ち上げられます。スペースキーを複数回押して、キャラクターに小道具を再び投げることもできます。そのたびに、より強い力で当たります。やったぜ!
キャラクターに液体を発射する、ローカル/Web画像からステッカーを生成するなどの 他のインタラクションノードも同様に設定できます。いろいろ試して、どんなことができるか見てみましょう!
ラグドールのリセット
キャラクターが5秒後にリセットされることに気付くでしょう。これはキャラクターラグドールをアクティブにするノードの待機時間をリセットオプションを調整することで変更できます。また、自動リセットをいいえに設定し、リセットフロー入力を手動でトリガーすることで、自動リセットを無効にすることもできます。例えば、以下のブループリントでは、Rキーを押したときにのみキャラクターがリセットされます。