【3Dゲームエンジン】Unity質問スレッド2at GAMEDEV
【3Dゲームエンジン】Unity質問スレッド2 - 暇つぶし2ch42:名前は開発中のものです。
12/08/01 22:57:30.72 81pqrVTL
質問いいでしょうか。
Update内で、Quaternion.Slerpとか使用してキャラクターを回転させているのですが
360度以上回転させることってできますでしょうか?
Quaternionとかrotation周りを調べているのですが、指定方向に回転等はあるのですが
単純にくるくると複数回転さすにはどうしたらいいでしょうか?宜しくお願いします。
(例えば、900(=360x2.5)を指定したら2.5回転してくれたりとか…)

43:名前は開発中のものです。
12/08/01 23:01:11.61 B/JSzTKU
ちょっとわかりませんね…話がかみ合ってない気もするし
uploaderにアップしてくれたら、どこがだめか探してもいいけど?
フォルダをzipにしてもサイズがでかいから、ゲーム制作板の


44:名前は開発中のものです。
12/08/01 23:04:53.30 B/JSzTKU
途中送信
ゲーム制作板のローダーがあるから、
URLリンク(gmdev.xrea.jp)
とかにアップしてみて


45:名前は開発中のものです。
12/08/01 23:08:42.58 B/JSzTKU
>>43>>44>>41あて

46:名前は開発中のものです。
12/08/01 23:36:52.21 vzUV4+G4 BE:606447533-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
>>45
URLリンク(gmdev.xrea.jp)
アップロードしました。
DLしたら報告おねです
なかにあるREADに一応少し書いてあります。
よろしくお願いします。


47:45
12/08/02 00:19:57.63 z+uN7cKl
dlしました がファイル多すぎてどれかわからないです。
シンプルな条件で試してるのかと思った。
ここまで多いとどれがわるいかわかりづらいと思うんですけど。

48:名前は開発中のものです。
12/08/02 00:40:52.92 IPIY/8oE BE:4851576498-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
>>47
すみません。
本当にシンプルな方法で知りたいのですが、
InputManagerにFire1などの操作を登録してキーを割り当て、
scriptでそれを使うためには何をしたらいいでしょうか?
script例:if(Input.GetButtonDown("Fire1")){}
長い時間ありがとうございます。



49:45
12/08/02 00:40:57.03 z+uN7cKl
URLリンク(forum.unity3d.com)
GetKey とGetButtonじゃ違うってだけらしいよ
inputのとこのnameで指定するならGetButtonだって
こんなのに気づかずすみません

50:名前は開発中のものです。
12/08/02 00:57:38.47 IPIY/8oE BE:269532522-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
あ、できました!
こんな単純なところでつまづいてるなんて。。。
ありがとうございます!!


51:名前は開発中のものです。
12/08/02 01:21:05.02 z+uN7cKl
>>50
それは何よりです。
>50に気づかず、メール送ってしまいました。それは無視してください
そこにも書いたけど、コンソールにエラーなり警告が大抵出ます。
window>コンソールで開きぱなしにして置いた方がいいですよ。
今回はGetKeyにしてたみたいですが、コンパイルは通るけどそんなキーないよってコンソール上で言ってくれますから。

52:名前は開発中のものです。
12/08/02 06:44:18.20 rEpAXm8E
iOS用ゲーム作ってるんだが、なんかタッチ入力が
数フレーム遅れて感知されない?
アクションゲームだとこの遅れはマズイなぁ。


53:名前は開発中のものです。
12/08/02 09:11:41.34 ZJKkySgj
>>27
もう解決してるのかもしれんが一応
eの手前で丸めるってのが何をしてるのか分からんかったが
e付いてるのって指数標記だから
2.091013e-05だったら数値としては0.00002091013ってところだろ
小数点以下3桁とかなら0でいいと思うんだが

54:名前は開発中のものです。
12/08/02 11:54:40.83 0jUi//rM
>>42
試してないけどもMathf.Lerpで代用できるみたい?
URLリンク(answers.unity3d.com)
さくっと見ただけなので、見当違いだったらすまん。

55:名前は開発中のものです。
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#でいいじゃんという結論に至ったよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch