Unreal Engineトップへ戻る

スタティックメッシュアクタを物理エンジンにゆだねる

  1. [コンテンツ>Props>Texturesフォルダ]にて[T_Carton_D]テクスチャから[M_Carton] マテリアルを作成し[コンテンツ>Props>Materials]へ移動
  2. [コンテンツ-><Props]フォルダの[SM_Box01]スタティックメッシュをダブルクリックして スタティックメッシュエディタを開き[M_Carton]マテリアルを適用します
  3. メニューバーから[コリジョン]>[ボックス単純化コリジョン]と操作しコリジョンを追加
  4. コンテンツブラウザより[コンテンツ>Maps>Test>Test_Event_Switch]をダブルクリック
  5. メニューバーより名前をつけて保存を選択、保存場所を[コンテンツ>Map>Test]と指定し 名前を[Test_Physics_Box]とする。

物理シュミレート

  1. コンテンツブラウザの[コンテンツ>Props]のフォルダにある、 [SM_Box1]スタティックメッシュアセットをマップにD&Dして配置、可動性をムーバブルに変更
  2. テスト用に箱を浮かせます。
  3. 箱のアクタを選択した状謡で詳細パネルの[Physics]>[Simulate Physics]にチェックを入れる。これで物理シミュレーションに切り替えが完了した。
  4. 詳細パネルで[Collision]>[Generate Overlap Event]をチェック。
  5. 実行

物理マテリアルで摩擦係数、反発係数、密度を調整する

  1. コンテンツフォルダの直下に[Materials]という名前のフォルダを作成。
  2. 上記のフォルダを選択し、新規追加ボタンをクリックして[物理(フィジックス)]>[物理マテリアル]を選択し 名前を[PNPhysMat_Cardboard]と命名。
  3. [SM_Box01]のスタティックメッシュエディタを開き[スタティックメッシュの設定]>[Simple Collision Physical Material]プロパティに[PNPhysMat_Cardboard]を割り当てる。
  4. コンテンツブラウザに戻り[PNPhysMat_Cardboard]をダブルクリックで選択する。
  5. [Friction]を0.3に、[Override Friction Combine Mode]にチェック、[Friction Combine Mode]をMinへ
  6. Restitution を0.1に
  7. Density を0.3に設定

アクタのプロパティで作りこむ

  1. レベルエディタに戻って、マップ上の[SM_Box01]メッシュを選択
  2. 詳細パネルにて、[Physics]>[Override Mass]にチェックを入れ、[Mass in Kg]を50.0へ

乗ると落ちる床

  1. 新しいレベルを[Default]で作成、[コンテンツ>Maps>Test]に[Test_Physics_FallFloor]という名前で保存。
  2. [コンテンツ>Architecture]フォルダの[SM_IronFloor]スタティックメッシュをダブルクリックしボックス単純化コリジョンを追加
  3. 足場の縁あたりに[SM_IronFloor]メッシュをx=550,y=0,z=20の位置に置き、可動性をムーバブルに変更
  4. 詳細パネルの[ブループリント/スクリプトを追加]ボタンを押し、[コンテンツ>Blueprints]のフォルダに[PNFallFloorActor]という名前でブループリンとを作成
  5. [PNFallFloorActor]をダブルクリックし、ブループリントエディタを開き、[ビューポート]タブをクリック
  6. [コンポーネント]パネルから[BoxCollision]コンポーネントを追加し[BoxTrigger]と命名
  7. BoxExtentをx=32,y=32,z=10としロケーションを0,0,10に設定
  8. コンポーネントパネルより[BoxTrigger]を右クリックし、[イベントを追加]>[OnComponetBeginOverlap]を選択しイベントグラフのこのイベントを追加
  9. [OnComponetBeginOverlap]の実行ピンを伸ばしアクションリストから[Utilities]>[Flow Control]>[Delay]を選択。このノードのDurationの値を1.0にする。
  10. コンポーネントパネルから[StaticMeshComponent]を[OnComponetBeginOverlap]の近くにD&D
  11. [StaticMeshComponent]出力ピンからワイヤを伸ばしアクションリストから[Physics]>[Set Simulate Physics]を設置し[Simulate]ピンにチェック。Delayノードの実行ピンからワイヤを伸ばし[Set Simulate Physics]とつなぐ
  12. コンパイル

ラグドールへの切り替え

  1. [コンテンツ>Maps>Test]の[Test_Player_Death]を選択。(Kボタンでアクタを殺せる)
  2. [コンテンツ>Blueprints>PNPlayerPawn]をダブルクリックし、ブループリントのイベントグラフをタブをクリック
  3. [コンポネント]パネルで[Mesh]を選択し、[詳細]パネルから[Collision]>[コリジョンプリセット]を[Ragdoll]に選択。
  4. [Any Damage]ノードのネットワーク終点にある[Set Life Span]ノードの位置へグラフをスクロール
  5. [コンポーネント]パネルから[Mesh]コンポネントを、[Set Life Span]ノードの近くにD&D
  6. [Mesh]ノードの出力ピンからワイヤを伸ばし[Physics]>[Set Simulate Physics]を配置し[Simulate]ピンをチェック
  7. [Set Life Span]ノードと[Set Simulate Physics]ノードの実行ピンをつなぐ。
  8. コンパイル
  9. 実行

スケルトンにソケットを埋め込む

  1. [コンテンツ>Characters>SK_Ninja_Skeleton]をダブルクリックしペルソナエディタを開く。
  2. 左部のスケルトンツリーから[head]を未クリックしサブメニューから[ソケットを追加]を選択し、名前を「CoinSpawnPoint」とする。
  3. 「CoinSpawnPoint」を選択したままビューポートの移動ツールに切り替えて、プレイヤーの頭の上でまで移動。

物理アクタを飛ばす

  1. [コンテンツ>Blueprints>PNPlayerPawn]をダブルクリックしブループリントエディタを開く
  2. [マイブループリント]パネルの[関数]>[DropCoin]をダブルクリックし[DropCoin]関数エディタを開く。
  3. [SET]出力ピンからワイヤを伸ばしアクションリストから[ゲーム>クラスからアクタをすぽーんします]を選択し、配置されたノードの[Class]入力ピンに[PNPickupCoinActor]を指定。
  4. [コンポーネント]パネルから[Mesh]コンポネントを[SpawnActor]ノード近くD&D
  5. [Mesh]参照ノードの出力ピンからワイヤーを伸ばし、アクションリストから[Utilities]>[Transform]>[GetSocektTransform]を選択配置されたノード[In Socket Name]入力ピンに[CoinSpaenPoint]と入力
  6. [Get Socket Transform]ノードの出力ピンを[Spawn Actor]ノードの[Spawn Transform]入力ピンにつなぐ
  7. [Spawn Actor]ノードの[Return Value]ピンからワイヤーを伸ばして、アクションリストから[Physics>Set Simulate Physics (static Mesh Component)]を選択し、設置されたノードの[Simulate]ピンにチェックを入れる。
  8. もう一度[Spawn Actor]ノードの[Return Value]ピンからワイヤーを伸ばし、[Physics > Add Impulse (static Mesh Component) ]を選択。
  9. [Impulse]ピンをx=200,y=0,z=200に設定し,[Vel Change]ピンにチェックをいれる。そして、このノードが[Set Simulate Physics]の次に実行されるようにピンを接続します。
  10. コンパイル

ランダムな力を加える

  1. [PNPlayerPawn]のブループリントに戻る。
  2. [AddImpulse]ノードの左下あたりの空きスペースを右クリックし、アクションリストから[math]>[Vector]>[Make Vector]を設置。入力ピンのx,zを200に設定。
  3. [Make Vector]ノードの出力からワイヤーを伸ばし、[Math]>[Vector]>[Rotate Vector Around Axis]を選択し,Axis入力ピンのzを1.0にする。
  4. [Rotate Vector Around Axis]の入力ピンからワイヤを左に伸ばし、アクションリストから [Math]>[Random]>[Random float in Range]を選択し、追加したノードのMaXピンの値を360にする。
  5. [Rotate Vector Around Axis]の[Return Value]出力ピンを[Add Impulse]ノードの[Impulse]入力ピンに接続。
  6. コンパイル

有り金がある限り

  1. [PNPlayerPawn]のブループリントで再開。
  2. [Event Graph]の空いているところで、カスタムイベント[DropAllCoin]を追加
  3. [DropAllCoin]の実行出力ピンから、ワイヤーを伸ばして[Utilities]>[FlowContorol]>[WhileLoop]を選択
  4. マイブループリントパネルから[変数]>[NumOfCoins]を、[Whileloop]ノードの左下D&Dし取得ノードを設置。
  5. [NumOfCoins]出力ピンからワイヤーを伸ばして、[Math]>[Integer]>[Integer>Integer]を選択し、条件式(NumOfCOinが0以上だったら)を設置し出力ピンを[Condition]入力ピンにつなぐ
  6. [WhileKoop]ノードの[Loop Body]ピンからワイヤーを伸ばして、[関数呼び出し]>[DropCoin]を選択。

シーケンスを使う

  1. [PNPlayerPawn]のブループリントで再開
  2. [マイブループリント]パネルで[Event Grapg]下にある[イベント Any Damage]をクリックし当該ノードの場所へジャンプ
  3. [DoOnce]ノードの出力ピンからワイヤーを伸ばして、[ユーティリティ]>[フロー制御]>[シーケンス]を選択。この操作により,「DoOnce」ノードと[Print String]ノードの間に[シーケンス]ノードが挿入される。
  4. [then 1]ピンからワイヤーを伸ばして、[関数呼出し]>[DropAllCoin]を選択。
  5. [コンパイル]

自動復帰型スイッチ

  1. [コンテンツ>Maps>Test]フォルダより、[Test_Physics_Box]を開く。
  2. [コンテンツ>Blueprints]フォルダの[PNSwitchActor]をダブルクリック。
  3. [BoxTrigger]コンポーネントの[OnComponentEndOverlap]イベントを[SwitchTimeline]ノードの左のほうへ追加し、実行出力ピンを[SwitchTimeline]の[Reverse]実行出力ピンとつなげる。
  4. テストプレイ
  5. 位置保持か自動復帰の設定が行えるように作る。[OnComponentEndOverlap]の実行出力ピンからワイヤーを伸ばして、[ユーティリティ]>[フロー制御]>[ブランチ]を選択し分岐を挟む。
  6. [ブランチ]の[Collision]ピンのチェックをオフにする。
  7. [ブランチ]ノードの[Condition]入力ピンからワイヤーを伸ばして、アクションリストから変数へ昇格を選択。
  8. [New Var]ノードを選択し、[詳細]パネルから名前を[IsMomentary]に変更し、[編集可能]にチェック、カテゴリを[Switch Setting]と入力。
  9. コンパイル
  10. [IsMomentary]変数のデフォルト値が0であることを確認。

ステージ1に配置する

  1. [コンテンツ>Maps>Stage01]フォルダの[PNStage01_top]を選択
  2. [レベル]パネルで[PNStage01_GB]サブレベルのロックを解除し現在のレベルに設定
  3. [コンテンツ>Props]フォルダの[SM_Box01]をx=360,y=-100,z=10二配置。
  4. [詳細]パネルで[Physics]>[Simulate Physics]と[Override Mass]にチェック、[Mass in Kg]を30.0に設定

床スイッチに外枠を取り付ける

  1. [コンテンツ>Props]フォルダの[SM_Shape_Cylinder_Base]をダブルクリック。
  2. メニューバーで[コリジョン]>[オートコンベックスコリジョン]を選択し、[凸型分解]パネルを適用。
  3. レベルエディタから[コンテンツ]>[Blueprints]>[PNSwitchActor]をダブルクリック
  4. [コンポーネント]パネルで[Mesh]コンポーネントを選択し[コンポーネントを追加]ボタンを押し、[StaticMesh]コンポーネントを追加し、[BaseMesh]と名づける。
  5. [詳細]パネルで[可動性]を[スタティック]に変更し、[Static Mesh]>[Static Mesh]プロパティに[SM_Shape_Cylinder_Base]を割り当てる。
  6. コンパイル

Unreal Engineトップへ戻る


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-06-23 (木) 18:46:16 (844d)