質問編集履歴
10
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,23 +1,5 @@
|
|
1
1
|
directxに
|
2
2
|
D3DXMATRIXA16というものがあり TransformMatrix, OffsetMatrix,CombindMatrixなどと名前をつけて
|
3
3
|
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、ご指摘のとおり4*4の行列で計算するのが、正しいようです。なお行列の一番下は移動にあたると思うのですが、行列の計算が出てくるたびにちまちまいじるのが嫌なので
|
4
|
-
ひとまず保留することにしました
|
4
|
+
ひとまず保留することにしました。
|
5
|
-
。胴体の合成行列をTransD*worldなので、
|
6
|
-
右上腕フレームの合成行列TransC*TransD*worldなので、
|
7
5
|
|
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
|
-
```
|
23
|
-
|
9
書式の改善
test
CHANGED
File without changes
|
test
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
書式の改善
test
CHANGED
File without changes
|
test
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
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,151 +1,44 @@
|
|
1
1
|
directxに
|
2
|
-
|
3
2
|
D3DXMATRIXA16というものがあり TransformMatrix, OffsetMatrix,CombindMatrixなどと名前をつけて
|
4
|
-
|
5
|
-
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、
|
3
|
+
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、ご指摘のとおり4*4の行列で計算するのが、正しいようです。なお行列の一番下は移動にあたると思うのですが、行列の計算が出てくるたびにちまちまいじるのが嫌なので
|
6
|
-
|
7
4
|
ひとまず保留することにしました
|
8
|
-
|
9
5
|
。胴体の合成行列をTransD*worldなので、
|
10
|
-
|
11
6
|
右上腕フレームの合成行列TransC*TransD*worldなので、
|
12
7
|
|
13
|
-
|
14
|
-
|
15
8
|
```opengl
|
16
|
-
|
17
9
|
|
18
|
-
|
19
10
|
float px; float py; float pz;
|
20
11
|
|
21
|
-
|
22
|
-
|
23
12
|
px=Mesh_tiny[3*a[0]+0];
|
24
|
-
|
25
13
|
py=Mesh_tiny[3*a[0]+1];
|
26
|
-
|
27
14
|
pz=Mesh_tiny[3*a[0]+2];
|
28
|
-
|
29
|
-
|
30
|
-
|
31
15
|
|
32
16
|
|
33
17
|
float qx,qy,qz;
|
34
18
|
|
35
|
-
|
36
|
-
|
37
19
|
|
38
|
-
|
39
20
|
qx=cos(angle*M_PI/180)*px+0*py+sin(angle*M_PI/180)*pz;
|
40
|
-
|
41
21
|
qy=0*px+1*py+0*pz;
|
42
|
-
|
43
22
|
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
44
23
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
24
|
float Bip01_L_Clavicle[]={
|
54
|
-
|
55
25
|
-0.185356,0.308957,0.932839,
|
56
|
-
|
57
26
|
-0.499811,-0.846968,0.181203,
|
58
|
-
|
59
27
|
0.846069,-0.432656,0.311411,
|
60
|
-
|
61
28
|
// -12.374969,4.006883,8.346215
|
62
|
-
|
63
29
|
};
|
64
30
|
|
31
|
+
SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
65
32
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
//syukushou
|
72
|
-
|
73
|
-
qx=0.003*qx;
|
74
|
-
|
75
|
-
qy=0.003*qy;
|
76
|
-
|
77
|
-
qz=0.003*qz;
|
78
|
-
|
79
|
-
//計算後の合成行列...数値がまちがってても知らない。
|
80
|
-
|
81
|
-
//doutai frame
|
82
|
-
|
83
|
-
|
33
|
+
```skinweights
|
84
|
-
|
85
|
-
|
34
|
+
SkinWeights {
|
86
|
-
|
87
|
-
qz=-1.470235*qz;
|
88
|
-
|
89
|
-
|
35
|
+
"Bip01_L_Clavicle";//フレーム名
|
90
|
-
|
91
|
-
qx=-1.261525934928*qx;
|
92
|
-
|
93
|
-
//qy=-2.628411560409*qy;
|
94
|
-
|
95
|
-
qz=0.138206451025*qz;
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
//
|
36
|
+
2;//ウェイト数
|
102
|
-
|
103
|
-
qx=qx+0.135977-0.142114;
|
104
|
-
|
105
|
-
qy=qy+2.027985+0.000023;
|
106
|
-
|
107
|
-
qz=qz+133.967667-49.556850;
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
37
|
+
150,//頂点番号
|
112
|
-
|
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
|
+
}
|
113
43
|
```
|
114
44
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
//計算後の合成行列 //qy=-2.628411560409*qy;のコメントをはずすと、
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
で合成行列をいれるのは駄目だとおもうのですが、//スキニング行列の計算SkininMatrix=OffsetMatrix*combineMatrixでcombineMatrixが合成行列でOffsetMatrixがウエイトの最後の16個の数値だからです。その後はどうしたらいいかよくわかりません。フレームモデルの構成ができるかた教えてください。(引用3D格闘ゲームプログラミング)
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
```skinweights
|
132
|
-
|
133
|
-
SkinWeights {
|
134
|
-
|
135
|
-
"Bip01_L_Clavicle";//フレーム名
|
136
|
-
|
137
|
-
2;//ウェイト数
|
138
|
-
|
139
|
-
150,//頂点番号
|
140
|
-
|
141
|
-
3512;
|
142
|
-
|
143
|
-
0.303157,//ウェイト
|
144
|
-
|
145
|
-
0.303157;
|
146
|
-
|
147
|
-
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;; //オフセット行列
|
148
|
-
|
149
|
-
}
|
150
|
-
|
151
|
-
```
|
6
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
そのまま掛け算で計算しているのですが、openglにはなさそう?なので、今度から3*3で計算することにしました。なお行列の一番下は移動にあたると思うのですが、行列の計算が出てくるたびにちまちまいじるのが嫌なので
|
6
6
|
|
7
|
-
ひとまず保留することにしました
|
7
|
+
ひとまず保留することにしました
|
8
8
|
|
9
9
|
。胴体の合成行列をTransD*worldなので、
|
10
10
|
|
5
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,9 +112,7 @@
|
|
112
112
|
|
113
113
|
```
|
114
114
|
|
115
|
-
以下のような画像になります。
|
116
115
|
|
117
|
-
![イメージ説明](616e691e4124ed24bbea16ba23113378.png)
|
118
116
|
|
119
117
|
|
120
118
|
|
@@ -122,13 +120,7 @@
|
|
122
120
|
|
123
121
|
//計算後の合成行列 //qy=-2.628411560409*qy;のコメントをはずすと、
|
124
122
|
|
125
|
-
![イメージ説明](a4a92ac93622c1bb059f6b9bc0797814.png)
|
126
123
|
|
127
|
-
逆さになってしまいます。画像が透けてておかしいのはどこか
|
128
|
-
|
129
|
-
がおかしんでしょう
|
130
|
-
|
131
|
-
気にしないことにします。
|
132
124
|
|
133
125
|
|
134
126
|
|
4
文の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,17 +62,9 @@
|
|
62
62
|
|
63
63
|
};
|
64
64
|
|
65
|
-
float Bip01_L_UpperArm[]= {
|
66
65
|
|
67
|
-
0.640423,0.117307,-0.759011,
|
68
66
|
|
69
|
-
0.064965,0.976451,0.205728,
|
70
67
|
|
71
|
-
0.765270,-0.181062,0.617720,
|
72
|
-
|
73
|
-
// 31.000208,-0.000032,-0.000004,
|
74
|
-
|
75
|
-
};
|
76
68
|
|
77
69
|
|
78
70
|
|
3
文の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -132,7 +132,9 @@
|
|
132
132
|
|
133
133
|
![イメージ説明](a4a92ac93622c1bb059f6b9bc0797814.png)
|
134
134
|
|
135
|
-
逆さになってしまいます。画像が透けてておかしいのは
|
135
|
+
逆さになってしまいます。画像が透けてておかしいのはどこか
|
136
|
+
|
137
|
+
がおかしんでしょう
|
136
138
|
|
137
139
|
気にしないことにします。
|
138
140
|
|
2
文の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -44,17 +44,7 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
-
float qx,qy,qz;
|
48
47
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
qx=cos(angle*M_PI/180)*px+0*py+sin(angle*M_PI/180)*pz;
|
54
|
-
|
55
|
-
qy=0*px+1*py+0*pz;
|
56
|
-
|
57
|
-
qz=-sin(angle*M_PI/180)*px+0*py+cos(angle*M_PI/180)*pz;
|
58
48
|
|
59
49
|
|
60
50
|
|
1
文の改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
フレームモデルをだしたい
|
test
CHANGED
File without changes
|