質問編集履歴

8

文章と提示画像を変更しました。

2019/11/21 09:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,17 +14,15 @@
14
14
 
15
15
  質問3 スクリプトはできそうなものを作っているのか?全く違うわけわからんスクリプトなのか?
16
16
 
17
+
18
+
17
-  
19
+ 質問4 提示画像のような動作をさせたいのですがIKスクリプトのアルゴリズムがしりたい 
20
+
21
+
22
+
18
-
23
+ ※下の提示画像は[SerializeField]にしてパラメーターをいじったもです。
19
-
20
-
21
-
22
-
23
-
24
-
24
+
25
- ![イメージ説明](5fbc96b3515f6df69a02088a29ce2faa.png)
25
+ ![イメージ説明](a803664ce71d4d1d3529e683da2b390d.png)
26
-
27
-
28
26
 
29
27
  Player_IK
30
28
 

7

上質な回答がなかなか得られず回答に質問を付け足すだけの場所になっているため大幅にタイトルと文章を編集しました。

2019/11/21 09:09

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- モーションブレンドで階段を上り下りするときに必要なモーションの数
1
+ IKを使って階段や坂道、複雑なを上り下りしたい
test CHANGED
@@ -1,31 +1,309 @@
1
- 1、タイトル通りモションブレンを使ってプレイヤーの足元に段差を作り肘を曲げたいのですがモーションブレンドのインペターの設定困っています。これは何選択すればいいのでしょう
2
-
3
- ※パラメーターは二つともfloat型です。
4
-
5
-
6
-
7
- 2、モーションはどんな物を用意ればのでしょうか?両の足を出き戻すとき4っ必要なはわかりましたモーション何で作成すればのでしょうか?blender? アニメーションクリップ?その辺が知りたいです。
8
-
9
-
10
-
11
- 少しず分かったいのですがネッ情報少なくって困っている質問して
12
-
13
-
14
-
15
-
16
-
17
-  追記ですが追記画像のブレンドタイプなどいろいろ触ってみたいのですが歩きから走るなどのブレンド方法はわかったのですが
18
-
19
- 待機中などで体の重心を傾けて足元に段差を作る方法が知りたいです。
20
-
21
-
22
-
23
-
24
-
25
- ![イメージ説明](d06d0a65d713eb0be49d6bae2d49a68e.png)
26
-
27
-
28
-
29
- 追記画像
30
-
31
- ![イメージ説明](30e185d6a06e93c07acf2fef7d9a021e.png)
1
+ 提示コード作りかけIkスリプトです。ここからどうしたら階段や段差上る処理を作ればいいのか困っています。
2
+
3
+
4
+
5
+
6
+
7
+ 質問1 IKを使うとモーションの毎回計算るとう処理ができるので角度や段差はそのつど計算足を綺麗に段差に乗せることが来るいう仕組みま調べたです知識正しいのでしょうか?
8
+
9
+
10
+
11
+ 質問2 停止まり待機中はウエイトを1でいいのですが 歩いる時walkモーション中はウエイトを1にすると"すり足"?してしまうので0にしたいのですがこの歩いてる時のウエイトの値の設定方法知りたです値を変化す方法?すかね?知りた
12
+
13
+
14
+
15
+ 質問3 スクリプトはできそうなものを作っているのか?全く違うわけわからんスクリプトなのか?
16
+
17
+  
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+ ![イメージ説明](5fbc96b3515f6df69a02088a29ce2faa.png)
26
+
27
+
28
+
29
+ Player_IK
30
+
31
+ ```ここに言語を入力
32
+
33
+ using System.Collections;
34
+
35
+ using System.Collections.Generic;
36
+
37
+ using UnityEngine;
38
+
39
+
40
+
41
+ public class Player_IK : MonoBehaviour
42
+
43
+ {
44
+
45
+ Animator ani;
46
+
47
+ // public Transform LeftFoot;
48
+
49
+ // public Transform RightFoot;
50
+
51
+
52
+
53
+
54
+
55
+ private bool cLeft,cRight;
56
+
57
+ private bool s;//IKを実行するかどうか?
58
+
59
+ private float f = -0.1f;
60
+
61
+ // Start is called before the first frame update
62
+
63
+ void Start()
64
+
65
+ {
66
+
67
+ cRight = cLeft = false;
68
+
69
+ s = false;
70
+
71
+ ani = GetComponent<Animator>();
72
+
73
+
74
+
75
+ isRightFootIK = false;
76
+
77
+ isLeftFootIK = false;
78
+
79
+
80
+
81
+ }
82
+
83
+
84
+
85
+ private Vector3 rightFootPos;
86
+
87
+ private Vector3 leftFootPos;
88
+
89
+
90
+
91
+ private Quaternion rightFootRot;
92
+
93
+ private Quaternion leftFootRot;
94
+
95
+
96
+
97
+ private bool isRightFootIK;
98
+
99
+ private bool isLeftFootIK;
100
+
101
+
102
+
103
+ private Vector3 rayPosoffset = Vector3.up * 0.3f;
104
+
105
+ private float maxDistance = 1.0f;
106
+
107
+ private float ray_range = 1.0f;
108
+
109
+
110
+
111
+
112
+
113
+ /*ウエイト取得*/
114
+
115
+ private float rightFootWeight;
116
+
117
+ private float leftFootWeight;
118
+
119
+
120
+
121
+ // Update is called once per frame
122
+
123
+ void Update()
124
+
125
+ {
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ // rightFootWeight = ani.GetFloat("Right");
134
+
135
+ // leftFootWeight = ani.GetFloat("Left");
136
+
137
+
138
+
139
+
140
+
141
+ rightFootWeight = 1;
142
+
143
+ leftFootWeight = 1;
144
+
145
+
146
+
147
+ Debug.Log("righ: " + rightFootWeight);
148
+
149
+ Debug.Log("Left: " + leftFootWeight);
150
+
151
+
152
+
153
+ }
154
+
155
+
156
+
157
+ private void OnAnimatorIK()
158
+
159
+ {
160
+
161
+
162
+
163
+ Ray r = new Ray(ani.GetIKPosition(AvatarIKGoal.RightFoot) + rayPosoffset, -transform.up);
164
+
165
+ RaycastHit rayHit;
166
+
167
+
168
+
169
+ /*右足のIK*************************/
170
+
171
+ if (Physics.Raycast(r, out rayHit, ray_range))
172
+
173
+ {
174
+
175
+ Debug.DrawRay(ani.GetIKPosition(AvatarIKGoal.RightFoot) + rayPosoffset, -transform.up * ray_range, Color.red);
176
+
177
+
178
+
179
+ rightFootPos = rayHit.point;
180
+
181
+ rightFootRot = Quaternion.FromToRotation(transform.up, rayHit.normal) * transform.rotation;
182
+
183
+ isRightFootIK = true;
184
+
185
+ }
186
+
187
+ else
188
+
189
+ {
190
+
191
+ isRightFootIK = false;
192
+
193
+ }
194
+
195
+
196
+
197
+
198
+
199
+ /*左足のIK*************************/
200
+
201
+ r = new Ray(ani.GetIKPosition(AvatarIKGoal.LeftFoot) + rayPosoffset, -transform.up);
202
+
203
+
204
+
205
+ if (Physics.Raycast(r, out rayHit, ray_range))
206
+
207
+ {
208
+
209
+ Debug.DrawRay(ani.GetIKPosition(AvatarIKGoal.LeftFoot) + rayPosoffset, -transform.up * ray_range, Color.red);
210
+
211
+
212
+
213
+ leftFootPos = rayHit.point;
214
+
215
+ leftFootRot = Quaternion.FromToRotation(transform.up, rayHit.normal) * transform.rotation;
216
+
217
+ isLeftFootIK = true;
218
+
219
+ }
220
+
221
+ else
222
+
223
+ {
224
+
225
+ isLeftFootIK = false;
226
+
227
+ }
228
+
229
+
230
+
231
+
232
+
233
+ // Debug.DrawLine(RightFoot.position, RightFoot.position + new Vector3(0, f, 0),Color.red);
234
+
235
+ // Debug.DrawLine(LeftFoot.position, LeftFoot.position + new Vector3(0, f, 0),Color.blue);
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+ if (ani.GetCurrentAnimatorStateInfo(0).IsName("Idle") == true)
246
+
247
+ {
248
+
249
+
250
+
251
+ }
252
+
253
+
254
+
255
+
256
+
257
+ /*左足*/
258
+
259
+ if (isLeftFootIK)
260
+
261
+ {
262
+
263
+ // Debug.Log("left");
264
+
265
+ ani.SetIKPositionWeight(AvatarIKGoal.LeftFoot, rightFootWeight);
266
+
267
+ ani.SetIKRotationWeight(AvatarIKGoal.LeftFoot, rightFootWeight);
268
+
269
+
270
+
271
+ ani.SetIKPosition(AvatarIKGoal.LeftFoot, leftFootPos + new Vector3(0,0.1f,0));
272
+
273
+ ani.SetIKRotation(AvatarIKGoal.LeftFoot, leftFootRot);
274
+
275
+ }
276
+
277
+
278
+
279
+ /*右足*/
280
+
281
+ if (isRightFootIK)
282
+
283
+ {
284
+
285
+ // Debug.Log("right");
286
+
287
+
288
+
289
+ ani.SetIKPositionWeight(AvatarIKGoal.RightFoot, leftFootWeight);
290
+
291
+ ani.SetIKRotationWeight(AvatarIKGoal.RightFoot, leftFootWeight);
292
+
293
+
294
+
295
+ ani.SetIKPosition(AvatarIKGoal.RightFoot, rightFootPos + new Vector3(0, 0.1f, 0));
296
+
297
+ ani.SetIKRotation(AvatarIKGoal.RightFoot, rightFootRot);
298
+
299
+ }
300
+
301
+
302
+
303
+ }
304
+
305
+ }
306
+
307
+
308
+
309
+ ```

6

文章とタイトルを編集しました。

2019/11/21 07:26

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- モーションブレンドで階段を上る体の重心を傾ける方法
1
+ モーションブレンドで階段を上り下りすときに必要なモーション
test CHANGED
@@ -1,6 +1,14 @@
1
- タイトル通りモーションブレンドを使ってプレイヤーの足元に段差を作り足の肘を曲げたいのですがモーションブレンドのインペクターの設定で困っています。これは何を選択すればいいのでしょうか?
1
+ 1、タイトル通りモーションブレンドを使ってプレイヤーの足元に段差を作り足の肘を曲げたいのですがモーションブレンドのインペクターの設定で困っています。これは何を選択すればいいのでしょうか?
2
2
 
3
3
  ※パラメーターは二つともfloat型です。
4
+
5
+
6
+
7
+ 2、モーションはどんな物を用意すればいいのでしょうか?両足の足を出すとき戻すときで4っ必要なのはわかりましたがそのモーションは何で作成すればいいのでしょうか?blender? アニメーションクリップ?その辺が知りたいです。
8
+
9
+
10
+
11
+ 少しずつ分かってきたいのですがネット上の情報が少なくって困っているので質問しています。
4
12
 
5
13
 
6
14
 

5

文章とタイトルを変更しました。

2019/11/16 07:22

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- モーションブレンドのインスペクター設定方法が知りたい。キャラクタの足元の場合
1
+ モーションブレンドで階段を上る等重心を傾ける方法
test CHANGED
@@ -1,9 +1,23 @@
1
1
  タイトル通りモーションブレンドを使ってプレイヤーの足元に段差を作り足の肘を曲げたいのですがモーションブレンドのインペクターの設定で困っています。これは何を選択すればいいのでしょうか?
2
-
3
-
4
2
 
5
3
  ※パラメーターは二つともfloat型です。
6
4
 
7
5
 
8
6
 
7
+
8
+
9
+ ※ 追記ですが追記画像のブレンドタイプなどいろいろ触ってみたいのですが歩きから走るなどのブレンド方法はわかったのですが
10
+
11
+ 待機中などで体の重心を傾けて足元に段差を作る方法が知りたいです。
12
+
13
+
14
+
15
+
16
+
9
17
  ![イメージ説明](d06d0a65d713eb0be49d6bae2d49a68e.png)
18
+
19
+
20
+
21
+ 追記画像
22
+
23
+ ![イメージ説明](30e185d6a06e93c07acf2fef7d9a021e.png)

4

タイトルと文章を編集しました。

2019/11/13 08:44

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- モーションブレンドを使ってキャラクタの足元に段差を作りたい
1
+ モーションブレンドのインスペクターの設定方法が知りたい。キャラクタの足元の場合
test CHANGED
@@ -1,13 +1,9 @@
1
- 画像足を地面付けて右を少し肘を曲げるという処理を作りたいのですが、参考サイトのどのモーションブレンドを使え作れるのでしょうか?
1
+ タイトル通りモーションブレンドを使ってプレイヤーの足元に段差作り肘を曲げたいのですがモーションブレンドのインペクターの設定で困っています。これは何選択すれいいのでしょうか?
2
-
3
- ソースコードはまだ書いていませんので載せたいのですが載せませんでした。
4
2
 
5
3
 
6
4
 
7
- 参考サイト: http://light11.hatenadiary.com/entry/2019/04/18/224048
5
+ ※パラメーターは二つともfloat型です。
8
6
 
9
7
 
10
8
 
11
-
12
-
13
- ![イメージ説明](a9c2f5ccf456451edc24f06ac1d4bab7.png)
9
+ ![イメージ説明](d06d0a65d713eb0be49d6bae2d49a68e.png)

3

文章を編集しました。

2019/11/10 13:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  画像の左足を地面付けて右足を少し肘を曲げるという処理を作りたいのですが、参考サイトのどのモーションブレンドを使えば作れるのでしょうか?
2
2
 
3
- ソースコードはまだ書いていませんので載せたいのですが載せませんでした
3
+ ソースコードはまだ書いていませんので載せたいのですが載せませんでした
4
4
 
5
5
 
6
6
 

2

文章を編集しました。

2019/11/10 05:41

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- モーションブレンドを使って足元に段差を作りたい
1
+ モーションブレンドを使ってキャラクタの足元に段差を作りたい
test CHANGED
@@ -1,6 +1,6 @@
1
1
  画像の左足を地面付けて右足を少し肘を曲げるという処理を作りたいのですが、参考サイトのどのモーションブレンドを使えば作れるのでしょうか?
2
2
 
3
- ソースコードはまだ書いていませんので載せたいのですが載せませんでした
3
+ ソースコードはまだ書いていませんので載せたいのですが載せませんでした
4
4
 
5
5
 
6
6
 

1

文章を編集しました。

2019/11/10 02:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,17 +1,13 @@
1
- 画像の左足を地面付けて右足を少し肘を曲げるという処理を作りたいのですがどうすればモーションブレンド作れるのでしょうか?調べましたが歩きではなく段差であり階段を上り下りする処理を作りたいです。
1
+ 画像の左足を地面付けて右足を少し肘を曲げるという処理を作りたいのですが、参考サイトのモーションブレンドを使えば作れるのでしょうか?
2
+
3
+ ソースコードはまだ書いていませんので載せたいのですが載せませんでした。
4
+
5
+
6
+
7
+ 参考サイト: http://light11.hatenadiary.com/entry/2019/04/18/224048
2
8
 
3
9
 
4
10
 
5
11
 
6
12
 
7
- 参考サイト: http://kan-kikuchi.hatenablog.com/entry/BlendTree
8
-
9
- 参考サイト2: https://qiita.com/ELIXIR/items/9bb5c5ae3ea52be4c0b7
10
-
11
- 参考サイト3: http://light11.hatenadiary.com/entry/2019/04/18/224048
12
-
13
-
14
-
15
13
  ![イメージ説明](a9c2f5ccf456451edc24f06ac1d4bab7.png)
16
-
17
- 提示スクリプトを載せたいのですがまだないも書いていないので載せません。