x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

[Closed] LOD Bone Reduction の使い方について

いつもお世話になっております。

SkeletalMeshの LOD Bone Reduction 機能について質問させて下さい。

EngineContentのTutorialTPPモデルを使用して、以下の手順でこの機能を試用しています。

[手順A]

  • スケルトンツリー上でボーンoを選択して右クリック

  • LOD Bone Reduction

  • Remove Selected...

このとき、FMeshBoneReduction::ReduceBoneCounts内で、

以下のそれぞれの数量が、SkeletalMesh::RefSkeleton のボーン数と比べて減少していることが確認できます。

 FSkeletalMeshLODModel::ActiveBoneIndices
 FSkeletalMeshLODModel::RequiredBones

(FSkeletalMeshLODModel* NewModelの値を、460行目で確認)

続いて、以下の手順を行います。

[手順B]

  • スケルトンツリーから別のボーンp を選択して同様にリダクションを行い

  • FMeshBoneReduction::ReduceBoneCounts で ボーン数を確認します

すると、 ActiveBoneIndices は、手順A後の値から更に減少する一方で、 RequiredBones は、大本のボーン数(SkeletalMesh::RefSkeleton)からボーンpの分を引いた値になります。

この機能を使う狙いとして、

UAnimInstance::ParallelEvaluateAnimation などでのCPU処理負荷を減らす、というものがあると思うのですが、

ここでのボーン数は FMeshBoneReduction::RequiredBonesをもとに決まるようなので、

手順A, 手順Bを順に実行して ボーンo, p への処理がスキップされるつもりが、そうなっていない、という状況です

ボーンを選択するときに、複数選択で両方のボーンを選択すれば、目的の成果は得られるのですが、

これは何か理由があってこういう挙動になっているのでしょうか?

Product Version: Not Selected
Tags:
more ▼

asked Jul 11 '18 at 03:22 PM in Japanese

avatar image

Answers.Archive STAFF
1.5k 143 266 597

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

The question has been closed Jul 11 '18 at 04:01 PM by Nori Shinoyama for the following reason:

The question is answered, right answer was accepted


1 answer: sort voted first

ご指摘ありがとうございます!

今まで全く気づかなかったのですが、確かにそのような挙動となっており、Anim Evaluationで動作するBone数が最後のLOD Bone Reductionによって上書きされていました。

修正されるばき内容かと思いますので、チケットを作成いたしました。恐縮ですが、なにか進展があるまでお待ち下さい。

UE-60491: LOD Bone Reduction overwrites RequiredBones incorrectly

ただ、ご指摘の関ReduceBoneCounts内部にて以下のようなコメントがあるため何かしら理由があるのかもしれません。

 // Always restore all previously removed bones if not contained by BonesToRemove
     SkeletalMesh->CalculateRequiredBones(SkeletalMesh->GetImportedModel()->LODModels[DesiredLOD], SkeletalMesh->RefSkeleton, &BonesToRemove);

しかし、ActiveBoneIndicesとの乖離はよろしくないかと思うので上記チケットにて対応を考えていきたいと思います。

また、すでにご存知でしたら申し訳ございませんが、RequiredBones及びActiveBoneIndicesは上記の表示でも確認できますので、ご参考にしていただければ幸いです。 alt text

more ▼

answered Jul 11 '18 at 03:22 PM

avatar image

Answers.Archive STAFF
1.5k 143 266 597

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question