質問編集履歴
10
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,22 +1,4 @@
|
|
1
1
|
directxに
|
2
2
|
D3DXMATRIXA16というものがあり TransformMatrix, OffsetMatrix,CombindMatrixなどと名前をつけて
|
3
3
|
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、ご指摘のとおり4*4の行列で計算するのが、正しいようです。なお行列の一番下は移動にあたると思うのですが、行列の計算が出てくるたびにちまちまいじるのが嫌なので
|
4
|
-
ひとまず保留することにしました
|
4
|
+
ひとまず保留することにしました。
|
5
|
-
。胴体の合成行列をTransD*worldなので、
|
6
|
-
右上腕フレームの合成行列TransC*TransD*worldなので、
|
7
|
-
|
8
|
-
```opengl
|
9
|
-
|
10
|
-
SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
11
|
-
|
12
|
-
```skinweights (親かどうかは考慮していません。)
|
13
|
-
SkinWeights {
|
14
|
-
"Bip01_L_Clavicle";//フレーム名
|
15
|
-
2;//ウェイト数
|
16
|
-
150,//頂点番号
|
17
|
-
3512;
|
18
|
-
0.303157,//ウェイト
|
19
|
-
0.303157;
|
20
|
-
1.253361,-0.000002,0.254069,0.000000,-0.218659,-0.223923,1.078679,0.000000,0.058231,-1.440720,-0.287275,0.000000,-8.131670,62.204407,-2.611076,1.000000;; //オフセット行列
|
21
|
-
}
|
22
|
-
```
|
9
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,27 +7,6 @@
|
|
7
7
|
|
8
8
|
```opengl
|
9
9
|
|
10
|
-
float px; float py; float pz;
|
11
|
-
|
12
|
-
px=Mesh_tiny[3*a[0]+0];
|
13
|
-
py=Mesh_tiny[3*a[0]+1];
|
14
|
-
pz=Mesh_tiny[3*a[0]+2];
|
15
|
-
|
16
|
-
|
17
|
-
float qx,qy,qz;
|
18
|
-
|
19
|
-
|
20
|
-
qx=cos(angle*M_PI/180)*px+0*py+sin(angle*M_PI/180)*pz;
|
21
|
-
qy=0*px+1*py+0*pz;
|
22
|
-
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
23
|
-
|
24
|
-
float Bip01_L_Clavicle[]={
|
25
|
-
-0.185356,0.308957,0.932839,
|
26
|
-
-0.499811,-0.846968,0.181203,
|
27
|
-
0.846069,-0.432656,0.311411,
|
28
|
-
// -12.374969,4.006883,8.346215
|
29
|
-
};
|
30
|
-
|
31
10
|
SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
32
11
|
|
33
12
|
```skinweights (親かどうかは考慮していません。)
|
8
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
32
32
|
|
33
|
-
```skinweights
|
33
|
+
```skinweights (親かどうかは考慮していません。)
|
34
34
|
SkinWeights {
|
35
35
|
"Bip01_L_Clavicle";//フレーム名
|
36
36
|
2;//ウェイト数
|
7
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,76 +1,43 @@
|
|
1
|
-
directxに
|
2
|
-
D3DXMATRIXA16というものがあり TransformMatrix, OffsetMatrix,CombindMatrixなどと名前をつけて
|
3
|
-
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、
|
4
|
-
ひとまず保留することにしました
|
5
|
-
。胴体の合成行列をTransD*worldなので、
|
6
|
-
右上腕フレームの合成行列TransC*TransD*worldなので、
|
7
|
-
|
8
|
-
```opengl
|
9
|
-
|
10
|
-
float px; float py; float pz;
|
11
|
-
|
12
|
-
px=Mesh_tiny[3*a[0]+0];
|
13
|
-
py=Mesh_tiny[3*a[0]+1];
|
14
|
-
pz=Mesh_tiny[3*a[0]+2];
|
15
|
-
|
16
|
-
|
17
|
-
float qx,qy,qz;
|
18
|
-
|
19
|
-
|
20
|
-
qx=cos(angle*M_PI/180)*px+0*py+sin(angle*M_PI/180)*pz;
|
21
|
-
qy=0*px+1*py+0*pz;
|
22
|
-
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
qz=-1.470235*qz;
|
45
|
-
//Bip01_L_Clavicle
|
46
|
-
qx=-1.261525934928*qx;
|
47
|
-
//qy=-2.628411560409*qy;
|
48
|
-
qz=0.138206451025*qz;
|
49
|
-
|
50
|
-
|
51
|
-
//idow
|
52
|
-
qx=qx+0.135977-0.142114;
|
53
|
-
qy=qy+2.027985+0.000023;
|
54
|
-
qz=qz+133.967667-49.556850;
|
55
|
-
|
56
|
-
glVertex3f(qx,qy,qz);
|
57
|
-
```
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
//計算後の合成行列 //qy=-2.628411560409*qy;のコメントをはずすと、
|
62
|
-
|
63
|
-
|
64
|
-
で合成行列をいれるのは駄目だとおもうのですが、//スキニング行列の計算SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
65
|
-
|
66
|
-
```skinweights
|
67
|
-
SkinWeights {
|
68
|
-
"Bip01_L_Clavicle";//フレーム名
|
69
|
-
2;//ウェイト数
|
70
|
-
150,//頂点番号
|
71
|
-
3512;
|
72
|
-
0.303157,//ウェイト
|
73
|
-
0.303157;
|
74
|
-
1.253361,-0.000002,0.254069,0.000000,-0.218659,-0.223923,1.078679,0.000000,0.058231,-1.440720,-0.287275,0.000000,-8.131670,62.204407,-2.611076,1.000000;; //オフセット行列
|
75
|
-
}
|
76
|
-
```
|
1
|
+
directxに
|
2
|
+
D3DXMATRIXA16というものがあり TransformMatrix, OffsetMatrix,CombindMatrixなどと名前をつけて
|
3
|
+
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、ご指摘のとおり4*4の行列で計算するのが、正しいようです。なお行列の一番下は移動にあたると思うのですが、行列の計算が出てくるたびにちまちまいじるのが嫌なので
|
4
|
+
ひとまず保留することにしました
|
5
|
+
。胴体の合成行列をTransD*worldなので、
|
6
|
+
右上腕フレームの合成行列TransC*TransD*worldなので、
|
7
|
+
|
8
|
+
```opengl
|
9
|
+
|
10
|
+
float px; float py; float pz;
|
11
|
+
|
12
|
+
px=Mesh_tiny[3*a[0]+0];
|
13
|
+
py=Mesh_tiny[3*a[0]+1];
|
14
|
+
pz=Mesh_tiny[3*a[0]+2];
|
15
|
+
|
16
|
+
|
17
|
+
float qx,qy,qz;
|
18
|
+
|
19
|
+
|
20
|
+
qx=cos(angle*M_PI/180)*px+0*py+sin(angle*M_PI/180)*pz;
|
21
|
+
qy=0*px+1*py+0*pz;
|
22
|
+
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
23
|
+
|
24
|
+
float Bip01_L_Clavicle[]={
|
25
|
+
-0.185356,0.308957,0.932839,
|
26
|
+
-0.499811,-0.846968,0.181203,
|
27
|
+
0.846069,-0.432656,0.311411,
|
28
|
+
// -12.374969,4.006883,8.346215
|
29
|
+
};
|
30
|
+
|
31
|
+
SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
32
|
+
|
33
|
+
```skinweights
|
34
|
+
SkinWeights {
|
35
|
+
"Bip01_L_Clavicle";//フレーム名
|
36
|
+
2;//ウェイト数
|
37
|
+
150,//頂点番号
|
38
|
+
3512;
|
39
|
+
0.303157,//ウェイト
|
40
|
+
0.303157;
|
41
|
+
1.253361,-0.000002,0.254069,0.000000,-0.218659,-0.223923,1.078679,0.000000,0.058231,-1.440720,-0.287275,0.000000,-8.131670,62.204407,-2.611076,1.000000;; //オフセット行列
|
42
|
+
}
|
43
|
+
```
|
6
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
directxに
|
2
2
|
D3DXMATRIXA16というものがあり TransformMatrix, OffsetMatrix,CombindMatrixなどと名前をつけて
|
3
3
|
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、今度から3*3で計算することにしました。なお行列の一番下は移動にあたると思うのですが、行列の計算が出てくるたびにちまちまいじるのが嫌なので
|
4
|
-
ひとまず保留することにしました
|
4
|
+
ひとまず保留することにしました
|
5
5
|
。胴体の合成行列をTransD*worldなので、
|
6
6
|
右上腕フレームの合成行列TransC*TransD*worldなので、
|
7
7
|
|
5
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -55,16 +55,12 @@
|
|
55
55
|
|
56
56
|
glVertex3f(qx,qy,qz);
|
57
57
|
```
|
58
|
-
以下のような画像になります。
|
59
|
-

|
60
58
|
|
61
59
|
|
60
|
+
|
62
61
|
//計算後の合成行列 //qy=-2.628411560409*qy;のコメントをはずすと、
|
63
|
-

|
64
|
-
逆さになってしまいます。画像が透けてておかしいのはどこか
|
65
|
-
がおかしんでしょう
|
66
|
-
気にしないことにします。
|
67
62
|
|
63
|
+
|
68
64
|
で合成行列をいれるのは駄目だとおもうのですが、//スキニング行列の計算SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
69
65
|
|
70
66
|
```skinweights
|
4
文の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,13 +30,9 @@
|
|
30
30
|
0.846069,-0.432656,0.311411,
|
31
31
|
// -12.374969,4.006883,8.346215
|
32
32
|
};
|
33
|
-
float Bip01_L_UpperArm[]= {
|
34
|
-
0.640423,0.117307,-0.759011,
|
35
|
-
0.064965,0.976451,0.205728,
|
36
|
-
0.765270,-0.181062,0.617720,
|
37
|
-
// 31.000208,-0.000032,-0.000004,
|
38
|
-
};
|
39
33
|
|
34
|
+
|
35
|
+
|
40
36
|
//syukushou
|
41
37
|
qx=0.003*qx;
|
42
38
|
qy=0.003*qy;
|
3
文の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -65,7 +65,8 @@
|
|
65
65
|
|
66
66
|
//計算後の合成行列 //qy=-2.628411560409*qy;のコメントをはずすと、
|
67
67
|

|
68
|
-
逆さになってしまいます。画像が透けてておかしいのは
|
68
|
+
逆さになってしまいます。画像が透けてておかしいのはどこか
|
69
|
+
がおかしんでしょう
|
69
70
|
気にしないことにします。
|
70
71
|
|
71
72
|
で合成行列をいれるのは駄目だとおもうのですが、//スキニング行列の計算SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
2
文の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,12 +21,7 @@
|
|
21
21
|
qy=0*px+1*py+0*pz;
|
22
22
|
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
23
23
|
|
24
|
-
float qx,qy,qz;
|
25
24
|
|
26
|
-
|
27
|
-
qx=cos(angle*M_PI/180)*px+0*py+sin(angle*M_PI/180)*pz;
|
28
|
-
qy=0*px+1*py+0*pz;
|
29
|
-
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
30
25
|
|
31
26
|
|
32
27
|
float Bip01_L_Clavicle[]={
|
1
文の改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
フレームモデルをだしたい
|
body
CHANGED
File without changes
|