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

質問編集履歴

8

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

2019/11/21 09:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,12 +6,11 @@
6
6
  質問2 停止つまり待機中はウエイトを1でいいのですが 歩いてる時walkモーション中はウエイトを1にすると"すり足"?してしまうので0にしたいのですがこの歩いてる時のウエイトの値の設定方法が知りたいです値を変化する方法?ですかね?知りたいです
7
7
 
8
8
  質問3 スクリプトはできそうなものを作っているのか?全く違うわけわからんスクリプトなのか?
9
-  
10
9
 
10
+ 質問4 提示画像のような動作をさせたいのですがIKスクリプトのアルゴリズムがしりたい 
11
11
 
12
-
12
+ ※下の提示画像は[SerializeField]にしてパラメーターをいじったもです。
13
- ![イメージ説明](5fbc96b3515f6df69a02088a29ce2faa.png)
13
+ ![イメージ説明](a803664ce71d4d1d3529e683da2b390d.png)
14
-
15
14
  Player_IK
16
15
  ```ここに言語を入力
17
16
  using System.Collections;

7

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

2019/11/21 09:09

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- モーションブレンドで階段を上り下りするときに必要なモーションの数
1
+ IKを使って階段や坂道、複雑なを上り下りしたい
body CHANGED
@@ -1,16 +1,155 @@
1
- 1、タイトル通りモションブレンを使ってプレイヤーの足元に段差を作り肘を曲げたいのですがモーションブレンドのインペターの設定困っています。これは何選択すればいいのでしょう
1
+ 提示コード作りかけIkスリプトです。ここからどうしたら階段や段差上る処理を作ればいいのか困っています。
2
- ※パラメーターは二つともfloat型です。
3
2
 
4
- 2、モーションはどんな物を用意すればいいのでしょうか?両足の足を出すとき戻すときで4っ必要なのはわかりましたがそのモーションは何で作成すればいいのでしょうか?blender? アニメーションクリップ?その辺が知りたいです。
5
3
 
6
- 少しず分かっきたいのですがネット上情報が少なくって困ってので質問ています。
4
+ 質問1 IKを使うとモーションの毎回計算するという処理ができるので角度や段差はそのど計算し足を綺麗に段差に乗せることが出来るとう仕組みまで調べたのですが知識は正しいのでしょうか?
7
5
 
6
+ 質問2 停止つまり待機中はウエイトを1でいいのですが 歩いてる時walkモーション中はウエイトを1にすると"すり足"?してしまうので0にしたいのですがこの歩いてる時のウエイトの値の設定方法が知りたいです値を変化する方法?ですかね?知りたいです
8
7
 
9
-  追記ですが追記画像のブレンドタイプなどいろいろ触ってみたいのですが歩きから走るブレンド方法はわったのですが
8
+ 質問3 スクリトはできそうものを作っていのか?全く違うわけわかんスクリプトなのか
10
- 待機中などで体の重心を傾けて足元に段差を作る方法が知りたいです。
9
+  
11
10
 
12
11
 
13
- ![イメージ説明](d06d0a65d713eb0be49d6bae2d49a68e.png)
14
12
 
15
- 追記画像
16
- ![イメージ説明](30e185d6a06e93c07acf2fef7d9a021e.png)
13
+ ![イメージ説明](5fbc96b3515f6df69a02088a29ce2faa.png)
14
+
15
+ Player_IK
16
+ ```ここに言語を入力
17
+ using System.Collections;
18
+ using System.Collections.Generic;
19
+ using UnityEngine;
20
+
21
+ public class Player_IK : MonoBehaviour
22
+ {
23
+ Animator ani;
24
+ // public Transform LeftFoot;
25
+ // public Transform RightFoot;
26
+
27
+
28
+ private bool cLeft,cRight;
29
+ private bool s;//IKを実行するかどうか?
30
+ private float f = -0.1f;
31
+ // Start is called before the first frame update
32
+ void Start()
33
+ {
34
+ cRight = cLeft = false;
35
+ s = false;
36
+ ani = GetComponent<Animator>();
37
+
38
+ isRightFootIK = false;
39
+ isLeftFootIK = false;
40
+
41
+ }
42
+
43
+ private Vector3 rightFootPos;
44
+ private Vector3 leftFootPos;
45
+
46
+ private Quaternion rightFootRot;
47
+ private Quaternion leftFootRot;
48
+
49
+ private bool isRightFootIK;
50
+ private bool isLeftFootIK;
51
+
52
+ private Vector3 rayPosoffset = Vector3.up * 0.3f;
53
+ private float maxDistance = 1.0f;
54
+ private float ray_range = 1.0f;
55
+
56
+
57
+ /*ウエイト取得*/
58
+ private float rightFootWeight;
59
+ private float leftFootWeight;
60
+
61
+ // Update is called once per frame
62
+ void Update()
63
+ {
64
+
65
+
66
+
67
+ // rightFootWeight = ani.GetFloat("Right");
68
+ // leftFootWeight = ani.GetFloat("Left");
69
+
70
+
71
+ rightFootWeight = 1;
72
+ leftFootWeight = 1;
73
+
74
+ Debug.Log("righ: " + rightFootWeight);
75
+ Debug.Log("Left: " + leftFootWeight);
76
+
77
+ }
78
+
79
+ private void OnAnimatorIK()
80
+ {
81
+
82
+ Ray r = new Ray(ani.GetIKPosition(AvatarIKGoal.RightFoot) + rayPosoffset, -transform.up);
83
+ RaycastHit rayHit;
84
+
85
+ /*右足のIK*************************/
86
+ if (Physics.Raycast(r, out rayHit, ray_range))
87
+ {
88
+ Debug.DrawRay(ani.GetIKPosition(AvatarIKGoal.RightFoot) + rayPosoffset, -transform.up * ray_range, Color.red);
89
+
90
+ rightFootPos = rayHit.point;
91
+ rightFootRot = Quaternion.FromToRotation(transform.up, rayHit.normal) * transform.rotation;
92
+ isRightFootIK = true;
93
+ }
94
+ else
95
+ {
96
+ isRightFootIK = false;
97
+ }
98
+
99
+
100
+ /*左足のIK*************************/
101
+ r = new Ray(ani.GetIKPosition(AvatarIKGoal.LeftFoot) + rayPosoffset, -transform.up);
102
+
103
+ if (Physics.Raycast(r, out rayHit, ray_range))
104
+ {
105
+ Debug.DrawRay(ani.GetIKPosition(AvatarIKGoal.LeftFoot) + rayPosoffset, -transform.up * ray_range, Color.red);
106
+
107
+ leftFootPos = rayHit.point;
108
+ leftFootRot = Quaternion.FromToRotation(transform.up, rayHit.normal) * transform.rotation;
109
+ isLeftFootIK = true;
110
+ }
111
+ else
112
+ {
113
+ isLeftFootIK = false;
114
+ }
115
+
116
+
117
+ // Debug.DrawLine(RightFoot.position, RightFoot.position + new Vector3(0, f, 0),Color.red);
118
+ // Debug.DrawLine(LeftFoot.position, LeftFoot.position + new Vector3(0, f, 0),Color.blue);
119
+
120
+
121
+
122
+
123
+ if (ani.GetCurrentAnimatorStateInfo(0).IsName("Idle") == true)
124
+ {
125
+
126
+ }
127
+
128
+
129
+ /*左足*/
130
+ if (isLeftFootIK)
131
+ {
132
+ // Debug.Log("left");
133
+ ani.SetIKPositionWeight(AvatarIKGoal.LeftFoot, rightFootWeight);
134
+ ani.SetIKRotationWeight(AvatarIKGoal.LeftFoot, rightFootWeight);
135
+
136
+ ani.SetIKPosition(AvatarIKGoal.LeftFoot, leftFootPos + new Vector3(0,0.1f,0));
137
+ ani.SetIKRotation(AvatarIKGoal.LeftFoot, leftFootRot);
138
+ }
139
+
140
+ /*右足*/
141
+ if (isRightFootIK)
142
+ {
143
+ // Debug.Log("right");
144
+
145
+ ani.SetIKPositionWeight(AvatarIKGoal.RightFoot, leftFootWeight);
146
+ ani.SetIKRotationWeight(AvatarIKGoal.RightFoot, leftFootWeight);
147
+
148
+ ani.SetIKPosition(AvatarIKGoal.RightFoot, rightFootPos + new Vector3(0, 0.1f, 0));
149
+ ani.SetIKRotation(AvatarIKGoal.RightFoot, rightFootRot);
150
+ }
151
+
152
+ }
153
+ }
154
+
155
+ ```

6

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

2019/11/21 07:26

投稿

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

5

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

2019/11/16 07:22

投稿

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

4

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

2019/11/13 08:44

投稿

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

3

文章を編集しました。

2019/11/10 13:45

投稿

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

2

文章を編集しました。

2019/11/10 05:41

投稿

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

1

文章を編集しました。

2019/11/10 02:35

投稿

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