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

質問編集履歴

4

追記

2019/09/24 08:30

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -103,7 +103,20 @@
103
103
  transform.position = target.position;
104
104
  transform.position -= Vector3.forward * distance;
105
105
  ```
106
+  追記。
107
+  クォータニオンとベクトルの掛け算について考えました。
108
+ ・質問2-1。
109
+ this.transform.rotationにベクトルdirを掛けたものは、
110
+ ```C#
111
+  this.transform.rotation * dir
112
+ ```
113
+  「thisのローカル軸を基準に伸びるベクトルdir」という認識で合っていますか?
114
+  そう考えると、
115
+ ・質問2-2。
116
+ 「『Rotation(クォータニオン) * dir(ベクトル)』は、『Rotationの回転軸を基準に伸びるベクトルdir』」
117
+  という認識で合っていますか?
106
118
 
119
+
107
120
  ・質問3。
108
121
   質問2の時点のコードが理解できていないので、さらにその先もわからないのですが、
109
122
  ```C#

3

文章整形

2019/09/24 08:30

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -79,7 +79,7 @@
79
79
  thisのY軸の角度から、targetのY軸の角度に変化していくものかと思います。
80
80
  また、Heightに関する処理のコードも理解できていると思います。
81
81
 
82
- ### 質問
82
+ ### 質問
83
83
 
84
84
  ・質問1。
85
85
   理解しているつもりですが、念のため質問です。

2

文章整形

2019/09/23 18:54

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -75,7 +75,8 @@
75
75
  ```C#
76
76
  var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);
77
77
  ```
78
+ currentRotationは、Y軸周りの角度に関して、
78
- currentRotationは、Y軸周りの角度に関して、thisのY軸の角度から、targetのY軸の角度に変化していくものかと思います。
79
+ thisのY軸の角度から、targetのY軸の角度に変化していくものかと思います。
79
80
  また、Heightに関する処理のコードも理解できていると思います。
80
81
 
81
82
  ### 質問。
@@ -93,8 +94,10 @@
93
94
  transform.position -= currentRotation * Vector3.forward * distance;
94
95
  ```
95
96
   まず、1行目は、thisをtargetの位置に持ってきているかと思いますが、
96
-  ここから、2行目で、「currentRotation * Vector3.forward * distance」の分だけ移動させているかと思うのですが、
97
+  ここから、2行目で、「currentRotation * Vector3.forward * distance」の分だけ
98
+  移動させているかと思うのですが、
97
-  Vector3.forward * distanceに、左からcurrentRotation * を掛けているのが、どのようなベクトルになるかがわかりません。
99
+  Vector3.forward * distanceに、左からcurrentRotation * を掛けているのが、
100
+  どのようなベクトルになるかがわかりません。
98
101
   仮にコードが下記であれば、イメージは付きます。
99
102
  ```C#
100
103
  transform.position = target.position;

1

文章整形

2019/09/23 18:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -107,7 +107,8 @@
107
107
   transform.LookAt(target);
108
108
  ```
109
109
   これのコードをコメントアウトするのとしないのとでは、カメラの動きが大きく変わる理由がわかりません。
110
-  「transform.LookAt(target);」これ自体のコードは、thisのZ方向の向きをtargetに向かせるだけの処理かと思うのですが、
110
+  「transform.LookAt(target);」これ自体のコードは、
111
+  thisのZ方向の向きをtargetに向かせるだけの処理かと思うのですが、
111
112
   これをコメントアウトするのとしないのとでは、なぜこんなにも処理が大きく変わってしまうのでしょうか?
112
113
 
113
114
  ・ゲーム実行前。
@@ -118,12 +119,13 @@
118
119
  ・LookAtをコメントアウトしてゲームを実行した場合。
119
120
  その場で、targetの方向に向きました。
120
121
  currentRotationでは、thisのZ軸の向きを、targetのZ軸の向きに合わせていたかと思うのですが、
121
- thisのZ軸の向きがtargetのZ軸の向きと合っていないというのも、質問2に関係することかと思いますが、わかりません。
122
+ thisのZ軸の向きがtargetのZ軸の向きと合っていないというのも、
123
+ 質問2に関係することかと思いますが、わかりません。
122
124
  ![イメージ説明](299ceb06735545def52ee7fb5de484c0.png)
123
125
 
124
126
  ・LookAtを有効にした場合。
125
127
   図のオレンジ色の矢印の軌跡をゆっくり描いて最終的に図のようになりました。
126
128
   今度はthisのZ軸の向きがtargetのZ軸の向きに合っているようです。
127
-  ただ、thisのZ方向の向きをtargetに向かせるだけの「transform.LookAt(target);」の処理を有効にしただけのはずなのに、
129
+  ただ、thisのZ方向の向きをtargetに向かせるだけの「transform.LookAt(target);」の処理を
128
-  なぜ急にオレンジ色の矢印の軌跡移動をするようになったのかわかりません。
130
+  有効にしただけのはずのに、なぜ急にオレンジ色の矢印の軌跡移動をするようになったのかわかりません。
129
131
  ![イメージ説明](8ddb5ba22210c9704ed5e22030d8c280.png)