Download - UE4 の『Bone の回転バグ』を直してプルリク投げた話
![Page 1: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/1.jpg)
UE4 の『 Bone の回転バグ』を直してプルリク投げた話
らりほま2016/10/21 第 6 回 UE4 よちよち勉強会
![Page 2: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/2.jpg)
2
Boneの回転バグとは?
![Page 3: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/3.jpg)
3https://issues.unrealengine.com/issue/UE-15388
![Page 4: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/4.jpg)
4
バグの概要
● FBX を
● Skeletal Mesh として Import する際に
● Scale を変更すると
● Persona で Bone を回したときに● 回転量がおかしくなる
![Page 5: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/5.jpg)
5
バグの概要
● FBX を
![Page 6: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/6.jpg)
6
バグの概要
● Skeletal Mesh として Import する際に
![Page 7: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/7.jpg)
7
バグの概要
● Scale を変更すると
![Page 8: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/8.jpg)
8
バグの概要
● Persona で Bone を回したときに
![Page 9: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/9.jpg)
9
バグの概要
● 回転量がおかしくなる
![Page 10: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/10.jpg)
10
バグの概要
● 回転量がおかしくなる
![Page 11: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/11.jpg)
11
バグの概要
● Scale を増加させるほど回転量が減少する● ぶっちゃけそんなに困るバグではない
– Blueprint での回転処理は正常– 困るのはリターゲット基底ポーズ調整時のみ
● でも気になる– UE4.7 のときには既に存在
![Page 12: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/12.jpg)
12
直そう!
![Page 13: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/13.jpg)
13
エンジンのソースコードのどこで回転処理を行っている?
![Page 14: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/14.jpg)
14
それっぽいところにブレークポイントを仕掛けて探そう!
![Page 15: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/15.jpg)
15
エンジンデバッグの注意点
● ソリューション構成をDebug Editor にしてビルドする
![Page 16: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/16.jpg)
16
エンジンデバッグの注意点
● ブレークポイントはプロジェクトのソリューションに置く( エンジンのソリューションではない )
![Page 17: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/17.jpg)
17
エンジンデバッグの注意点
エンジン
プロジェクト ( ブレークポイントはこっちに置く )
( ここでエンジンの起動が終了 )
![Page 18: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/18.jpg)
18
エンジンデバッグの注意点
● 参考: alwei さんのブログ記事– UE4 VisualStudio を使ってエンジンをデバッグする -
Let's Enjoy Unreal Enginehttp://unrealengine.hatenablog.com/entry/2014/08/22/215802
![Page 19: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/19.jpg)
19
回転処理を行うコードを見つけた!
![Page 20: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/20.jpg)
20
問題の回転処理
● Engine/Source/Editor/Persona/Private/EditModes/SkeletonSelectionEditMode.cpp
![Page 21: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/21.jpg)
21
Scaleに応じて回転量が変化するというバグなので…
![Page 22: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/22.jpg)
22
Scaleを考慮した計算になってしまっている部分を探そう!
![Page 23: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/23.jpg)
23
問題の回転処理
● Engine/Source/Editor/Persona/Private/EditModes/SkeletonSelectionEditMode.cpp
![Page 24: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/24.jpg)
24
問題の回転処理
● Engine\Source\Runtime\Core\Public\Math\TransformVectorized.h
![Page 25: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/25.jpg)
25
Scaleを考慮しない計算にするには…
![Page 26: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/26.jpg)
26
問題の回転処理
● Engine\Source\Runtime\Core\Public\Math\TransformVectorized.h– TransformVector 定義の下に
TransformVectorNoScale( Scale を考慮しない版 ) の定義が存在
![Page 27: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/27.jpg)
27
TransformVector↓
TransformVectorNoScale
![Page 28: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/28.jpg)
28
たった 7 文字 (“Noscale”)追加するだけで (たぶん) 解決!
ボキッ
![Page 29: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/29.jpg)
29
pull request の流れ
● fork→clone→pull request 用 blanch 作成→ ( 修正 )→add→commit→push→pull request
![Page 30: UE4 の『Bone の回転バグ』を直してプルリク投げた話](https://reader034.vdocuments.site/reader034/viewer/2022042509/587790a21a28ab0f778b50f5/html5/thumbnails/30.jpg)
30
取り込まれるといいな…ここまで書いておいて reject されたら恥ずかしい (*ノ▽ノ)