質問編集履歴
41
書式の改善
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
書式の改善
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の行列なので
|
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
書式の改善
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
書式の改善
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
|
-
|
10
|
+
offsetA*TransA*TransB*TransC*TransD*world
|
11
|
+
offsetB*TransB*TransC*TransD*world
|
12
|
+
offsetC*TransC*TransD*world
|
36
|
-
|
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
書式の改善
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};
|
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
|
-
|
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
文の変更
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
文の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -71,4 +71,4 @@
|
|
71
71
|
|
72
72
|
初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
|
73
73
|
|
74
|
-
|
74
|
+
すいません。お願いします。
|
34
文の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -71,4 +71,4 @@
|
|
71
71
|
|
72
72
|
初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
|
73
73
|
|
74
|
-
わかるのならお願いします。
|
74
|
+
わかるのならわかる範囲でお願いします。
|
33
文の追加
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
文の変更
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
文の変更
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
|
-
|
10
|
+
offsetCは4*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
|
-
```
|
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
|
-
|
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
|
39
|
+
float Bip01_R_UpperArm_FrameTransformMatrix
|
40
|
+
[16]=
|
56
|
-
|
41
|
+
{ 0.532891,0.645602,0.547015,0.000000,
|
57
|
-
|
42
|
+
-0.380503,0.760229,-0.526564,0.000000,
|
58
|
-
|
43
|
+
-0.755807,0.072461,0.650772,0.000000,
|
59
|
-
|
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
文の変更
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
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -65,9 +65,7 @@
|
|
65
65
|
やったこと、試してみたこと....数値を適当にかけてみた。
|
66
66
|
右上腕をあげようとした。
|
67
67
|
|
68
|
-
|
69
|
-
が
|
70
|
-
|
68
|
+
画像を消した。あとで追記する可能性も。しないかもいれないけど。
|
71
69
|
とか何かしらのポーズになる気がする
|
72
70
|
(引用 3D格闘ゲームプログラミング)
|
73
71
|
ロジックうんぬん分からないのでわかる人がいましたらお願いします。
|
28
文の変更
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
文の改善
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
|
が
|
69
70
|

|
70
71
|
とか何かしらのポーズになる気がする
|
26
文の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,14 +1,13 @@
|
|
1
|
-
|
1
|
+
Frameの要素を使いモデルを変形していきたいです。
|
2
2
|
|
3
|
-
|
3
|
+
しかし、何をすればいいのか分かりません。
|
4
|
-
どういった手順で計算すればいいのか、手順が知りたいです。
|
4
|
+
どういった手順で計算すればいいのか、手順が知りたいです。
|
5
5
|
|
6
|
-
間違えてるかも知れないし、理解できないので消す。
|
7
6
|
|
8
|
-
|
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
|
-
|
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
|
-
|
68
|
+
が
|
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
|
-
|
69
|
+

|
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
|
-
|
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
|
-
|
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
|
-
|
72
|
+
ロジックうんぬん分からないのでわかる人がいましたらお願いします。
|
420
|
-
}
|
421
|
-
```
|
25
文の改善
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
文の改善
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
|
-
|
7
|
+
--------
|
47
|
-
|
48
8
|
の様になると思う。ただしworld座標系が抜けている。
|
49
9
|
|
50
10
|
|
23
文の追加
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
文の追加
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+
|
56
|
+
=pos*skin6*weight6+skin4*weight4+skin0*weight0+skin1*weight1
|
57
57
|
> 引用テキスト
|
58
58
|
|
59
59
|
変換後の法線ベクトル(法線はどうでもいい)
|
21
文の追加
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
文の追加
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
文の追加
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
文の追加
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
|
-
|
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)
|
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
文の追加
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
文の追加
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;;
|
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
文の追加
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
文の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
|
2
2
|
|
3
|
+
だけど、何をすればいいのか分かりません。
|
3
|
-
|
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
文の追加
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
文の追加
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
文の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,416 +1,3 @@
|
|
1
1
|
モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
|
2
2
|
|
3
|
-
だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません!
|
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
行列を整えた
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
|
-
|
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
|
-
|
33
|
+
0.135977,2.027985,133.967667,1.000000;;
|
28
34
|
}
|
29
35
|
|
30
36
|
Frame {
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
41
|
+
-0.142114,0.000023,-49.556850,1.000000;;
|
35
42
|
}
|
36
43
|
|
37
44
|
|
9
文の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
再帰はつかわずに解きたいです。何をしているのか、よくわからないので。
|
12
12
|
|
13
13
|
|
14
|
-
以下が算出
|
14
|
+
以下が算出で使いたいxファイルの一部です。
|
15
15
|
|
16
16
|
> Frame Scene_Root {
|
17
17
|
|
8
文の追加
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
文の追加
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
文の追加
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
xファイルのFrameについて
|
1
|
+
xファイルのFrameについて算出方法がわかりません。
|
body
CHANGED
File without changes
|
5
文の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -262,92 +262,145 @@
|
|
262
262
|
0.635737,
|
263
263
|
0.793743,
|
264
264
|
1.000000,
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
0.
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
0.
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
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
文の追加
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
テキストの追加
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
文の追加
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
画像の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,3 +1,8 @@
|
|
1
1
|
モデルは白いままですが、Frameの要素を使いモデルを変形していきたいです。
|
2
2
|
|
3
|
-
だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません
|
3
|
+
だけど、何をすればいいのか分かりません。どういった手順で計算すればいいのか、手順が知りたいです。何にたしあわせて、どこのAPIに入力すればいいのでしょうか。APIに入力するかも分かりません。詳細が分からないので詳細な質問ができず申し訳ありません
|
4
|
+
|
5
|
+
画像の追加、画像は後で消すんだ
|
6
|
+
|
7
|
+
Frameについてわからないのでもう一回上げてみる
|
8
|
+
ソースはみせないけど
|