【UE5】Skeletal MeshにSocketを追加してアイテムを持たせるとアイテムのサイズがおかしくなる場合

Pocket
LinkedIn にシェア
LINEで送る
reddit にシェア
このエントリーをはてなブックマークに追加

日本庭園運営シミュレーションゲーム制作中です。
売店はこの前作ったのですが、せっかくだからちゃんと食べ物を持たせてあげたいと思って実装したのですが、なんかすっごいでっかくなっちゃうのです。想定の15倍くらい大きい。

備忘録として、以下がチェック項目になります。

チェックリスト

私がもともとやっちゃっていたことは以下です。

  • SkeletalMeshのImport Uniform Scaleをいじくっている。0.4にしています。
  • メッシュやアーマチュアはBlenderで作っていますが、Apply Scaleはしてなかった。

1. Animation Sequenceのスケール

実はこっちにもImport Uniform Scaleがあるじゃないですか。
SkeletalMeshと同じにしておくことが望ましそうです。
0.4にする。

全部辻褄あってるはずなのに、まだおかしくなります。
私みたいにモデリングの時点からScaleがガチャガチャだとエンジンの内部計算でどうしてもこうなっちゃうみたいです。

2. Blueprintの設定を変える

ActorをSocketに持たせるためのノード[Attach Actor To Component]のインプットピン[Scale Rule]をKeep Worldに変えます。
これでアイテムActor自体のScaleで表示されます。

解決しました。よかった。

Socketの設定手順

忘れそうなのでメモしておく。

1. Skeletal Mesh

Skeletal Meshを開いて、スケルトンツリーを開く。持たせたいパーツ(例:右手)を選択して右クリック → ソケットを追加 を選択。名前を Hand_R_Socket に変えておきました

2. アイテム

アイテムはBlueprint Class Actorで作っておきます。
名前を BP_Food_Beer とかにします。
BP_Food_Beer を開きStatic Mesh Componentを追加して、ビールのStatic Mesh SM_Beer を選択しておきます。

3. Blueprint

私の場合はCharacterのBlueprintで色々やってるので、Characterを開きます。

  1. [Spawn Actor of Class]ノードを配置して[class]はBP_Food_Beerを選択。[Spawn Transform]は[Make Transform]を繋いでおけばOK。
  2. [Attach Actor To Component]のインプットピン
    • [Scale Rule]をKeep Worldに変えます。
    • [Target]は[Spawn Actor of Class]のoutput pin[Return Value]
    • [Parent]はCharacterのMesh (Static Mesh Component)です。
    • [Socket Name]は手順1で命名したソケット名です。そうです、いろんなキャラクターがいるならば名前は共通にしておく必要がありますので、あえて Hand_R_Socket に変更しています。

管理人が読んだおすすめの建築本

    

コメントを残す