teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

41

書式の改善

2022/08/12 13:52

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,10 @@
10
10
  になるそう
11
11
  ```
12
12
 
13
+ http://rudora7.blog81.fc2.com/blog-entry-292.html
14
+ このサイトの参考画像が役にたちそうです。
15
+
16
+
13
17
  offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なので
14
18
 
15
19
  スキニング行列が求められたとして、

40

書式の改善

2022/07/26 14:37

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -10,16 +10,12 @@
10
10
  になるそう
11
11
  ```
12
12
 
13
- offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なのでworldの行列3*1?の行列と
13
+ offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なので
14
- 計算上適合しません。仮にwいれて4*1しても駄目ですよね。
15
14
 
15
+ スキニング行列が求められたとして、
16
16
 
17
17
 
18
18
 
19
- で仮にスキニング行列が求められたとして、
20
-
21
-
22
-
23
19
  > 例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
24
20
 
25
21
  > 頂点座標
@@ -27,11 +23,14 @@
27
23
 
28
24
  > 変換後の法線ベクトル
29
25
  =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
30
- とありよくわかりません。
26
+ とありこれを、
31
27
 
28
+ glVertex();
29
+ glNormal();にいれればいいのではないかと予測がたちました。
32
30
 
33
31
  (引用 3D格闘ゲームプログラミング)<フレーム付きモデルの表示>
34
32
 
35
33
  初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
36
-
34
+ glVertex();
35
+ glNormal()の考え方はどうでしょうか。
37
36
  すいません。お願いします。

39

書式の改善

2022/06/13 08:25

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,8 @@
1
1
  追記しました。 Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- 分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列は
3
+ 分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列(1部分)
4
4
  offsetC*TransC*TransD*world だそうです。
5
5
 
6
- offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なのでworldの行列3*1?の行列と
7
- 計算上適合しません。仮にwいれて4*1しても駄目ですよね。
8
-
9
6
  ```opengl
10
7
  offsetA*TransA*TransB*TransC*TransD*world
11
8
  offsetB*TransB*TransC*TransD*world
@@ -13,7 +10,12 @@
13
10
  になるそう
14
11
  ```
15
12
 
13
+ offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なのでworldの行列3*1?の行列と
14
+ 計算上適合しません。仮にwいれて4*1しても駄目ですよね。
16
15
 
16
+
17
+
18
+
17
19
  で仮にスキニング行列が求められたとして、
18
20
 
19
21
 

38

書式の改善

2022/06/13 08:21

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -7,45 +7,10 @@
7
7
  計算上適合しません。仮にwいれて4*1しても駄目ですよね。
8
8
 
9
9
  ```opengl
10
- float Frame_Scene_Root[16]={
11
- 1.000000,0.000000,0.000000,0.000000,
12
- 0.000000,1.000000,0.000000,0.000000,
13
- 0.000000,0.000000,1.000000,0.000000,
14
- 0.000000,0.000000,0.000000,1.000000};
15
-
16
-
17
- float Frame_body[16]={
18
- 1.278853,0.000000,-0.000000,0.000000,
19
- 0.000000,0.000000,1.123165,0.000000,
20
- 0.000000,-1.470235,0.000000,0.000000,
21
- 0.135977,2.027985,133.967667,1.000000
22
- };
23
-
24
-
25
- float Frame[16]={
26
- 1.000000,-0.000000,-0.000000,0.000000,
27
- -0.000000,1.000000,0.000000,0.000000,
28
- -0.000000,0.000000,1.000000,0.000000,
29
- -0.142114,0.000023,-49.556850,1.000000
30
-
31
- };
32
-
33
-
34
-
35
- float Bip01_R_UpperArm_FrameTransformMatrix
10
+ offsetA*TransA*TransB*TransC*TransD*world
11
+ offsetB*TransB*TransC*TransD*world
12
+ offsetC*TransC*TransD*world
36
- [16]=
13
+ になるそう
37
- { 0.532891,0.645602,0.547015,0.000000,
38
- -0.380503,0.760229,-0.526564,0.000000,
39
- -0.755807,0.072461,0.650772,0.000000,
40
- 31.000195,-0.000004,0.000004,1.000000
41
- };
42
-
43
- float Bip01_R_UpperArm_FrameTransformMatrix_offet[16]=
44
- {-0.941743,-0.646748,0.574719,0.000000,
45
- -0.283133,-0.461979,-0.983825,0.000000,
46
- 0.923060,-1.114919,0.257891,0.000000,
47
- -65.499557,30.497688,12.852692,1.000000
48
- };
49
14
  ```
50
15
 
51
16
 

37

書式の改善

2022/06/13 00:58

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,70 +1,70 @@
1
- 追記しました。 Frameの要素を使いモデルを変形していきたいです。
2
-
3
- 分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列は
4
- offsetC*TransC*TransD*world だそうです。
5
-
6
- offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なのでworldの行列3*1?の行列と
7
- 計算上適合しません。仮にwいれて4*1しても駄目ですよね。
8
-
9
- ```opengl
10
- float Frame_Scene_Root[16]={
11
- 1.000000,0.000000,0.000000,0.000000,
12
- 0.000000,1.000000,0.000000,0.000000,
13
- 0.000000,0.000000,1.000000,0.000000,
14
- 0.000000,0.000000,0.000000,1.000000}; ........TransD?
15
-
16
-
17
- float Frame_body[16]={
18
- 1.278853,0.000000,-0.000000,0.000000,
19
- 0.000000,0.000000,1.123165,0.000000,
20
- 0.000000,-1.470235,0.000000,0.000000,
21
- 0.135977,2.027985,133.967667,1.000000 ........TransD?
22
- };
23
-
24
-
25
- float Frame[16]={
26
- 1.000000,-0.000000,-0.000000,0.000000,
27
- -0.000000,1.000000,0.000000,0.000000,
28
- -0.000000,0.000000,1.000000,0.000000,
29
- -0.142114,0.000023,-49.556850,1.000000.........TransD?
30
-
31
- };
32
-
33
-
34
-
35
- float Bip01_R_UpperArm_FrameTransformMatrix
36
- [16]=
37
- { 0.532891,0.645602,0.547015,0.000000,
38
- -0.380503,0.760229,-0.526564,0.000000,
39
- -0.755807,0.072461,0.650772,0.000000,
40
- 31.000195,-0.000004,0.000004,1.000000 .....................TransC
41
- };
42
-
43
- float Bip01_R_UpperArm_FrameTransformMatrix_offet[16]=
44
- {-0.941743,-0.646748,0.574719,0.000000,
45
- -0.283133,-0.461979,-0.983825,0.000000,
46
- 0.923060,-1.114919,0.257891,0.000000,
47
- -65.499557,30.497688,12.852692,1.000000.......................offsetC
48
- };
49
- ```
50
- (横ではなく、縦列に数値入る気がするのだがしょうがない。)
51
-
52
- で仮にスキニング行列が求められたとして、
53
-
54
-
55
-
56
- > 例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
57
-
58
- > 頂点座標
59
- =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
60
-
61
- > 変換後の法線ベクトル
62
- =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
63
- とありよくわかりません。
64
-
65
-
66
- (引用 3D格闘ゲームプログラミング)<フレーム付きモデルの表示>
67
-
68
- 初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
69
-
1
+ 追記しました。 Frameの要素を使いモデルを変形していきたいです。
2
+
3
+ 分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列は
4
+ offsetC*TransC*TransD*world だそうです。
5
+
6
+ offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なのでworldの行列3*1?の行列と
7
+ 計算上適合しません。仮にwいれて4*1しても駄目ですよね。
8
+
9
+ ```opengl
10
+ float Frame_Scene_Root[16]={
11
+ 1.000000,0.000000,0.000000,0.000000,
12
+ 0.000000,1.000000,0.000000,0.000000,
13
+ 0.000000,0.000000,1.000000,0.000000,
14
+ 0.000000,0.000000,0.000000,1.000000};
15
+
16
+
17
+ float Frame_body[16]={
18
+ 1.278853,0.000000,-0.000000,0.000000,
19
+ 0.000000,0.000000,1.123165,0.000000,
20
+ 0.000000,-1.470235,0.000000,0.000000,
21
+ 0.135977,2.027985,133.967667,1.000000
22
+ };
23
+
24
+
25
+ float Frame[16]={
26
+ 1.000000,-0.000000,-0.000000,0.000000,
27
+ -0.000000,1.000000,0.000000,0.000000,
28
+ -0.000000,0.000000,1.000000,0.000000,
29
+ -0.142114,0.000023,-49.556850,1.000000
30
+
31
+ };
32
+
33
+
34
+
35
+ float Bip01_R_UpperArm_FrameTransformMatrix
36
+ [16]=
37
+ { 0.532891,0.645602,0.547015,0.000000,
38
+ -0.380503,0.760229,-0.526564,0.000000,
39
+ -0.755807,0.072461,0.650772,0.000000,
40
+ 31.000195,-0.000004,0.000004,1.000000
41
+ };
42
+
43
+ float Bip01_R_UpperArm_FrameTransformMatrix_offet[16]=
44
+ {-0.941743,-0.646748,0.574719,0.000000,
45
+ -0.283133,-0.461979,-0.983825,0.000000,
46
+ 0.923060,-1.114919,0.257891,0.000000,
47
+ -65.499557,30.497688,12.852692,1.000000
48
+ };
49
+ ```
50
+
51
+
52
+ で仮にスキニング行列が求められたとして、
53
+
54
+
55
+
56
+ > 例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
57
+
58
+ > 頂点座標
59
+ =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
60
+
61
+ > 変換後の法線ベクトル
62
+ =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
63
+ とありよくわかりません。
64
+
65
+
66
+ (引用 3D格闘ゲームプログラミング)<フレーム付きモデルの表示>
67
+
68
+ 初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
69
+
70
70
  すいません。お願いします。

36

文の変更

2021/01/20 06:10

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,5 @@
1
1
  追記しました。 Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- world座標系は今、モデル全体の移動・回転・拡大縮小とするらしいので、仮にqx,qy,qzとします。
4
- verte3f()にいれられるのは、qx,qy,qzの3つまでなので。
5
- (あとでまた調べるので仮に、qx,qy,qzとします。)
6
-
7
3
  分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列は
8
4
  offsetC*TransC*TransD*world だそうです。
9
5
 

35

文の改善

2021/01/20 06:10

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -71,4 +71,4 @@
71
71
 
72
72
  初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
73
73
 
74
- わかるのならわかる範囲でお願いします。
74
+ すいません。お願いします。

34

文の追加

2020/09/18 18:40

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -71,4 +71,4 @@
71
71
 
72
72
  初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
73
73
 
74
- わかるのならお願いします。
74
+ わかるのならわかる範囲でお願いします。

33

文の追加

2020/09/18 18:08

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- Frameの要素を使いモデルを変形していきたいです。
1
+ 追記しました。 Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
3
  world座標系は今、モデル全体の移動・回転・拡大縮小とするらしいので、仮にqx,qy,qzとします。
4
4
  verte3f()にいれられるのは、qx,qy,qzの3つまでなので。

32

文の変更

2020/09/18 18:06

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  offsetC*TransC*TransD*world だそうです。
9
9
 
10
10
  offsetCは4*4の行列 TransCは4*4の行列 TransDは4*4の行列なのでworldの行列3*1?の行列と
11
- 計算上適合しません。
11
+ 計算上適合しません。仮にwいれて4*1しても駄目ですよね。
12
12
 
13
13
  ```opengl
14
14
  float Frame_Scene_Root[16]={

31

文の変更

2020/09/18 17:58

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,72 +1,74 @@
1
1
  Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- しかし何をればか分かりせん
3
+ world座標系は今モデル全体の移動・回転・拡大縮小とるらしいので、仮にqx,qy,qzとし
4
- どうった手順で計算すばいい手順が知りたい
4
+ verte3f()にいれられるqx,qy,qzの3つまなので
5
+ (あとでまた調べるので仮に、qx,qy,qzとします。)
5
6
 
7
+ 分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列は
8
+ offsetC*TransC*TransD*world だそうです。
6
9
 
7
- world座標系今、vertexに入れてる値ななと思います。根拠なし。
10
+ offsetC4*4行列 TransCは4*4の行列 TransDは4*4の行列のでworldの行列3*1?の行列
11
+ 計算上適合しません。
8
12
 
9
-
10
- 分からないこと➀...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
11
-
12
- 例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
13
-
14
- 頂点座標
15
- =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
16
- > 引用テキスト
17
-
18
- 変換後の法線ベクトル
19
- =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
20
-
21
- 書いてるなかでweightの数値に関する知識がないので調べなければいけないことに気がつきました。
22
- weightはweightだし
23
- どう考えてもglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
24
-
25
-
26
- 以下はソースコードです。
27
-
28
- ```c
13
+ ```opengl
29
- //ここで#includeしています。
30
-
31
- //ここはファイルから抜き出した
32
14
  float Frame_Scene_Root[16]={
33
15
  1.000000,0.000000,0.000000,0.000000,
34
16
  0.000000,1.000000,0.000000,0.000000,
35
17
  0.000000,0.000000,1.000000,0.000000,
36
- 0.000000,0.000000,0.000000,1.000000};
18
+ 0.000000,0.000000,0.000000,1.000000}; ........TransD?
37
19
 
38
20
 
39
- float Frame_body[16]={
21
+ float Frame_body[16]={
40
-
41
22
  1.278853,0.000000,-0.000000,0.000000,
42
23
  0.000000,0.000000,1.123165,0.000000,
43
24
  0.000000,-1.470235,0.000000,0.000000,
44
- 0.135977,2.027985,133.967667,1.000000
25
+ 0.135977,2.027985,133.967667,1.000000 ........TransD?
45
26
  };
46
27
 
47
- float Frame[16]={
48
28
 
29
+ float Frame[16]={
49
30
  1.000000,-0.000000,-0.000000,0.000000,
50
31
  -0.000000,1.000000,0.000000,0.000000,
51
32
  -0.000000,0.000000,1.000000,0.000000,
52
- -0.142114,0.000023,-49.556850,1.000000};
33
+ -0.142114,0.000023,-49.556850,1.000000.........TransD?
34
+
35
+ };
53
36
 
54
37
 
38
+
55
- float Frame_Bip01_R_UpperArm_TransformMatrix[16]={//upper
39
+ float Bip01_R_UpperArm_FrameTransformMatrix
40
+ [16]=
56
- 0.532891,0.645602,0.547015,0.000000,
41
+ { 0.532891,0.645602,0.547015,0.000000,
57
- -0.380503,0.760229,-0.526564,0.000000,
42
+ -0.380503,0.760229,-0.526564,0.000000,
58
- -0.755807,0.072461,0.650772,0.000000,
43
+ -0.755807,0.072461,0.650772,0.000000,
59
- 31.000195,-0.000004,0.000004,1.000000};
44
+ 31.000195,-0.000004,0.000004,1.000000 .....................TransC
60
-
45
+ };
46
+
47
+ float Bip01_R_UpperArm_FrameTransformMatrix_offet[16]=
48
+ {-0.941743,-0.646748,0.574719,0.000000,
49
+ -0.283133,-0.461979,-0.983825,0.000000,
50
+ 0.923060,-1.114919,0.257891,0.000000,
51
+ -65.499557,30.497688,12.852692,1.000000.......................offsetC
52
+ };
61
53
  ```
62
- 横ではなく、縦列に数値入る気がするのだがしょうがない。
54
+ 横ではなく、縦列に数値入る気がするのだがしょうがない。
63
- 後、ソースコードが長すぎるから、途中をみないで計算するのは難しい。
64
55
 
65
- やったこと、試してみたこと....数値を適当にかけてみた。
66
- 右上腕をあげようとした。
56
+ で仮にスキニング行列が求められたとして、
67
57
 
68
- 画像を消した。うまくいかなかった。
69
58
 
59
+
60
+ > 例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
61
+
62
+ > 頂点座標
63
+ =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
64
+
70
- とか何かしらポーズになる気がする
65
+ > 変換後法線ベクトル
66
+ =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
67
+ とありよくわかりません。
68
+
69
+
71
- (引用 3D格闘ゲームプログラミング)
70
+ (引用 3D格闘ゲームプログラミング)<フレーム付きモデルの表示>
71
+
72
+ 初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
73
+
72
- ロジックうんぬん分からないのでわかる人がいましたらお願いします。
74
+ わかるのならお願いします。

30

文の変更

2020/09/18 17:38

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -65,7 +65,8 @@
65
65
  やったこと、試してみたこと....数値を適当にかけてみた。
66
66
  右上腕をあげようとした。
67
67
 
68
- 画像を消した。あとで追記する可能性も。しないかもいれいけど
68
+ 画像を消した。うまくいかなかった
69
+
69
70
  とか何かしらのポーズになる気がする
70
71
  (引用 3D格闘ゲームプログラミング)
71
72
  ロジックうんぬん分からないのでわかる人がいましたらお願いします。

29

文の変更

2020/09/18 15:14

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -65,9 +65,7 @@
65
65
  やったこと、試してみたこと....数値を適当にかけてみた。
66
66
  右上腕をあげようとした。
67
67
 
68
-
69
- ![イメージ説明](042c7e453d0a1de3312a79f2375e459b.jpeg)が
70
- ![イメージ説明](1ae0027435009ce26c8cd97b8299cff8.jpeg)
68
+ 画像を消した。あとで追記する可能性も。しないかもいれないけど。
71
69
  とか何かしらのポーズになる気がする
72
70
  (引用 3D格闘ゲームプログラミング)
73
71
  ロジックうんぬん分からないのでわかる人がいましたらお願いします。

28

文の変更

2020/09/18 14:11

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -58,7 +58,7 @@
58
58
  -0.755807,0.072461,0.650772,0.000000,
59
59
  31.000195,-0.000004,0.000004,1.000000};
60
60
 
61
-
61
+ ```
62
62
  横ではなく、縦列に数値入る気がするのだがしょうがない。
63
63
  後、ソースコードが長すぎるから、途中をみないで計算するのは難しい。
64
64
 

27

文の改善

2020/09/15 12:43

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -62,9 +62,10 @@
62
62
  横ではなく、縦列に数値入る気がするのだがしょうがない。
63
63
  後、ソースコードが長すぎるから、途中をみないで計算するのは難しい。
64
64
 
65
+ やったこと、試してみたこと....数値を適当にかけてみた。
66
+ 右上腕をあげようとした。
65
67
 
66
68
 
67
-
68
69
  ![イメージ説明](042c7e453d0a1de3312a79f2375e459b.jpeg)が
69
70
  ![イメージ説明](1ae0027435009ce26c8cd97b8299cff8.jpeg)
70
71
  とか何かしらのポーズになる気がする

26

文の改善

2020/09/15 12:41

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,14 +1,13 @@
1
- モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
1
+ Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- だけど、何をすればいいのか分かりません。
3
+ しかし、何をすればいいのか分かりません。
4
- どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
4
+ どういった手順で計算すればいいのか、手順が知りたいです。
5
5
 
6
- 間違えてるかも知れないし、理解できないので消す。
7
6
 
8
- の様になると思う。ただしworld座標系が抜ける。
7
+ world座標系は今、vertexに入れてる値なのかなと思います根拠なし。
9
8
 
10
9
 
11
- 分からないこと...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
10
+ 分からないこと...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
12
11
 
13
12
  例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
14
13
 
@@ -16,15 +15,14 @@
16
15
  =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
17
16
  > 引用テキスト
18
17
 
19
- 変換後の法線ベクトル(法線はどうでもいい)
18
+ 変換後の法線ベクトル
20
19
  =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
21
20
 
22
- 分からないこと➃---書いてるなかでweightの数値に関する知識がないので調べなければいけないことに気がつきました。
21
+ 書いてるなかでweightの数値に関する知識がないので調べなければいけないことに気がつきました。
22
+ weightはweightだし
23
+ どう考えてもglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
23
24
 
24
- 分からないこと➄...どう考えてもmeshにかんしてはglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
25
25
 
26
- ➅間違えてるかどうかの保証はできません。間違いがありましたら、指摘してもらえると助かります。
27
-
28
26
  以下はソースコードです。
29
27
 
30
28
  ```c
@@ -61,361 +59,14 @@
61
59
  31.000195,-0.000004,0.000004,1.000000};
62
60
 
63
61
 
62
+ 横ではなく、縦列に数値入る気がするのだがしょうがない。
63
+ 後、ソースコードが長すぎるから、途中をみないで計算するのは難しい。
64
64
 
65
65
 
66
- float temp[16];
67
66
 
68
67
 
69
- //理解力がないから、こっちをつかいました
70
- void Ranks( float *temp , float *a, float *b)
71
- {
72
- temp[0]=a[0]*b[0]+a[1]*b[4]+a[2]*b[8]+a[3]*b[12];
73
- temp[1]=a[0]*b[1]+a[1]*b[5]+a[2]*b[9]+a[3]*b[13];
74
- temp[2]=a[0]*b[2]+a[1]*b[6]+a[2]*b[10]+a[3]*b[14];
75
- temp[3]=a[0]*b[3]+a[1]*b[7]+a[2]*b[11]+a[3]*b[15];
76
-
77
- temp[4]=a[4]*b[0]+a[5]*b[4]+a[6]*b[8]+a[7]*b[12];
78
- temp[5]=a[4]*b[1]+a[5]*b[5]+a[6]*b[9]+a[7]*b[13];
79
- temp[6]=a[4]*b[2]+a[5]*b[6]+a[6]*b[10]+a[7]*b[14];
80
- temp[7]=a[4]*b[3]+a[5]*b[7]+a[6]*b[11]+a[7]*b[15];
81
-
82
- temp[8]=a[8]*b[0]+a[9]*b[4]+a[10]*b[8]+a[11]*b[12];
83
- temp[9]=a[8]*b[1]+a[9]*b[5]+a[10]*b[9]+a[11]*b[13];
84
- temp[10]=a[8]*b[2]+a[9]*b[6]+a[10]*b[10]+a[11]*b[14];
85
- temp[11]=a[8]*b[3]+a[9]*b[7]+a[10]*b[11]+a[11]*b[15];
86
-
87
- temp[12]=a[12]*b[0]+a[13]*b[4]+a[14]*b[8]+a[15]*b[12];
88
- temp[13]=a[12]*b[1]+a[13]*b[5]+a[14]*b[9]+a[15]*b[13];
89
- temp[14]=a[12]*b[2]+a[13]*b[6]+a[14]*b[10]+a[15]*b[14];
90
- temp[15]=a[12]*b[3]+a[13]*b[7]+a[14]*b[11]+a[15]*b[15];
91
- }
92
-
93
-
94
-
95
-
96
- {
97
- /* draw in here */
98
-
99
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
100
-
101
-
102
- glClearColor(0.0,0.0,0.0,1.0); //(0.8,0.8,1.0,1.0)は白っぽい
103
- //(0.0.0.0,0.0,1.0);は黒
104
-
105
- glLoadIdentity();
106
- gluLookAt(0.4,0.8,0.7,//0.4,0.8,0.7
68
+ ![イメージ説明](042c7e453d0a1de3312a79f2375e459b.jpeg)が
107
- 0.0, 0.0, 0.0,
108
- 0.0, 1.0, 0.0 );
109
-
110
-
111
- //char ch= getc(fp);でループの数をスキップしました。あと、xファイルは
112
- //読みやすいように改ざんしました。
113
- //MeshNormals[3*b[0]について、b[0]には何行目かが入っています。
114
- //陰影がついていなくて間違えているかもしれませんが、もう計算した値が
115
- //ファイルに含まれているといわれたので計算せずにファイルから抜き出しまし
116
- // した。ただし.objファイルの場合の話。
117
- //Textureにおいては右腕の位置を動かしているので考えません。
118
-
119
-
120
-
121
- float Mesh_tiny[4432*3];
122
-
123
- FILE *fp;
124
-
125
- fp=fopen("./src/tiny.x","r");
126
- static double angle=0.0;
127
- angle=angle+0.3;
128
- if(angle>360){angle=0.0;}
129
-
130
- glRotated (angle,0,1,0);
131
-
132
- glTranslatef(0.0,0.15,0.0);
133
-
134
- glScaled(0.0008,0.0008,0.0008);
135
-
136
- for(int i=0;i<23;i++)
137
- {
138
- char ch=fgetc(fp);
139
-
140
- //printf("%c",ch);
141
-
142
- }
143
-
144
- //4432
145
- for(int i=0;i<((4434-3)+1);i++){
146
-
147
- fscanf(fp,"%f;%f;%f;,\n\t\t\t\t",&Mesh_tiny[3*i],&Mesh_tiny[3*i+1],&Mesh_tiny[3*i+2]);
148
-
149
- //printf("%f %f %f;,\n",Mesh_tiny[3*i],Mesh_tiny[3*i+1],Mesh_tiny[3*i+2]);
150
- }
151
-
152
-
153
-
154
-
155
-
156
- for(int i=0;i<18;i++) //18
157
- {
158
- char ch=fgetc(fp);
159
-
160
-
161
- // printf("%c",ch);
162
-
163
- }
164
-
165
-
166
-
167
- int Mesh_tiny_id[(6841*3)]; //6840*3 ?+1?
168
-
169
-
170
- for(int i=0; i<6840+1; ++i){//11275-4436=6840
171
-
172
- fscanf(fp,"3;%d,%d,%d;,\n\t\t\t\t",&Mesh_tiny_id[3*i+0],&Mesh_tiny_id[3*i+1],
173
-
174
- &Mesh_tiny_id[3*i+2]);//i=6840
175
-
176
- //printf("%d,%d,%d;,\n",Mesh_tiny_id[3*i+0],Mesh_tiny_id[3*i+1],
177
- // Mesh_tiny_id[3*i+2]);
178
-
179
- }
180
-
181
-
182
-
183
-
184
-
185
- for(int i=0;i<41;i++)//41
186
- {
187
- char ch=fgetc(fp);
188
- //printf("%c",ch);
189
-
190
- }
191
-
192
-
193
-
194
-
195
- float MeshNormals[4432*3];
196
-
197
- for(int i=0; i<(4431)+1;++i) // i<(15711-11280)+1;
198
- {
199
-
200
- fscanf(fp,"%f;%f;%f;,\n\t\t\t\t",&MeshNormals[3*i+0],&MeshNormals[3*i+1],&MeshNormals[3*i+2]);
201
-
202
- //printf("%f %f %f \n",MeshNormals[3*4431+0],MeshNormals[3*4431+1],MeshNormals[3*4431+2]);
203
-
204
- }
205
-
206
-
207
-
208
- for(int i=0;i<20;i++)//20
209
- {
210
- char ch=fgetc(fp);
211
- //printf("%c",ch);
212
- }
213
-
214
-
215
-
216
-
217
-
218
- int MeshNormals_id[6841*3];
219
-
220
- for(int i=0; i<6840+1;++i)//6840+1
221
- {
222
-
223
- //3*i+0 ,3*i+1 ,3*i+2
224
- fscanf(fp,"3;%d,%d,%d;,\n\t\t\t\t",&MeshNormals_id[3*i+0],&MeshNormals_id[3*i+1],
225
- &MeshNormals_id[3*i+2]);
226
-
227
- //printf("%d %d %d;,\n",MeshNormals_id[3*i+0],MeshNormals_id[3*i+1],MeshNormals_id[3*i+2]);
228
-
229
- }
230
-
231
-
232
- for(int i=0;i<54;i++)//54 0k
233
- {
234
- char ch=fgetc(fp);
235
- // printf("%c",ch);
236
- }
237
-
238
-
239
- float Texture[(4432)*2];//26989-22558 //4432
240
-
241
-
242
- for(int i=0; i<4432; ++i) //i<4432
243
- {
244
- fscanf(fp,"%f;%f;,\n\t\t\t\t\t",
245
- &Texture[2*i+0],&Texture[2*i+1]);//[i+0] [i+1] ok
246
-
247
-
248
- //printf("%f,%f\n",Texture[2*i+0],Texture[2*i+1]);
249
- //0.551922 , 0.238188
250
- }
251
-
252
-
253
-
254
-
255
-
256
-
257
- //weightを読み取る //"Bip01_R_UpperArm"
258
- for(int i=0; i<368;++i)
259
- {
260
- //367
261
- char ch=getc(fp);
262
- printf("%c",ch);
263
- }
264
-
265
- int weight_id[156];
266
- for(int i=0; i<156; ++i){
267
- fscanf(fp,"%d,\n\t\t\t\t\t",&weight_id[i]);
268
- printf("%d,\n",weight_id[i]);
269
- }
270
-
271
-
272
- for(int i=0;i<1;++i)
273
- {
274
-
275
- char ch=getc(fp);
276
-
277
- //printf("%c\n",ch);
278
-
279
- }
280
-
281
-
282
- float weight[156];
283
-
284
- for(int i=0; i<156;++i){
285
- fscanf(fp,"%f,\n\t\t\t\t\t",&weight[i]);
286
- printf("%f,\n",weight[i]);
287
-
288
- }
289
-
290
-
291
- float offsetMatrix[16];
292
-
293
- for(int i=0; i<16;++i){
294
- fscanf(fp,"%f",offsetMatrix[i]);
295
- }
296
-
297
-
298
-
299
- //変換行列*offsetMatrix * 変換行列=右腕のスキニング行列
300
- Ranks(&temp[0],&Frame_body[0],&Frame_Scene_Root[0]);
301
- Ranks(&temp[0],&Frame_Bip01_R_UpperArm_TransformMatrix[0],&temp[0]);
302
- Ranks(&temp[0],&offsetMatrix[0],&temp[0]);
303
-
304
- //"Bip01_R_UpperArm"
305
-
306
-
307
- //ループの始まり
308
- for( int i=0; i<6841; ++i) //6841 ok
309
- {
310
-
311
- int a[3];
312
- a[0]=Mesh_tiny_id[(3*i)+0];
313
- a[1]=Mesh_tiny_id[(3*i)+1];
314
- a[2]=Mesh_tiny_id[(3*i)+2];
315
-
316
- // printf("%d ",Mesh_tiny_id[(3*0)]);
317
- // printf("%d ",Mesh_tiny_id[(3*6840)+1]);
318
- // printf("%d\n",Mesh_tiny_id[(3*6840)+2]);
319
-
320
-
321
- int b[3];
322
- b[0]=MeshNormals_id[3*i+0];
323
- b[1]=MeshNormals_id[3*i+1];
324
- b[2]=MeshNormals_id[3*i+2];
325
-
326
- // printf("%d,",b[0]);//MeshNormals_id[3*i+0]);
327
- // printf("%d,",b[1]);//MeshNormals_id[3*i+1]);
328
- // printf("%d\n",b[2]);//MeshNormals_id[3*i+2]);
329
-
330
- int c[3];
331
- c[0]=Mesh_tiny_id[3*i];
332
- c[1]=Mesh_tiny_id[3*i+1];
333
- c[2]=Mesh_tiny_id[3*i+2];
334
-
335
- //printf("%d, ",c[0]);
336
- //printf("%d ",c[1]);
337
- //printf("%d\n",c[2]);
338
-
339
- glPushMatrix ();
340
-
341
- glBegin(GL_POLYGON);
342
-
343
-
344
- glNormal3f(MeshNormals[3*b[0]],MeshNormals[3*b[0]+1],MeshNormals[3*b[0]+2]);
345
-
346
-
347
- //Mesh_tiny[3*a[0]]+=temp[0]; Mesh_tiny[3*a[0]+1]+=temp[1]; //Mesh_tiny[3*a[0]+2]+=temp[2];
348
- glVertex3f(Mesh_tiny[3*a[0]],Mesh_tiny[3*a[0]+1], Mesh_tiny[3*a[0]+2]);
349
- //61行目
350
-
351
- //printf("%f;%f;%f\n",Mesh_tiny[3*a[0]],Mesh_tiny[3*a[0]+1],Mesh_tiny[3*a[0]+2]);
352
- //ok
353
-
354
-
355
- glNormal3f(MeshNormals[3*b[1]+0],MeshNormals[3*b[1]+1],MeshNormals[3*b[1]+2]);
356
-
357
-
358
- glVertex3f(Mesh_tiny[3*a[1]+0],Mesh_tiny[3*a[1]+1],Mesh_tiny[3*a[1]+2]);
359
-
360
- //printf("%f;%f;%f\n",Mesh_tiny[3*c[1]+0],Mesh_tiny[3*c[1]+1],Mesh_tiny[3*c[1]+2]);
361
- //0.238188; -12.484819 48.088928
69
+ ![イメージ説明](1ae0027435009ce26c8cd97b8299cff8.jpeg)
362
-
363
-
364
-
365
- glNormal3f(MeshNormals[3*b[2]+0],MeshNormals[3*b[2]+1],MeshNormals[3*b[2]+2]);
366
-
367
- glVertex3f(Mesh_tiny[3*a[2]+0],Mesh_tiny[3*a[2]+1],Mesh_tiny[3*a[2]+2]);
368
-
369
-
370
- //4431行目 //4434-3行目 ok
371
- //printf("%f %f %f\n",Mesh_tiny[3*a[2]+0],Mesh_tiny[3*a[2]+1],Mesh_tiny[3*a[2]+2]);
372
-
373
- glEnd();
374
-
375
- }
376
-
377
- fclose(fp);
378
-
379
- glPopMatrix();
380
-
381
- }ここで終わり
382
-
383
-
384
- ------省略-------------
385
-
386
-
387
- glViewport (0, 0, 600, 573);
388
- glMatrixMode(GL_PROJECTION);
389
-
390
- //50.0 1.0,100,
391
- gluPerspective(32.0,(double)(600/573)
392
- ,1.5f,1000.0f); //40.0 ,1.5f ,10000.0f //40.0 1.0f 1000.0f
393
-
394
-
395
- glMatrixMode(GL_MODELVIEW); //モードを元に戻す
396
-
397
- glLoadIdentity();
70
+ とか何かしらのポーズになる気がする
398
-
399
-
400
-
401
- glMatrixMode(GL_MODELVIEW); //モードを元に戻す
402
-
403
- ----省略------------
404
-
405
- //xfile 未完成
406
- ```
407
-
408
-
409
- ```xファイル
410
- SkinWeights {
411
- "Bip01_R_UpperArm";
412
- 156;............................156の要素がある
413
- 0,---------頂点番号はじまり
71
+ (引用 3D格闘ゲームプログラミング)
414
- 3449,
415
- 3429,
416
-
417
- ....入りきらないので省略。
418
- -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;;
419
- ...........-0.941743,からoffset行列
72
+ ロジックうんぬん分からないのでわかる人がいましたらお願いします。
420
- }
421
- ```

25

文の改善

2020/09/15 12:37

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,7 @@
4
4
  どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
5
5
 
6
6
  間違えてるかも知れないし、理解できないので消す。
7
- --------
7
+
8
8
  の様になると思う。ただしworld座標系が抜けている。
9
9
 
10
10
 

24

文の改善

2020/08/27 02:35

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -3,48 +3,8 @@
3
3
  だけど、何をすればいいのか分かりません。
4
4
  どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
5
5
 
6
- (開発環境は苦労して手に入れたのでふせさせていただきます)
7
-
8
- 今回 右上腕だけ動かすプログラムを作ろうと思いました。行列の掛け算をつかいます(スキニング行列というらしいは)、offset行列*TransC*TranceD*worldであらわせるそうですが、TranceCは右上腕フレームの行列、TranceDは胴体フレームの変換行列,worldはモデル全体の移動、回転、拡大縮小を表す行列だそうです。
9
- ● 分からないこと➀--world座標系は移動、回転、拡大、縮小を表すが下記の通りAPIを使ってしまった。
10
- glRotated (angle,0,1,0);
11
- glTranslatef(0.0,0.15,0.0);
12
- glScaled(0.0008,0.0008,0.0008);
13
- ●分からないこと➁---スキニング行列をだすのだがworld座標系がわからない。
14
- float Frame_Scene_Root[16]={
15
- 1.000000,0.000000,0.000000,0.000000,
16
- 0.000000,1.000000,0.000000,0.000000,
17
- 0.000000,0.000000,1.000000,0.000000,
18
- 0.000000,0.000000,0.000000,1.000000};
19
-
20
- float Frame_body[16]={
21
-
22
- 1.278853,0.000000,-0.000000,0.000000,
23
- 0.000000,0.000000,1.123165,0.000000,
24
- 0.000000,-1.470235,0.000000,0.000000,
25
- 0.135977,2.027985,133.967667,1.000000
26
- };
27
-
28
- float Frame[16]={
29
-
30
- 1.000000,-0.000000,-0.000000,0.000000,
31
- -0.000000,1.000000,0.000000,0.000000,
32
- -0.000000,0.000000,1.000000,0.000000,
33
- -0.142114,0.000023,-49.556850,1.000000};
34
-
35
-
36
- float Frame_Bip01_R_UpperArm_TransformMatrix[16]={//upper
37
- 0.532891,0.645602,0.547015,0.000000,
38
- -0.380503,0.760229,-0.526564,0.000000,
39
- -0.755807,0.072461,0.650772,0.000000,
40
- 31.000195,-0.000004,0.000004,1.000000};
41
-
42
- //参考書籍には、モデル全体の移動、回転、拡大、縮小を表す行列worldに
43
- 胴体フレームの変換行列をかけると書いる。
6
+ 間違えてるかも知れないし、理解できないので消す
44
- Ranks(&temp[0],&Frame_body[0],&Frame_Scene_Root[0]);
45
- Ranks(&temp[0],&Frame_Bip01_R_UpperArm_TransformMatrix[0],&temp[0]);
46
- Ranks(&temp[0],&offsetMatrix[0],&temp[0]);
7
+ --------
47
-
48
8
  の様になると思う。ただしworld座標系が抜けている。
49
9
 
50
10
 

23

文の追加

2020/08/27 02:34

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -53,7 +53,7 @@
53
53
  例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
54
54
 
55
55
  頂点座標
56
- =pos*skin6*weight6+skin4*weight4+skin0*weight0+skin1*weight1
56
+ =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
57
57
  > 引用テキスト
58
58
 
59
59
  変換後の法線ベクトル(法線はどうでもいい)

22

文の追加

2020/07/11 02:51

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -53,7 +53,7 @@
53
53
  例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
54
54
 
55
55
  頂点座標
56
- =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
56
+ =pos*skin6*weight6+skin4*weight4+skin0*weight0+skin1*weight1
57
57
  > 引用テキスト
58
58
 
59
59
  変換後の法線ベクトル(法線はどうでもいい)

21

文の追加

2020/07/11 02:49

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -418,10 +418,9 @@
418
418
 
419
419
  glPopMatrix();
420
420
 
421
+ }ここで終わり
421
422
 
422
423
 
423
-
424
-
425
424
  ------省略-------------
426
425
 
427
426
 

20

文の追加

2020/07/10 13:01

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -68,6 +68,7 @@
68
68
  以下はソースコードです。
69
69
 
70
70
  ```c
71
+ //ここで#includeしています。
71
72
 
72
73
  //ここはファイルから抜き出した
73
74
  float Frame_Scene_Root[16]={
@@ -131,6 +132,8 @@
131
132
 
132
133
 
133
134
 
135
+
136
+ {
134
137
  /* draw in here */
135
138
 
136
139
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -444,7 +447,7 @@
444
447
  ```
445
448
 
446
449
 
447
- ```
450
+ ```xファイル
448
451
  SkinWeights {
449
452
  "Bip01_R_UpperArm";
450
453
  156;............................156の要素がある

19

文の追加

2020/07/10 12:58

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -151,7 +151,7 @@
151
151
  //陰影がついていなくて間違えているかもしれませんが、もう計算した値が
152
152
  //ファイルに含まれているといわれたので計算せずにファイルから抜き出しまし
153
153
  // した。ただし.objファイルの場合の話。
154
- //Textureにおいては右腕をあげる話をしているので考えません。
154
+ //Textureにおいては右腕の位置動かしているので考えません。
155
155
 
156
156
 
157
157
 

18

文の追加

2020/07/10 09:15

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,6 @@
3
3
  だけど、何をすればいいのか分かりません。
4
4
  どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
5
5
 
6
-
7
6
  (開発環境は苦労して手に入れたのでふせさせていただきます)
8
7
 
9
8
  今回 右上腕だけ動かすプログラムを作ろうと思いました。行列の掛け算をつかいます(スキニング行列というらしいは)、offset行列*TransC*TranceD*worldであらわせるそうですが、TranceCは右上腕フレームの行列、TranceDは胴体フレームの変換行列,worldはモデル全体の移動、回転、拡大縮小を表す行列だそうです。
@@ -18,7 +17,6 @@
18
17
  0.000000,0.000000,1.000000,0.000000,
19
18
  0.000000,0.000000,0.000000,1.000000};
20
19
 
21
-
22
20
  float Frame_body[16]={
23
21
 
24
22
  1.278853,0.000000,-0.000000,0.000000,
@@ -50,7 +48,6 @@
50
48
  の様になると思う。ただしworld座標系が抜けている。
51
49
 
52
50
 
53
-
54
51
  分からないこと➂...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
55
52
 
56
53
  例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
@@ -62,12 +59,12 @@
62
59
  変換後の法線ベクトル(法線はどうでもいい)
63
60
  =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
64
61
 
62
+ 分からないこと➃---書いてるなかでweightの数値に関する知識がないので調べなければいけないことに気がつきました。
65
63
 
64
+ 分からないこと➄...どう考えてもmeshにかんしてはglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
66
65
 
67
- らないこと➃...どう考えてもmeshにかんしてはglVertex3f()に変形を加ればいいおもうのですが、よくわかりません以上です。
66
+ ➅間違えてるかどうかの保証はできませ。間違いがありまたら、指摘しもらかります。
68
67
 
69
-
70
-
71
68
  以下はソースコードです。
72
69
 
73
70
  ```c
@@ -295,7 +292,7 @@
295
292
 
296
293
 
297
294
  //weightを読み取る //"Bip01_R_UpperArm"
298
- for(int i=0; i<368;++i)//602-30-20-20-10-15-20-40-17-12-30-4-15-1;++i)//368
295
+ for(int i=0; i<368;++i)
299
296
  {
300
297
  //367
301
298
  char ch=getc(fp);
@@ -406,7 +403,6 @@
406
403
 
407
404
  glVertex3f(Mesh_tiny[3*a[2]+0],Mesh_tiny[3*a[2]+1],Mesh_tiny[3*a[2]+2]);
408
405
 
409
- //printf("%f;%f;%f\n",Texture[3*c[2]+0],Texture[3*c[2]+1],Texture[3*c[2]+2]);
410
406
 
411
407
  //4431行目 //4434-3行目 ok
412
408
  //printf("%f %f %f\n",Mesh_tiny[3*a[2]+0],Mesh_tiny[3*a[2]+1],Mesh_tiny[3*a[2]+2]);

17

文の追加

2020/07/10 03:42

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -53,8 +53,11 @@
53
53
 
54
54
  分からないこと➂...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
55
55
 
56
+ 例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
57
+
56
58
  頂点座標
57
59
  =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
60
+ > 引用テキスト
58
61
 
59
62
  変換後の法線ベクトル(法線はどうでもいい)
60
63
  =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...

16

文の追加

2020/07/09 20:16

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -454,6 +454,7 @@
454
454
  3429,
455
455
 
456
456
  ....入りきらないので省略。
457
- -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;;...........-0.941743,からoffset行列
457
+ -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;;
458
+ ...........-0.941743,からoffset行列
458
459
  }
459
460
  ```

15

文の追加

2020/07/09 20:07

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -53,9 +53,6 @@
53
53
 
54
54
  分からないこと➂...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
55
55
 
56
-
57
- 分からないこと➃...どう考えてもmeshにかんしてはglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
58
-
59
56
  頂点座標
60
57
  =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
61
58
 
@@ -63,6 +60,11 @@
63
60
  =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
64
61
 
65
62
 
63
+
64
+ 分からないこと➃...どう考えてもmeshにかんしてはglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
65
+
66
+
67
+
66
68
  以下はソースコードです。
67
69
 
68
70
  ```c

14

文の追加

2020/07/09 20:04

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
+ だけど、何をすればいいのか分かりません。
3
- だけ、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
4
+ どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
4
5
 
5
6
 
6
7
  (開発環境は苦労して手に入れたのでふせさせていただきます)
@@ -10,7 +11,6 @@
10
11
  glRotated (angle,0,1,0);
11
12
  glTranslatef(0.0,0.15,0.0);
12
13
  glScaled(0.0008,0.0008,0.0008);
13
-
14
14
  ●分からないこと➁---スキニング行列をだすのだがworld座標系がわからない。
15
15
  float Frame_Scene_Root[16]={
16
16
  1.000000,0.000000,0.000000,0.000000,
@@ -41,9 +41,6 @@
41
41
  -0.755807,0.072461,0.650772,0.000000,
42
42
  31.000195,-0.000004,0.000004,1.000000};
43
43
 
44
-
45
-
46
- //変換行列*offsetMatrix * 変換行列=右腕のスキニング行列
47
44
  //参考書籍には、モデル全体の移動、回転、拡大、縮小を表す行列worldに
48
45
  胴体フレームの変換行列をかけると書いてある。
49
46
  Ranks(&temp[0],&Frame_body[0],&Frame_Scene_Root[0]);

13

文の追加

2020/07/09 19:57

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -443,4 +443,18 @@
443
443
  ----省略------------
444
444
 
445
445
  //xfile 未完成
446
+ ```
447
+
448
+
449
+ ```c
450
+ SkinWeights {
451
+ "Bip01_R_UpperArm";
452
+ 156;............................156の要素がある
453
+ 0,---------頂点番号はじまり
454
+ 3449,
455
+ 3429,
456
+
457
+ ....入りきらないので省略。
458
+ -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;;...........-0.941743,からoffset行列
459
+ }
446
460
  ```

12

文の追加

2020/07/09 19:35

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,446 @@
1
1
  モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
3
+ だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
4
+
5
+
6
+ (開発環境は苦労して手に入れたのでふせさせていただきます)
7
+
8
+ 今回 右上腕だけ動かすプログラムを作ろうと思いました。行列の掛け算をつかいます(スキニング行列というらしいは)、offset行列*TransC*TranceD*worldであらわせるそうですが、TranceCは右上腕フレームの行列、TranceDは胴体フレームの変換行列,worldはモデル全体の移動、回転、拡大縮小を表す行列だそうです。
9
+ ● 分からないこと➀--world座標系は移動、回転、拡大、縮小を表すが下記の通りAPIを使ってしまった。
10
+ glRotated (angle,0,1,0);
11
+ glTranslatef(0.0,0.15,0.0);
12
+ glScaled(0.0008,0.0008,0.0008);
13
+
14
+ ●分からないこと➁---スキニング行列をだすのだがworld座標系がわからない。
15
+ float Frame_Scene_Root[16]={
16
+ 1.000000,0.000000,0.000000,0.000000,
17
+ 0.000000,1.000000,0.000000,0.000000,
18
+ 0.000000,0.000000,1.000000,0.000000,
19
+ 0.000000,0.000000,0.000000,1.000000};
20
+
21
+
22
+ float Frame_body[16]={
23
+
24
+ 1.278853,0.000000,-0.000000,0.000000,
25
+ 0.000000,0.000000,1.123165,0.000000,
26
+ 0.000000,-1.470235,0.000000,0.000000,
27
+ 0.135977,2.027985,133.967667,1.000000
28
+ };
29
+
30
+ float Frame[16]={
31
+
32
+ 1.000000,-0.000000,-0.000000,0.000000,
33
+ -0.000000,1.000000,0.000000,0.000000,
34
+ -0.000000,0.000000,1.000000,0.000000,
35
+ -0.142114,0.000023,-49.556850,1.000000};
36
+
37
+
38
+ float Frame_Bip01_R_UpperArm_TransformMatrix[16]={//upper
39
+ 0.532891,0.645602,0.547015,0.000000,
40
+ -0.380503,0.760229,-0.526564,0.000000,
41
+ -0.755807,0.072461,0.650772,0.000000,
42
+ 31.000195,-0.000004,0.000004,1.000000};
43
+
44
+
45
+
46
+ //変換行列*offsetMatrix * 変換行列=右腕のスキニング行列
47
+ //参考書籍には、モデル全体の移動、回転、拡大、縮小を表す行列worldに
48
+ 胴体フレームの変換行列をかけると書いてある。
49
+ Ranks(&temp[0],&Frame_body[0],&Frame_Scene_Root[0]);
50
+ Ranks(&temp[0],&Frame_Bip01_R_UpperArm_TransformMatrix[0],&temp[0]);
51
+ Ranks(&temp[0],&offsetMatrix[0],&temp[0]);
52
+
53
+ の様になると思う。ただしworld座標系が抜けている。
54
+
55
+
56
+
57
+ 分からないこと➂...求めたスキニング行列を使って頂点の座標変換を行う。各頂点が保持しているフレーム番号の配列を使って街頭するフレームのスキニング行列を参照する --意味不明。
58
+
59
+
60
+ 分からないこと➃...どう考えてもmeshにかんしてはglVertex3f()に変形を加えればいいとおもうのですが、よくわかりません以上です。
61
+
62
+ 頂点座標
63
+ =pos*skin6*weight6+pos*skin4*weight4+pos*skin0*weight0+pos*skin1*weight1
64
+
65
+ 変換後の法線ベクトル(法線はどうでもいい)
66
+ =normal*skin6*weight6+normal*skin4*weight4+normal*skin0*weight4+...
67
+
68
+
69
+ 以下はソースコードです。
70
+
71
+ ```c
72
+
73
+ //ここはファイルから抜き出した
74
+ float Frame_Scene_Root[16]={
75
+ 1.000000,0.000000,0.000000,0.000000,
76
+ 0.000000,1.000000,0.000000,0.000000,
77
+ 0.000000,0.000000,1.000000,0.000000,
78
+ 0.000000,0.000000,0.000000,1.000000};
79
+
80
+
81
+ float Frame_body[16]={
82
+
83
+ 1.278853,0.000000,-0.000000,0.000000,
84
+ 0.000000,0.000000,1.123165,0.000000,
85
+ 0.000000,-1.470235,0.000000,0.000000,
86
+ 0.135977,2.027985,133.967667,1.000000
87
+ };
88
+
89
+ float Frame[16]={
90
+
91
+ 1.000000,-0.000000,-0.000000,0.000000,
92
+ -0.000000,1.000000,0.000000,0.000000,
93
+ -0.000000,0.000000,1.000000,0.000000,
94
+ -0.142114,0.000023,-49.556850,1.000000};
95
+
96
+
97
+ float Frame_Bip01_R_UpperArm_TransformMatrix[16]={//upper
98
+ 0.532891,0.645602,0.547015,0.000000,
99
+ -0.380503,0.760229,-0.526564,0.000000,
100
+ -0.755807,0.072461,0.650772,0.000000,
101
+ 31.000195,-0.000004,0.000004,1.000000};
102
+
103
+
104
+
105
+
106
+ float temp[16];
107
+
108
+
109
+ //理解力がないから、こっちをつかいました
110
+ void Ranks( float *temp , float *a, float *b)
111
+ {
112
+ temp[0]=a[0]*b[0]+a[1]*b[4]+a[2]*b[8]+a[3]*b[12];
113
+ temp[1]=a[0]*b[1]+a[1]*b[5]+a[2]*b[9]+a[3]*b[13];
114
+ temp[2]=a[0]*b[2]+a[1]*b[6]+a[2]*b[10]+a[3]*b[14];
115
+ temp[3]=a[0]*b[3]+a[1]*b[7]+a[2]*b[11]+a[3]*b[15];
116
+
117
+ temp[4]=a[4]*b[0]+a[5]*b[4]+a[6]*b[8]+a[7]*b[12];
118
+ temp[5]=a[4]*b[1]+a[5]*b[5]+a[6]*b[9]+a[7]*b[13];
119
+ temp[6]=a[4]*b[2]+a[5]*b[6]+a[6]*b[10]+a[7]*b[14];
120
+ temp[7]=a[4]*b[3]+a[5]*b[7]+a[6]*b[11]+a[7]*b[15];
121
+
122
+ temp[8]=a[8]*b[0]+a[9]*b[4]+a[10]*b[8]+a[11]*b[12];
123
+ temp[9]=a[8]*b[1]+a[9]*b[5]+a[10]*b[9]+a[11]*b[13];
124
+ temp[10]=a[8]*b[2]+a[9]*b[6]+a[10]*b[10]+a[11]*b[14];
125
+ temp[11]=a[8]*b[3]+a[9]*b[7]+a[10]*b[11]+a[11]*b[15];
126
+
127
+ temp[12]=a[12]*b[0]+a[13]*b[4]+a[14]*b[8]+a[15]*b[12];
128
+ temp[13]=a[12]*b[1]+a[13]*b[5]+a[14]*b[9]+a[15]*b[13];
129
+ temp[14]=a[12]*b[2]+a[13]*b[6]+a[14]*b[10]+a[15]*b[14];
130
+ temp[15]=a[12]*b[3]+a[13]*b[7]+a[14]*b[11]+a[15]*b[15];
131
+ }
132
+
133
+
134
+
135
+ /* draw in here */
136
+
137
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
138
+
139
+
140
+ glClearColor(0.0,0.0,0.0,1.0); //(0.8,0.8,1.0,1.0)は白っぽい
141
+ //(0.0.0.0,0.0,1.0);は黒
142
+
143
+ glLoadIdentity();
144
+ gluLookAt(0.4,0.8,0.7,//0.4,0.8,0.7
145
+ 0.0, 0.0, 0.0,
146
+ 0.0, 1.0, 0.0 );
147
+
148
+
149
+ //char ch= getc(fp);でループの数をスキップしました。あと、xファイルは
150
+ //読みやすいように改ざんしました。
151
+ //MeshNormals[3*b[0]について、b[0]には何行目かが入っています。
152
+ //陰影がついていなくて間違えているかもしれませんが、もう計算した値が
153
+ //ファイルに含まれているといわれたので計算せずにファイルから抜き出しまし
154
+ // した。ただし.objファイルの場合の話。
155
+ //Textureにおいては右腕をあげる話をしているので考えません。
156
+
157
+
158
+
159
+ float Mesh_tiny[4432*3];
160
+
161
+ FILE *fp;
162
+
163
+ fp=fopen("./src/tiny.x","r");
164
+ static double angle=0.0;
165
+ angle=angle+0.3;
166
+ if(angle>360){angle=0.0;}
167
+
168
+ glRotated (angle,0,1,0);
169
+
170
+ glTranslatef(0.0,0.15,0.0);
171
+
172
+ glScaled(0.0008,0.0008,0.0008);
173
+
174
+ for(int i=0;i<23;i++)
175
+ {
176
+ char ch=fgetc(fp);
177
+
178
+ //printf("%c",ch);
179
+
180
+ }
181
+
182
+ //4432
183
+ for(int i=0;i<((4434-3)+1);i++){
184
+
185
+ fscanf(fp,"%f;%f;%f;,\n\t\t\t\t",&Mesh_tiny[3*i],&Mesh_tiny[3*i+1],&Mesh_tiny[3*i+2]);
186
+
187
+ //printf("%f %f %f;,\n",Mesh_tiny[3*i],Mesh_tiny[3*i+1],Mesh_tiny[3*i+2]);
188
+ }
189
+
190
+
191
+
192
+
193
+
194
+ for(int i=0;i<18;i++) //18
195
+ {
196
+ char ch=fgetc(fp);
197
+
198
+
199
+ // printf("%c",ch);
200
+
201
+ }
202
+
203
+
204
+
205
+ int Mesh_tiny_id[(6841*3)]; //6840*3 ?+1?
206
+
207
+
208
+ for(int i=0; i<6840+1; ++i){//11275-4436=6840
209
+
210
+ fscanf(fp,"3;%d,%d,%d;,\n\t\t\t\t",&Mesh_tiny_id[3*i+0],&Mesh_tiny_id[3*i+1],
211
+
212
+ &Mesh_tiny_id[3*i+2]);//i=6840
213
+
214
+ //printf("%d,%d,%d;,\n",Mesh_tiny_id[3*i+0],Mesh_tiny_id[3*i+1],
215
+ // Mesh_tiny_id[3*i+2]);
216
+
217
+ }
218
+
219
+
220
+
221
+
222
+
223
+ for(int i=0;i<41;i++)//41
224
+ {
225
+ char ch=fgetc(fp);
226
+ //printf("%c",ch);
227
+
228
+ }
229
+
230
+
231
+
232
+
233
+ float MeshNormals[4432*3];
234
+
235
+ for(int i=0; i<(4431)+1;++i) // i<(15711-11280)+1;
236
+ {
237
+
238
+ fscanf(fp,"%f;%f;%f;,\n\t\t\t\t",&MeshNormals[3*i+0],&MeshNormals[3*i+1],&MeshNormals[3*i+2]);
239
+
240
+ //printf("%f %f %f \n",MeshNormals[3*4431+0],MeshNormals[3*4431+1],MeshNormals[3*4431+2]);
241
+
242
+ }
243
+
244
+
245
+
246
+ for(int i=0;i<20;i++)//20
247
+ {
248
+ char ch=fgetc(fp);
249
+ //printf("%c",ch);
250
+ }
251
+
252
+
253
+
254
+
255
+
256
+ int MeshNormals_id[6841*3];
257
+
258
+ for(int i=0; i<6840+1;++i)//6840+1
259
+ {
260
+
261
+ //3*i+0 ,3*i+1 ,3*i+2
262
+ fscanf(fp,"3;%d,%d,%d;,\n\t\t\t\t",&MeshNormals_id[3*i+0],&MeshNormals_id[3*i+1],
263
+ &MeshNormals_id[3*i+2]);
264
+
265
+ //printf("%d %d %d;,\n",MeshNormals_id[3*i+0],MeshNormals_id[3*i+1],MeshNormals_id[3*i+2]);
266
+
267
+ }
268
+
269
+
270
+ for(int i=0;i<54;i++)//54 0k
271
+ {
272
+ char ch=fgetc(fp);
273
+ // printf("%c",ch);
274
+ }
275
+
276
+
277
+ float Texture[(4432)*2];//26989-22558 //4432
278
+
279
+
280
+ for(int i=0; i<4432; ++i) //i<4432
281
+ {
282
+ fscanf(fp,"%f;%f;,\n\t\t\t\t\t",
283
+ &Texture[2*i+0],&Texture[2*i+1]);//[i+0] [i+1] ok
284
+
285
+
286
+ //printf("%f,%f\n",Texture[2*i+0],Texture[2*i+1]);
287
+ //0.551922 , 0.238188
288
+ }
289
+
290
+
291
+
292
+
293
+
294
+
295
+ //weightを読み取る //"Bip01_R_UpperArm"
296
+ for(int i=0; i<368;++i)//602-30-20-20-10-15-20-40-17-12-30-4-15-1;++i)//368
297
+ {
298
+ //367
299
+ char ch=getc(fp);
300
+ printf("%c",ch);
301
+ }
302
+
303
+ int weight_id[156];
304
+ for(int i=0; i<156; ++i){
305
+ fscanf(fp,"%d,\n\t\t\t\t\t",&weight_id[i]);
306
+ printf("%d,\n",weight_id[i]);
307
+ }
308
+
309
+
310
+ for(int i=0;i<1;++i)
311
+ {
312
+
313
+ char ch=getc(fp);
314
+
315
+ //printf("%c\n",ch);
316
+
317
+ }
318
+
319
+
320
+ float weight[156];
321
+
322
+ for(int i=0; i<156;++i){
323
+ fscanf(fp,"%f,\n\t\t\t\t\t",&weight[i]);
324
+ printf("%f,\n",weight[i]);
325
+
326
+ }
327
+
328
+
329
+ float offsetMatrix[16];
330
+
331
+ for(int i=0; i<16;++i){
332
+ fscanf(fp,"%f",offsetMatrix[i]);
333
+ }
334
+
335
+
336
+
337
+ //変換行列*offsetMatrix * 変換行列=右腕のスキニング行列
338
+ Ranks(&temp[0],&Frame_body[0],&Frame_Scene_Root[0]);
339
+ Ranks(&temp[0],&Frame_Bip01_R_UpperArm_TransformMatrix[0],&temp[0]);
340
+ Ranks(&temp[0],&offsetMatrix[0],&temp[0]);
341
+
342
+ //"Bip01_R_UpperArm"
343
+
344
+
345
+ //ループの始まり
346
+ for( int i=0; i<6841; ++i) //6841 ok
347
+ {
348
+
349
+ int a[3];
350
+ a[0]=Mesh_tiny_id[(3*i)+0];
351
+ a[1]=Mesh_tiny_id[(3*i)+1];
352
+ a[2]=Mesh_tiny_id[(3*i)+2];
353
+
354
+ // printf("%d ",Mesh_tiny_id[(3*0)]);
355
+ // printf("%d ",Mesh_tiny_id[(3*6840)+1]);
356
+ // printf("%d\n",Mesh_tiny_id[(3*6840)+2]);
357
+
358
+
359
+ int b[3];
360
+ b[0]=MeshNormals_id[3*i+0];
361
+ b[1]=MeshNormals_id[3*i+1];
362
+ b[2]=MeshNormals_id[3*i+2];
363
+
364
+ // printf("%d,",b[0]);//MeshNormals_id[3*i+0]);
365
+ // printf("%d,",b[1]);//MeshNormals_id[3*i+1]);
366
+ // printf("%d\n",b[2]);//MeshNormals_id[3*i+2]);
367
+
368
+ int c[3];
369
+ c[0]=Mesh_tiny_id[3*i];
370
+ c[1]=Mesh_tiny_id[3*i+1];
371
+ c[2]=Mesh_tiny_id[3*i+2];
372
+
373
+ //printf("%d, ",c[0]);
374
+ //printf("%d ",c[1]);
375
+ //printf("%d\n",c[2]);
376
+
377
+ glPushMatrix ();
378
+
379
+ glBegin(GL_POLYGON);
380
+
381
+
382
+ glNormal3f(MeshNormals[3*b[0]],MeshNormals[3*b[0]+1],MeshNormals[3*b[0]+2]);
383
+
384
+
385
+ //Mesh_tiny[3*a[0]]+=temp[0]; Mesh_tiny[3*a[0]+1]+=temp[1]; //Mesh_tiny[3*a[0]+2]+=temp[2];
386
+ glVertex3f(Mesh_tiny[3*a[0]],Mesh_tiny[3*a[0]+1], Mesh_tiny[3*a[0]+2]);
387
+ //61行目
388
+
389
+ //printf("%f;%f;%f\n",Mesh_tiny[3*a[0]],Mesh_tiny[3*a[0]+1],Mesh_tiny[3*a[0]+2]);
390
+ //ok
391
+
392
+
393
+ glNormal3f(MeshNormals[3*b[1]+0],MeshNormals[3*b[1]+1],MeshNormals[3*b[1]+2]);
394
+
395
+
396
+ glVertex3f(Mesh_tiny[3*a[1]+0],Mesh_tiny[3*a[1]+1],Mesh_tiny[3*a[1]+2]);
397
+
398
+ //printf("%f;%f;%f\n",Mesh_tiny[3*c[1]+0],Mesh_tiny[3*c[1]+1],Mesh_tiny[3*c[1]+2]);
399
+ //0.238188; -12.484819 48.088928
400
+
401
+
402
+
403
+ glNormal3f(MeshNormals[3*b[2]+0],MeshNormals[3*b[2]+1],MeshNormals[3*b[2]+2]);
404
+
405
+ glVertex3f(Mesh_tiny[3*a[2]+0],Mesh_tiny[3*a[2]+1],Mesh_tiny[3*a[2]+2]);
406
+
407
+ //printf("%f;%f;%f\n",Texture[3*c[2]+0],Texture[3*c[2]+1],Texture[3*c[2]+2]);
408
+
409
+ //4431行目 //4434-3行目 ok
410
+ //printf("%f %f %f\n",Mesh_tiny[3*a[2]+0],Mesh_tiny[3*a[2]+1],Mesh_tiny[3*a[2]+2]);
411
+
412
+ glEnd();
413
+
414
+ }
415
+
416
+ fclose(fp);
417
+
418
+ glPopMatrix();
419
+
420
+
421
+
422
+
423
+
424
+ ------省略-------------
425
+
426
+
427
+ glViewport (0, 0, 600, 573);
428
+ glMatrixMode(GL_PROJECTION);
429
+
430
+ //50.0 1.0,100,
431
+ gluPerspective(32.0,(double)(600/573)
432
+ ,1.5f,1000.0f); //40.0 ,1.5f ,10000.0f //40.0 1.0f 1000.0f
433
+
434
+
435
+ glMatrixMode(GL_MODELVIEW); //モードを元に戻す
436
+
437
+ glLoadIdentity();
438
+
439
+
440
+
441
+ glMatrixMode(GL_MODELVIEW); //モードを元に戻す
442
+
443
+ ----省略------------
444
+
445
+ //xfile 未完成
446
+ ```

11

文の追加

2020/07/09 19:21

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,416 +1,3 @@
1
1
  モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません![イメージ説明](67542d826e70468ec5bb40c82138e331.png)
3
+ だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
4
-
5
- 画像の追加、画像は後で消すんだ
6
-
7
- Frameについてわからないのでもう一回上げてみる
8
-
9
- ソースはみせないけど、tiny.xというモデルです。変数がグローバルであっても、
10
-
11
- 再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
12
-
13
-
14
- 以下が算出で使いたいxファイルの一部です。
15
-
16
- > Frame Scene_Root {
17
-
18
-
19
- FrameTransformMatrix {
20
- 1.000000,0.000000,0.000000,0.000000,
21
- 0.000000,1.000000,0.000000,0.000000,
22
- 0.000000,0.000000,1.000000,0.000000,
23
- 0.000000,0.000000,0.000000,1.000000;;
24
- }
25
-
26
- Frame body {
27
-
28
-
29
- FrameTransformMatrix {
30
- 1.278853,0.000000,-0.000000,0.000000,
31
- 0.000000,0.000000,1.123165,0.000000,
32
- 0.000000,-1.470235,0.000000,0.000000,
33
- 0.135977,2.027985,133.967667,1.000000;;
34
- }
35
-
36
- Frame {
37
- FrameTransformMatrix {
38
- 1.000000,-0.000000,-0.000000,0.000000,
39
- -0.000000,1.000000,0.000000,0.000000,
40
- -0.000000,0.000000,1.000000,0.000000,
41
- -0.142114,0.000023,-49.556850,1.000000;;
42
- }
43
-
44
-
45
- まずこれはなんなのかという
46
-
47
- > SkinWeights {
48
- "Bip01_R_UpperArm";
49
- 156;
50
- 0,
51
- 3449,
52
- 3429,
53
- 3427,
54
- 2,
55
- 3454,
56
- 4,
57
- 3453,
58
- 7,
59
- 15,
60
- 68,
61
- 3456,
62
- 69,
63
- 70,
64
- 71,
65
- 3455,
66
- 72,
67
- 3940,
68
- 73,
69
- 4110,
70
- 4109,
71
- 74,
72
- 4108,
73
- 75,
74
- 3980,
75
- 76,
76
- 4113,
77
- 3936,
78
- 77,
79
- 3939,
80
- 78,
81
- 3979,
82
- 79,
83
- 3981,
84
- 1294,
85
- 1295,
86
- 1296,
87
- 1297,
88
- 1298,
89
- 3950,
90
- 1299,
91
- 3937,
92
- 1300,
93
- 1301,
94
- 3938,
95
- 1302,
96
- 3958,
97
- 3949,
98
- 1303,
99
- 3948,
100
- 1304,
101
- 3954,
102
- 1305,
103
- 3951,
104
- 3941,
105
- 1306,
106
- 3960,
107
- 3952,
108
- 1307,
109
- 3943,
110
- 1308,
111
- 3944,
112
- 1309,
113
- 1310,
114
- 1311,
115
- 1312,
116
- 1313,
117
- 1314,
118
- 1315,
119
- 3957,
120
- 1316,
121
- 1317,
122
- 1318,
123
- 3959,
124
- 1319,
125
- 1320,
126
- 1321,
127
- 1322,
128
- 1323,
129
- 1324,
130
- 3967,
131
- 3947,
132
- 1325,
133
- 3971,
134
- 1326,
135
- 3966,
136
- 1327,
137
- 3969,
138
- 3965,
139
- 1328,
140
- 3976,
141
- 3970,
142
- 3946,
143
- 1329,
144
- 3963,
145
- 1330,
146
- 3977,
147
- 1331,
148
- 3962,
149
- 1332,
150
- 3953,
151
- 1333,
152
- 3961,
153
- 3955,
154
- 1334,
155
- 3956,
156
- 1335,
157
- 1336,
158
- 1337,
159
- 1338,
160
- 3942,
161
- 1339,
162
- 1340,
163
- 1341,
164
- 1342,
165
- 3945,
166
- 1343,
167
- 1344,
168
- 1345,
169
- 1346,
170
- 1347,
171
- 1348,
172
- 1349,
173
- 1350,
174
- 1351,
175
- 1352,
176
- 1353,
177
- 1354,
178
- 3975,
179
- 1357,
180
- 1358,
181
- 1362,
182
- 1364,
183
- 1365,
184
- 1366,
185
- 1367,
186
- 1384,
187
- 1385,
188
- 1386,
189
- 1387,
190
- 1388,
191
- 1389,
192
- 1390,
193
- 3978,
194
- 1391,
195
- 1730,
196
- 4114,
197
- 1731,
198
- 1732,
199
- 1733,
200
- 4107,
201
- 1734,
202
- 1735,
203
- 1736,
204
- 1737,
205
- 1738;
206
- 0.605239,
207
- 0.605239,
208
- 0.605239,
209
- 0.605239,
210
- 0.208568,
211
- 0.208568,
212
- 0.332183,
213
- 0.332183,
214
- 0.490972,
215
- 0.001349,
216
- 0.378335,
217
- 0.378335,
218
- 0.505176,
219
- 0.547675,
220
- 0.378478,
221
- 0.378478,
222
- 0.520681,
223
- 0.520681,
224
- 0.514052,
225
- 0.514052,
226
- 0.514052,
227
- 0.489167,
228
- 0.489167,
229
- 0.500779,
230
- 0.500779,
231
- 0.344750,
232
- 0.344750,
233
- 0.344750,
234
- 0.444251,
235
- 0.444251,
236
- 0.422197,
237
- 0.422197,
238
- 0.459563,
239
- 0.459563,
240
- 1.000000,
241
- 1.000000,
242
- 0.523285,
243
- 0.702523,
244
- 1.000000,
245
- 1.000000,
246
- 1.000000,
247
- 1.000000,
248
- 1.000000,
249
- 0.754566,
250
- 0.754566,
251
- 1.000000,
252
- 1.000000,
253
- 1.000000,
254
- 1.000000,
255
- 1.000000,
256
- 0.999998,
257
- 0.999998,
258
- 1.000000,
259
- 1.000000,
260
- 1.000000,
261
- 1.000000,
262
- 1.000000,
263
- 1.000000,
264
- 0.937900,
265
- 0.937900,
266
- 0.843455,
267
- 0.843455,
268
- 1.000000,
269
- 1.000000,
270
- 0.692347,
271
- 0.536598,
272
- 0.635737,
273
- 0.793743,
274
- 1.000000,
275
- ....省略
276
-
277
- Frame Box01 {
278
-
279
-
280
- FrameTransformMatrix {
281
- -1.000000,0.000000,-0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-88.696747,-246.341751,858.815247,1.000000;;
282
- }
283
-
284
- Frame Bip01 {
285
-
286
-
287
- FrameTransformMatrix {
288
- 0.186552,-0.974653,0.123489,0.000000,0.982171,0.187991,0.000000,0.000000,-0.023215,0.121288,0.992346,0.000000,-88.977890,-857.346008,247.541595,1.000000;;
289
- }
290
-
291
- Frame Bip01_Footsteps {
292
-
293
-
294
- FrameTransformMatrix {
295
- 0.186552,0.982171,-0.023215,0.000000,-0.974653,0.187991,0.121288,0.000000,0.123489,-0.000000,0.992346,0.000000,-31.624149,0.000000,-254.128143,1.000000;;
296
- }
297
- }
298
-
299
- Frame Bip01_Pelvis {
300
-
301
-
302
- FrameTransformMatrix {
303
- -0.000000,0.011807,0.999930,0.000000,1.000000,0.000001,-0.000000,0.000000,-0.000001,0.999930,-0.011807,0.000000,-2.454305,-1.950977,-0.000005,1.000000;;
304
- }
305
-
306
- Frame Bip01_Spine {
307
-
308
-
309
- FrameTransformMatrix {
310
- 0.999137,0.041531,0.000982,0.000000,-0.040353,0.975880,-0.214545,0.000000,-0.009868,0.214320,0.976714,0.000000,27.422213,8.709480,-0.319006,1.000000;;
311
- }
312
-
313
- Frame Bip01_Spine1 {
314
-
315
-
316
- FrameTransformMatrix {
317
- 0.984808,-0.173648,-0.000000,0.000000,0.173648,0.984808,-0.000000,0.000000,0.000000,-0.000000,1.000000,0.000000,28.178080,-0.022084,0.000000,1.000000;;
318
- }
319
-
320
- Frame Bip01_Spine2 {
321
-
322
-
323
- FrameTransformMatrix {
324
- 0.999958,0.008483,0.003477,0.000000,-0.008313,0.998890,-0.046374,0.000000,-0.003867,0.046343,0.998918,0.000000,28.182159,-0.022430,0.001040,1.000000;;
325
- }
326
-
327
- Frame Bip01_Spine3 {
328
-
329
-
330
- FrameTransformMatrix {
331
- 0.999837,-0.017696,0.003477,0.000000,0.017838,0.998765,-0.046374,0.000000,-0.002652,0.046428,0.998918,0.000000,28.181417,-0.033880,0.001568,1.000000;;
332
- }
333
-
334
- Frame Bip01_Neck {
335
-
336
-
337
- FrameTransformMatrix {
338
- 0.861629,0.507538,0.000001,0.000000,-0.507538,0.861629,-0.000000,0.000000,-0.000001,-0.000000,1.000000,0.000000,42.566055,-0.019138,0.000001,1.000000;;
339
- }
340
-
341
- Frame Bip01_Head {
342
-
343
-
344
- FrameTransformMatrix {
345
- 0.979775,-0.188667,-0.066683,0.000000,0.195389,0.973921,0.115333,0.000000,0.043184,-0.126029,0.991086,0.000000,27.900173,0.000003,0.000000,1.000000;;
346
- }
347
-
348
- Frame Dummy21 {
349
-
350
-
351
- FrameTransformMatrix {
352
- 1.000000,-0.000000,-0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,-0.000000,1.000000,0.000000,59.615768,0.000027,0.000002,1.000000;;
353
- }
354
- }
355
- }
356
-
357
- Frame Bip01_L_Clavicle {
358
-
359
-
360
- FrameTransformMatrix {
361
- -0.185356,0.308957,0.932839,0.000000,-0.499811,-0.846968,0.181203,0.000000,0.846069,-0.432656,0.311411,0.000000,-12.374969,4.006883,8.346215,1.000000;;
362
- }
363
-
364
- Frame Bip01_L_UpperArm {
365
-
366
-
367
- FrameTransformMatrix {
368
- 0.640423,0.117307,-0.759011,0.000000,0.064965,0.976451,0.205728,0.000000,0.765270,-0.181062,0.617720,0.000000,31.000208,-0.000032,-0.000004,1.000000;;
369
- }
370
-
371
- Frame Bip01_L_Forearm {
372
-
373
-
374
- FrameTransformMatrix {
375
- 0.485335,-0.874328,-0.000000,0.000000,0.874328,0.485335,0.000000,0.000000,-0.000000,-0.000000,1.000000,0.000000,89.202522,-0.000023,0.000014,1.000000;;
376
- }
377
-
378
- Frame Bip01_L_Hand {
379
-
380
-
381
- FrameTransformMatrix {
382
- 0.999511,-0.027531,-0.014824,0.000000,-0.015327,-0.018154,-0.999718,0.000000,0.027254,0.999456,-0.018567,0.000000,61.671467,0.000001,-0.000001,1.000000;;
383
- }
384
-
385
- Frame Bip01_L_Finger0 {
386
-
387
-
388
- FrameTransformMatrix {
389
- 0.713247,-0.002867,-0.700906,0.000000,-0.700353,-0.042855,-0.712509,0.000000,-0.027995,0.999077,-0.032574,0.000000,12.410522,3.054963,-10.755418,1.000000;;
390
- }
391
-
392
- Frame Bip01_L_Finger01 {
393
-
394
-
395
- FrameTransformMatrix {
396
- 1.000000,-0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,10.075084,0.000006,-0.000007,1.000000;;
397
- }
398
-
399
- Frame Bip01_L_Finger02 {
400
-
401
-
402
- FrameTransformMatrix {
403
- 1.000000,-0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,5.961566,-0.000008,0.000006,1.000000;;
404
- }
405
-
406
- Frame Dummy06 {
407
-
408
-
409
- FrameTransformMatrix {
410
- 1.000000,-0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,5.961566,-0.000008,0.000003,1.000000;;
411
- }
412
- }
413
- }
414
- }
415
- }
416
- ```

10

行列を整えた

2020/07/03 11:10

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -17,21 +17,28 @@
17
17
 
18
18
 
19
19
  FrameTransformMatrix {
20
+ 1.000000,0.000000,0.000000,0.000000,
21
+ 0.000000,1.000000,0.000000,0.000000,
22
+ 0.000000,0.000000,1.000000,0.000000,
20
- 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;;
23
+ 0.000000,0.000000,0.000000,1.000000;;
21
24
  }
22
25
 
23
26
  Frame body {
24
27
 
25
28
 
26
29
  FrameTransformMatrix {
30
+ 1.278853,0.000000,-0.000000,0.000000,
31
+ 0.000000,0.000000,1.123165,0.000000,
32
+ 0.000000,-1.470235,0.000000,0.000000,
27
- 1.278853,0.000000,-0.000000,0.000000,0.000000,0.000000,1.123165,0.000000,0.000000,-1.470235,0.000000,0.000000,0.135977,2.027985,133.967667,1.000000;;
33
+ 0.135977,2.027985,133.967667,1.000000;;
28
34
  }
29
35
 
30
36
  Frame {
31
-
32
-
33
- FrameTransformMatrix {
37
+ FrameTransformMatrix {
38
+ 1.000000,-0.000000,-0.000000,0.000000,
39
+ -0.000000,1.000000,0.000000,0.000000,
40
+ -0.000000,0.000000,1.000000,0.000000,
34
- 1.000000,-0.000000,-0.000000,0.000000,-0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,-0.142114,0.000023,-49.556850,1.000000;;
41
+ -0.142114,0.000023,-49.556850,1.000000;;
35
42
  }
36
43
 
37
44
 

9

文の追加

2020/07/03 09:54

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,7 @@
11
11
  再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
12
12
 
13
13
 
14
- 以下が算出たいxファイルの一部です。
14
+ 以下が算出で使いたいxファイルの一部です。
15
15
 
16
16
  > Frame Scene_Root {
17
17
 

8

文の追加

2020/07/03 09:28

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,7 @@
11
11
  再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
12
12
 
13
13
 
14
- 以下がxファイルの一部です。
14
+ 以下が算出したいxファイルの一部です。
15
15
 
16
16
  > Frame Scene_Root {
17
17
 

7

文の追加

2020/07/03 09:27

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,9 @@
10
10
 
11
11
  再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
12
12
 
13
+
14
+ 以下がxファイルの一部です。
15
+
13
16
  > Frame Scene_Root {
14
17
 
15
18
 

6

文の追加

2020/07/03 09:24

投稿

txty
txty

スコア304

title CHANGED
@@ -1,1 +1,1 @@
1
- xファイルのFrameについて
1
+ xファイルのFrameについて算出方法がわかりません。
body CHANGED
File without changes

5

文の追加

2020/07/03 09:21

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -262,92 +262,145 @@
262
262
  0.635737,
263
263
  0.793743,
264
264
  1.000000,
265
- 1.000000,
266
- 1.000000,
267
- 1.000000,
268
- 1.000000,
269
- 1.000000,
270
- 1.000000,
271
- 1.000000,
272
- 0.562271,
273
- 1.000000,
274
- 0.606859,
275
- 0.525610,
276
- 0.525610,
277
- 0.525610,
278
- 0.505657,
279
- 0.505657,
280
- 0.499507,
281
- 0.499507,
282
- 0.502042,
283
- 0.502042,
284
- 0.502042,
285
- 0.512201,
286
- 0.512201,
287
- 0.512201,
288
- 0.512201,
289
- 0.500000,
290
- 0.500000,
291
- 0.564140,
292
- 0.564140,
293
- 0.499982,
294
- 0.499982,
295
- 0.999997,
296
- 0.999997,
297
- 1.000000,
298
- 1.000000,
299
- 1.000000,
300
- 1.000000,
301
- 1.000000,
302
- 1.000000,
303
- 1.000000,
304
- 1.000000,
305
- 1.000000,
306
- 1.000000,
307
- 1.000000,
308
- 1.000000,
309
- 1.000000,
310
- 1.000000,
311
- 1.000000,
312
- 0.995135,
313
- 0.936519,
314
- 1.000000,
315
- 0.999529,
316
- 0.980016,
317
- 0.999871,
318
- 0.999950,
319
- 1.000000,
320
- 0.951632,
321
- 0.002571,
322
- 0.000138,
323
- 0.003704,
324
- 0.003704,
325
- 0.000096,
326
- 0.000000,
327
- 0.000217,
328
- 0.000002,
329
- 0.000020,
330
- 0.000376,
331
- 0.001713,
332
- 0.017345,
333
- 0.266756,
334
- 0.080934,
335
- 0.226163,
336
- 0.796931,
337
- 1.000000,
338
- 1.000000,
339
- 1.000000,
340
- 0.171247,
341
- 0.501141,
342
- 0.501141,
343
- 0.569803,
344
- 0.914754,
345
- 0.873090,
346
- 0.873090,
347
- 1.000000,
348
- 1.000000,
349
- 0.999889,
350
- 0.999994,
351
- 0.979129;
352
- -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;;
353
- }
265
+ ....省略
266
+
267
+ Frame Box01 {
268
+
269
+
270
+ FrameTransformMatrix {
271
+ -1.000000,0.000000,-0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-88.696747,-246.341751,858.815247,1.000000;;
272
+ }
273
+
274
+ Frame Bip01 {
275
+
276
+
277
+ FrameTransformMatrix {
278
+ 0.186552,-0.974653,0.123489,0.000000,0.982171,0.187991,0.000000,0.000000,-0.023215,0.121288,0.992346,0.000000,-88.977890,-857.346008,247.541595,1.000000;;
279
+ }
280
+
281
+ Frame Bip01_Footsteps {
282
+
283
+
284
+ FrameTransformMatrix {
285
+ 0.186552,0.982171,-0.023215,0.000000,-0.974653,0.187991,0.121288,0.000000,0.123489,-0.000000,0.992346,0.000000,-31.624149,0.000000,-254.128143,1.000000;;
286
+ }
287
+ }
288
+
289
+ Frame Bip01_Pelvis {
290
+
291
+
292
+ FrameTransformMatrix {
293
+ -0.000000,0.011807,0.999930,0.000000,1.000000,0.000001,-0.000000,0.000000,-0.000001,0.999930,-0.011807,0.000000,-2.454305,-1.950977,-0.000005,1.000000;;
294
+ }
295
+
296
+ Frame Bip01_Spine {
297
+
298
+
299
+ FrameTransformMatrix {
300
+ 0.999137,0.041531,0.000982,0.000000,-0.040353,0.975880,-0.214545,0.000000,-0.009868,0.214320,0.976714,0.000000,27.422213,8.709480,-0.319006,1.000000;;
301
+ }
302
+
303
+ Frame Bip01_Spine1 {
304
+
305
+
306
+ FrameTransformMatrix {
307
+ 0.984808,-0.173648,-0.000000,0.000000,0.173648,0.984808,-0.000000,0.000000,0.000000,-0.000000,1.000000,0.000000,28.178080,-0.022084,0.000000,1.000000;;
308
+ }
309
+
310
+ Frame Bip01_Spine2 {
311
+
312
+
313
+ FrameTransformMatrix {
314
+ 0.999958,0.008483,0.003477,0.000000,-0.008313,0.998890,-0.046374,0.000000,-0.003867,0.046343,0.998918,0.000000,28.182159,-0.022430,0.001040,1.000000;;
315
+ }
316
+
317
+ Frame Bip01_Spine3 {
318
+
319
+
320
+ FrameTransformMatrix {
321
+ 0.999837,-0.017696,0.003477,0.000000,0.017838,0.998765,-0.046374,0.000000,-0.002652,0.046428,0.998918,0.000000,28.181417,-0.033880,0.001568,1.000000;;
322
+ }
323
+
324
+ Frame Bip01_Neck {
325
+
326
+
327
+ FrameTransformMatrix {
328
+ 0.861629,0.507538,0.000001,0.000000,-0.507538,0.861629,-0.000000,0.000000,-0.000001,-0.000000,1.000000,0.000000,42.566055,-0.019138,0.000001,1.000000;;
329
+ }
330
+
331
+ Frame Bip01_Head {
332
+
333
+
334
+ FrameTransformMatrix {
335
+ 0.979775,-0.188667,-0.066683,0.000000,0.195389,0.973921,0.115333,0.000000,0.043184,-0.126029,0.991086,0.000000,27.900173,0.000003,0.000000,1.000000;;
336
+ }
337
+
338
+ Frame Dummy21 {
339
+
340
+
341
+ FrameTransformMatrix {
342
+ 1.000000,-0.000000,-0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,-0.000000,1.000000,0.000000,59.615768,0.000027,0.000002,1.000000;;
343
+ }
344
+ }
345
+ }
346
+
347
+ Frame Bip01_L_Clavicle {
348
+
349
+
350
+ FrameTransformMatrix {
351
+ -0.185356,0.308957,0.932839,0.000000,-0.499811,-0.846968,0.181203,0.000000,0.846069,-0.432656,0.311411,0.000000,-12.374969,4.006883,8.346215,1.000000;;
352
+ }
353
+
354
+ Frame Bip01_L_UpperArm {
355
+
356
+
357
+ FrameTransformMatrix {
358
+ 0.640423,0.117307,-0.759011,0.000000,0.064965,0.976451,0.205728,0.000000,0.765270,-0.181062,0.617720,0.000000,31.000208,-0.000032,-0.000004,1.000000;;
359
+ }
360
+
361
+ Frame Bip01_L_Forearm {
362
+
363
+
364
+ FrameTransformMatrix {
365
+ 0.485335,-0.874328,-0.000000,0.000000,0.874328,0.485335,0.000000,0.000000,-0.000000,-0.000000,1.000000,0.000000,89.202522,-0.000023,0.000014,1.000000;;
366
+ }
367
+
368
+ Frame Bip01_L_Hand {
369
+
370
+
371
+ FrameTransformMatrix {
372
+ 0.999511,-0.027531,-0.014824,0.000000,-0.015327,-0.018154,-0.999718,0.000000,0.027254,0.999456,-0.018567,0.000000,61.671467,0.000001,-0.000001,1.000000;;
373
+ }
374
+
375
+ Frame Bip01_L_Finger0 {
376
+
377
+
378
+ FrameTransformMatrix {
379
+ 0.713247,-0.002867,-0.700906,0.000000,-0.700353,-0.042855,-0.712509,0.000000,-0.027995,0.999077,-0.032574,0.000000,12.410522,3.054963,-10.755418,1.000000;;
380
+ }
381
+
382
+ Frame Bip01_L_Finger01 {
383
+
384
+
385
+ FrameTransformMatrix {
386
+ 1.000000,-0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,10.075084,0.000006,-0.000007,1.000000;;
387
+ }
388
+
389
+ Frame Bip01_L_Finger02 {
390
+
391
+
392
+ FrameTransformMatrix {
393
+ 1.000000,-0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,5.961566,-0.000008,0.000006,1.000000;;
394
+ }
395
+
396
+ Frame Dummy06 {
397
+
398
+
399
+ FrameTransformMatrix {
400
+ 1.000000,-0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,5.961566,-0.000008,0.000003,1.000000;;
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+ ```

4

文の追加

2020/07/03 09:02

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -32,4 +32,322 @@
32
32
  }
33
33
 
34
34
 
35
- まずこれはなんなのかという
35
+ まずこれはなんなのかという
36
+
37
+ > SkinWeights {
38
+ "Bip01_R_UpperArm";
39
+ 156;
40
+ 0,
41
+ 3449,
42
+ 3429,
43
+ 3427,
44
+ 2,
45
+ 3454,
46
+ 4,
47
+ 3453,
48
+ 7,
49
+ 15,
50
+ 68,
51
+ 3456,
52
+ 69,
53
+ 70,
54
+ 71,
55
+ 3455,
56
+ 72,
57
+ 3940,
58
+ 73,
59
+ 4110,
60
+ 4109,
61
+ 74,
62
+ 4108,
63
+ 75,
64
+ 3980,
65
+ 76,
66
+ 4113,
67
+ 3936,
68
+ 77,
69
+ 3939,
70
+ 78,
71
+ 3979,
72
+ 79,
73
+ 3981,
74
+ 1294,
75
+ 1295,
76
+ 1296,
77
+ 1297,
78
+ 1298,
79
+ 3950,
80
+ 1299,
81
+ 3937,
82
+ 1300,
83
+ 1301,
84
+ 3938,
85
+ 1302,
86
+ 3958,
87
+ 3949,
88
+ 1303,
89
+ 3948,
90
+ 1304,
91
+ 3954,
92
+ 1305,
93
+ 3951,
94
+ 3941,
95
+ 1306,
96
+ 3960,
97
+ 3952,
98
+ 1307,
99
+ 3943,
100
+ 1308,
101
+ 3944,
102
+ 1309,
103
+ 1310,
104
+ 1311,
105
+ 1312,
106
+ 1313,
107
+ 1314,
108
+ 1315,
109
+ 3957,
110
+ 1316,
111
+ 1317,
112
+ 1318,
113
+ 3959,
114
+ 1319,
115
+ 1320,
116
+ 1321,
117
+ 1322,
118
+ 1323,
119
+ 1324,
120
+ 3967,
121
+ 3947,
122
+ 1325,
123
+ 3971,
124
+ 1326,
125
+ 3966,
126
+ 1327,
127
+ 3969,
128
+ 3965,
129
+ 1328,
130
+ 3976,
131
+ 3970,
132
+ 3946,
133
+ 1329,
134
+ 3963,
135
+ 1330,
136
+ 3977,
137
+ 1331,
138
+ 3962,
139
+ 1332,
140
+ 3953,
141
+ 1333,
142
+ 3961,
143
+ 3955,
144
+ 1334,
145
+ 3956,
146
+ 1335,
147
+ 1336,
148
+ 1337,
149
+ 1338,
150
+ 3942,
151
+ 1339,
152
+ 1340,
153
+ 1341,
154
+ 1342,
155
+ 3945,
156
+ 1343,
157
+ 1344,
158
+ 1345,
159
+ 1346,
160
+ 1347,
161
+ 1348,
162
+ 1349,
163
+ 1350,
164
+ 1351,
165
+ 1352,
166
+ 1353,
167
+ 1354,
168
+ 3975,
169
+ 1357,
170
+ 1358,
171
+ 1362,
172
+ 1364,
173
+ 1365,
174
+ 1366,
175
+ 1367,
176
+ 1384,
177
+ 1385,
178
+ 1386,
179
+ 1387,
180
+ 1388,
181
+ 1389,
182
+ 1390,
183
+ 3978,
184
+ 1391,
185
+ 1730,
186
+ 4114,
187
+ 1731,
188
+ 1732,
189
+ 1733,
190
+ 4107,
191
+ 1734,
192
+ 1735,
193
+ 1736,
194
+ 1737,
195
+ 1738;
196
+ 0.605239,
197
+ 0.605239,
198
+ 0.605239,
199
+ 0.605239,
200
+ 0.208568,
201
+ 0.208568,
202
+ 0.332183,
203
+ 0.332183,
204
+ 0.490972,
205
+ 0.001349,
206
+ 0.378335,
207
+ 0.378335,
208
+ 0.505176,
209
+ 0.547675,
210
+ 0.378478,
211
+ 0.378478,
212
+ 0.520681,
213
+ 0.520681,
214
+ 0.514052,
215
+ 0.514052,
216
+ 0.514052,
217
+ 0.489167,
218
+ 0.489167,
219
+ 0.500779,
220
+ 0.500779,
221
+ 0.344750,
222
+ 0.344750,
223
+ 0.344750,
224
+ 0.444251,
225
+ 0.444251,
226
+ 0.422197,
227
+ 0.422197,
228
+ 0.459563,
229
+ 0.459563,
230
+ 1.000000,
231
+ 1.000000,
232
+ 0.523285,
233
+ 0.702523,
234
+ 1.000000,
235
+ 1.000000,
236
+ 1.000000,
237
+ 1.000000,
238
+ 1.000000,
239
+ 0.754566,
240
+ 0.754566,
241
+ 1.000000,
242
+ 1.000000,
243
+ 1.000000,
244
+ 1.000000,
245
+ 1.000000,
246
+ 0.999998,
247
+ 0.999998,
248
+ 1.000000,
249
+ 1.000000,
250
+ 1.000000,
251
+ 1.000000,
252
+ 1.000000,
253
+ 1.000000,
254
+ 0.937900,
255
+ 0.937900,
256
+ 0.843455,
257
+ 0.843455,
258
+ 1.000000,
259
+ 1.000000,
260
+ 0.692347,
261
+ 0.536598,
262
+ 0.635737,
263
+ 0.793743,
264
+ 1.000000,
265
+ 1.000000,
266
+ 1.000000,
267
+ 1.000000,
268
+ 1.000000,
269
+ 1.000000,
270
+ 1.000000,
271
+ 1.000000,
272
+ 0.562271,
273
+ 1.000000,
274
+ 0.606859,
275
+ 0.525610,
276
+ 0.525610,
277
+ 0.525610,
278
+ 0.505657,
279
+ 0.505657,
280
+ 0.499507,
281
+ 0.499507,
282
+ 0.502042,
283
+ 0.502042,
284
+ 0.502042,
285
+ 0.512201,
286
+ 0.512201,
287
+ 0.512201,
288
+ 0.512201,
289
+ 0.500000,
290
+ 0.500000,
291
+ 0.564140,
292
+ 0.564140,
293
+ 0.499982,
294
+ 0.499982,
295
+ 0.999997,
296
+ 0.999997,
297
+ 1.000000,
298
+ 1.000000,
299
+ 1.000000,
300
+ 1.000000,
301
+ 1.000000,
302
+ 1.000000,
303
+ 1.000000,
304
+ 1.000000,
305
+ 1.000000,
306
+ 1.000000,
307
+ 1.000000,
308
+ 1.000000,
309
+ 1.000000,
310
+ 1.000000,
311
+ 1.000000,
312
+ 0.995135,
313
+ 0.936519,
314
+ 1.000000,
315
+ 0.999529,
316
+ 0.980016,
317
+ 0.999871,
318
+ 0.999950,
319
+ 1.000000,
320
+ 0.951632,
321
+ 0.002571,
322
+ 0.000138,
323
+ 0.003704,
324
+ 0.003704,
325
+ 0.000096,
326
+ 0.000000,
327
+ 0.000217,
328
+ 0.000002,
329
+ 0.000020,
330
+ 0.000376,
331
+ 0.001713,
332
+ 0.017345,
333
+ 0.266756,
334
+ 0.080934,
335
+ 0.226163,
336
+ 0.796931,
337
+ 1.000000,
338
+ 1.000000,
339
+ 1.000000,
340
+ 0.171247,
341
+ 0.501141,
342
+ 0.501141,
343
+ 0.569803,
344
+ 0.914754,
345
+ 0.873090,
346
+ 0.873090,
347
+ 1.000000,
348
+ 1.000000,
349
+ 0.999889,
350
+ 0.999994,
351
+ 0.979129;
352
+ -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;;
353
+ }

3

テキストの追加

2020/07/03 08:53

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -8,4 +8,28 @@
8
8
 
9
9
  ソースはみせないけど、tiny.xというモデルです。変数がグローバルであっても、
10
10
 
11
- 再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
11
+ 再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
12
+
13
+ > Frame Scene_Root {
14
+
15
+
16
+ FrameTransformMatrix {
17
+ 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;;
18
+ }
19
+
20
+ Frame body {
21
+
22
+
23
+ FrameTransformMatrix {
24
+ 1.278853,0.000000,-0.000000,0.000000,0.000000,0.000000,1.123165,0.000000,0.000000,-1.470235,0.000000,0.000000,0.135977,2.027985,133.967667,1.000000;;
25
+ }
26
+
27
+ Frame {
28
+
29
+
30
+ FrameTransformMatrix {
31
+ 1.000000,-0.000000,-0.000000,0.000000,-0.000000,1.000000,0.000000,0.000000,-0.000000,0.000000,1.000000,0.000000,-0.142114,0.000023,-49.556850,1.000000;;
32
+ }
33
+
34
+
35
+ まずこれはなんなのかという

2

文の追加

2020/07/03 08:45

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -5,4 +5,7 @@
5
5
  画像の追加、画像は後で消すんだ
6
6
 
7
7
  Frameについてわからないのでもう一回上げてみる
8
+
8
- ソースはみせないけど
9
+ ソースはみせないけど、tiny.xというモデルです。変数がグローバルであっても、
10
+
11
+ 再帰はつかわずに解きたいです。何をしているのか、よくわからないので。

1

画像の追加

2020/07/03 07:35

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,8 @@
1
1
  モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
2
2
 
3
- だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません
3
+ だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません![イメージ説明](67542d826e70468ec5bb40c82138e331.png)
4
+
5
+ 画像の追加、画像は後で消すんだ
6
+
7
+ Frameについてわからないのでもう一回上げてみる
8
+ ソースはみせないけど