12/08/02 12:54:35.16 u7Ky33VI
確実に見当違い
元々質問者も何を聞きたいのかわかってないっぽいが
毎フレーム現在の回転角に+60度ずつ足せばいいのに
どこかの基準点から自分で60度xNを計算してるっぽい
無駄な努力
56:名前は開発中のものです。
12/08/02 14:47:26.29 rhNtS2Ws
複数のオブジェクトをくっつける場合ってどういう手法がありますか?
hinge joint っていうのがあるらしいんですが、オブジェクトの結合方法(方向とか)に関するパラメータが分かりません
57:名前は開発中のものです。
12/08/02 15:44:52.93 2DAmCHok
>>54
>>55
レスありがとうございます。
自分のイメージとしては…
Quaternion.Slerp( 現在のrotaion, 現在のrotaion+900度, deltaTime );
みたいなことがやりたかったのです。
調べてみたらそもそもQuaternionでは360度以上は表現できないっぽいので
上記のように一発でやるのは無理ぽいことがわかりました。
そこで >>54のリンクを参考にMathf.Lerpで小刻みに合成していく感じで実現できました!
基本的に >>55のような感じなのですが、対象オブジェクトが既に別回転かかっているためにQuaternionで合成処理しています。
function Update(){
rollDegree = Mathf.Lerp(rollDegree, 900, Time.deltaTime);
childchild.transform.rotation *= Quaternion.AngleAxis( rollDegree-rollDegree_old, Vector3.up);
rollDegree_old = rollDegree;
}
58:名前は開発中のものです。
12/08/02 18:20:27.59 +WCKY2Gf
>>57
それchildchildの親回転させれば楽じゃね?
59:名前は開発中のものです。
12/08/02 21:05:53.67 2DAmCHok
>>58
ぶっちゃけ親回転にすれば、オイラー角でできるので考えかたは楽ですねw
でも360度以上回転を考えるとやっぱり>>57と似た感じにはなってしまうかと。
(childchildって名前からして既に階層深めなので更に増やしたくない、って気持ちもありました…)
60:名前は開発中のものです。
12/08/02 21:28:22.57 d5ejNeK9
Unity一通りいじってドラッグだけで色々動かせるのはわかったんですけど
初めてスクリプトに直面したのですが、JavaScriptとC#の2種類使えるらしいですが
スクリプトはどっちを使った方がメリットが大きいとかあるのでしょうか?
61:名前は開発中のものです。
12/08/02 21:54:55.06 CuYBLPxy
迷わずC#
62:名前は開発中のものです。
12/08/03 12:07:52.27 wlTzK8vF
>>59
一応参考までに言っておくけど
0度と360度の回転クオータニオンは同じ値で
今回の場合900度は180度と同じ意味だから0~180度の補間という結果になっていたんだよ
ついでに0~360の値にするには value % 360.0f で
C言語のfmodと同じ値が得られるよ
>>61
簡単なテストならJavaScript
がっつりやりたいならC#
JavaScriptの方が楽だが、C#把握してたほうが効率のいいスクリプトを書けるので
それだったら最初からC#でいいじゃんという結論に至ったよ