[過去ログ]
【3Dゲームエンジン】Unity質問スレッド32 (1002レス)
【3Dゲームエンジン】Unity質問スレッド32 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
825: 名前は開発中のものです。 [sage] 2017/12/12(火) 18:36:56.62 ID:w86KIWp6 >>807 >>808 >>809 ありがとうございます! 両方やってみました Quaternion Q; Vector3 axis, Vdeg, Vrad; float angle, t; Rigidbody rb; void Start () { rb = GetComponent < Rigidbody > (); Vdeg = new Vector3(45, 30, 0); Vrad = new Vector3(45, 30, 0) * Mathf.Deg2Rad; Q = rb.rotation; } http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/825
826: 名前は開発中のものです。 [sage] 2017/12/12(火) 18:37:14.48 ID:w86KIWp6 void FixedUpdate () { t = Time.time; if (t == 0) { rb.angularVelocity = Vrad; } else if (t == 1.0f) { Debug.Log ("t=" + t); Debug.Log ("angularVelocity:" + rb.rotation.eulerAngles); rb.angularVelocity = Vector3.zero; //angle = Vrad.magnitude * Mathf.Rad2Deg; //axis = Vrad.normalized angle = Vdeg.magnitude; axis = Vdeg.normalized; rb.rotation = Quaternion.AngleAxis (a
ngle, axis); Debug.Log ("AngleAxis:" + rb.rotation.eulerAngles); rb.rotation = Quaternion.Euler(Vdeg); Debug.Log ("Euler1:" + rb.rotation.eulerAngles); rb.rotation = Q * Quaternion.Euler(Vdeg); Debug.Log ("Euler2:" + rb.rotation.eulerAngles); rb.rotation = Quaternion.Euler(Vdeg) * Q; Debug.Log ("Euler3:" + rb.rotation.eulerAngles); } } http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/826
827: 名前は開発中のものです。 [sage] 2017/12/12(火) 18:41:32.25 ID:w86KIWp6 結果です! angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad を入力すると、 ?angularVelocity:Vector3(42.4, 37.4, 15.0) 1秒ピッタリで止めるには、FixedUpdate内でないとダメのようですね Invoke("Stop", 1.0f)で呼び出すと、 angularVelocity:Vector3(43.1, 38.6, 15.7)と 1フレーム分くらいの遅延が生じる模様・・・ ?AngleAxis:Vector3(42.4, 37.4, 15.0) ?Euler1:Vector3(45, 30, 0) ?Euler2:Vector3(45, 30, 0) ?Eul
er3:Vector3(45, 30, 0) angularVelocityをEulerでQuaternionに入れちゃうと、 角速度による回転結果のQuaternionと少し違うようです・・・ AngleAxisでQuaternionに入れる方が正しいみたいですね http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/827
828: 名前は開発中のものです。 [sage] 2017/12/12(火) 18:52:30.96 ID:w86KIWp6 >>816 回転が勝手に減速する話は本当ですか? AngularDrag = 0にしてない・・・とかではなくて?? RigidbodyをangularVelocityやAddTorqueで回転させて、 1秒ごとにangularVelocityを表示させても、 回転速度は落ちてないようなのですが・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/828
829: 名前は開発中のものです。 [sage] 2017/12/12(火) 20:43:24.56 ID:s3bcy12n >>826 RigidbodyもRigidbody2Dも、 LinearDragは0が初期値だけど、 AngularDragは0.05が初期値なのが、 気に入らないということでは? http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/829
830: 名前は開発中のものです。 [sage] 2017/12/12(火) 20:43:27.01 ID:WuPRAOqq 今までモーションは、簡単だからmmdで作ってたけどx軸とy軸の計算違うような…… blenderに乗り換えた方がいいのだろうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/830
831: 名前は開発中のものです。 [sage] 2017/12/12(火) 20:56:14.28 ID:+nER52Ex はい http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/831
832: 名前は開発中のものです。 [sage] 2017/12/12(火) 21:01:44.29 ID:WuPRAOqq やっぱか…… blenderの勉強してくるわ。 mmd使うとか俺ってほんとにバカ…… http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/832
833: 名無し@キムチ [] 2017/12/12(火) 21:17:33.27 ID:pZVPZZmh >>832 Blenderには気を付けたほうがいい Blender上では問題なくモーションしてても、unityに取り込んで動かすと、手が体に食い込んだりしているから。 何度か行ったり来たりする必要があるw http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/833
834: 名前は開発中のものです。 [sage] 2017/12/12(火) 22:25:16.08 ID:oOD9NLJB blender でもやっぱり同じようなこと起きると思うよ 表現力に不満がないならMMDにしとき http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/834
835: 名前は開発中のものです。 [sage] 2017/12/12(火) 22:32:44.76 ID:9L2xhVzt else ifまで読んだ そんなか入るの?! http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/835
836: 名前は開発中のものです。 [sage] 2017/12/13(水) 00:01:44.95 ID:/jokcbje >>827 最初の回転状態が、 rotatiin =Quaternion.identityであれば、 1: rotation = Quaternion 2: rotation = rotation * Quaternion 3: rotation = Quaternion * rotation 1-3は全て同じ結果になります。 position = Vector3.zeroの場合、 1: position = Vector3 2: position = position + Vector3 1-2が同じ結果なのと一緒です。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/836
837: 名前は開発中のものです。 [sage] 2017/12/13(水) 00:07:16.00 ID:/jokcbje rotationの場合も、positionの場合も、 1は、角変位や位置の絶対指定、 2-3は、角変位や位置の相対指定です。 rotatiin =Quaternion.identityでない場合、 position = Vector3.zeroでない場合、 1と、2-3で、結果が変わってきます。 しかも、rotationの場合、 2: rotation * Quaternionと 3: Quaternion * rotationでも、結果が変わってきます。 追加するQuaternionによる角変位の回転軸を、 transform軸を基準にした回転にする場合は2になり、 キャンバスのVect
or3軸を基準にした回転にする場合は3になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/837
838: 名前は開発中のものです。 [sage] 2017/12/13(水) 00:35:37.82 ID:/jokcbje >>825-827 Invokeが呼び出しの際に1フレーム遅れるとわかっているのであれば、 1フレーム前の時間で呼び出させば大丈夫ですよ。 void Start () { rb.angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad; Invoke ("Stop", 1 - Time.fixedDeltaTime); ←1フレーム前に呼び出し } void Stop () { Debug.Log ("1秒後のrotation:" + rb.rotation.eulerAngles); rb.angularVelocity = Vector3.zero; } 「1秒後のrotation:Ve
ctor3(42.4, 37.4, 15.0)」が出ましたよ。 >>809の方法で求めた場合と一致する値です。 rb.angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad angle = (rb.angularVelocity).magnitude * Mathf.Rad2Deg V = new Vector3(45, 30, 0) angle = V.magnitudeでも同じ結果になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/838
839: 名前は開発中のものです。 [sage] 2017/12/13(水) 06:09:25.65 ID:EBksqhAl >>834 そうなのか…… 大きい移動とかはスクリプトで制御するしかないのか。 ありがとう http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/839
840: 名前は開発中のものです。 [sage] 2017/12/13(水) 18:54:39.99 ID:+IrYaRns 趣味でUnity使ってゲーム制作してる人と友達になる方法教えてください http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/840
841: 名前は開発中のものです。 [sage] 2017/12/13(水) 18:59:16.17 ID:w+IYDO+A お断りします http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/841
842: 名前は開発中のものです。 [sage] 2017/12/13(水) 19:00:06.72 ID:EBksqhAl ツイッターでよくね? 現実で探そうとしてもなかなか見つからんもんだぞ。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/842
843: 名前は開発中のものです。 [sage] 2017/12/13(水) 19:11:19.37 ID:6lJsdJ22 transformのposition, rotation, scaleって、 なんでtransform.position,transform.rotation,transform.lossyscale になっていて、transform.scaleじゃないの?? http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/843
844: 名前は開発中のものです。 [sage] 2017/12/13(水) 19:23:08.89 ID:+IrYaRns >>842 日本の活発な交流サイトとかはなさそうですね…ありがとうございます http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/844
845: 名前は開発中のものです。 [sage] 2017/12/13(水) 19:54:49.63 ID:IotT1rVx >>844 ツイッター FacebookのUnity寄り合い所 あとはリアルのイベント ゲームジャムやエンジニア向け勉強会に参加して交流、名刺交換、SNS垢の相互フォローなどすれば簡単に知り合いは増える ちゃんと進捗をSNS上で報告すれば質問とかも答えてもらえる イベントを探すならdoorkeeper、atnd、peatix http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/845
846: 名前は開発中のものです。 [sage] 2017/12/13(水) 20:48:15.04 ID:/jokcbje >>843 transform.lossyscale = Vector3.Scale(transform.parent.localscale, transform.localscale) つまり transform.lossyscale.x = transform.parent.localscale.x * transform.localscale.x transform.lossyscale.y = transform.parent.localscale.y * transform.localscale.y transform.lossyscale.z = transform.parent.localscale.z * transform.localscale.z localscaleは、インスペクター上で設定するスケールで、 lossyScaleは、自分のlocalsc
aleと親のlocalscaleの各成分の積になってます。 本当のscaleは、回転が入ると、Vector3ではなくて、3×3行列になってしまいます。 lossyScaleの場合は、回転前のスケールで、Vector3で表せるからだと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/846
847: 名前は開発中のものです。 [sage] 2017/12/13(水) 20:58:06.39 ID:Kxr7McTA >>846 おお、中の人?w http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/847
848: 名前は開発中のものです。 [sage] 2017/12/13(水) 22:56:29.30 ID:/jokcbje Unityでは、アフィン変換を行う4×4行列であるMatrix4x4が、 TRS(Vector3 position, Quaternion rotation, Vector3 lossy scale) によって構成されていて、 スケーリング→回転→移動の順に適用するようにしています。 最初にスケーリングを行うことで、 3×3行列の対角成分しか使わず、Vector3で済みます。 RigidbodyのinertiaTensorも一緒で、 本来は3×3行列が必要な慣性モーメントテンソルを、 慣性主軸系に限定することで、対角成分しか使わず、 Vector3の主慣
性モーメントで済むようにしています。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/848
849: 名前は開発中のものです。 [sage] 2017/12/13(水) 23:01:57.61 ID:/jokcbje >>847 Unity自体はそれほど詳しくないですが、 物理演算系とか、3D数学が専門なので。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/849
850: 名前は開発中のものです。 [sage] 2017/12/13(水) 23:04:15.99 ID:bbkFRctl 神になった気分だ。 スキルアップした今、どんなジャンルの仮想世界を作れと言われても その詳細さえ教えてもらえれば 一瞬でどんなデータ構造/アルゴリズムで作ればいいかや どんなデザインパターンを使えばいいかが 一瞬で頭にひらめき、スラスラとコードを書きはじめることができ、 予期せぬバグとかがなければ短期間でそのソフトやツールを一人で作る自信がある。 この予期せぬバグとはふだん使ってない昔やったプログラミング言語の細かい文法関連のことだけで
それはすぐ見直してカンを取り戻せばいいから全く問題ない。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/850
851: 名前は開発中のものです。 [sage] 2017/12/13(水) 23:09:45.76 ID:Kxr7McTA >>850 いいから、お前は早く作れ!w http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/851
852: 名前は開発中のものです。 [sage] 2017/12/13(水) 23:11:16.24 ID:Kxr7McTA >>849 専門?3d系プログラマ? http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/852
853: 名前は開発中のものです。 [sage] 2017/12/13(水) 23:36:39.33 ID:fbUZmcUU transform.lossyscale.x = transform.parent.locssyScale.x * transform.localscale.x じゃないのか? http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/853
854: 名前は開発中のものです。 [sage] 2017/12/14(木) 00:23:40.49 ID:AuQKwcV0 >>853 そうですね。 parentがrootとは限らないので、parentのlossyscaleじゃないとダメですね。 末枝側へ変換が累積していきますから。 親オブジェクト-子オブジェクトの2者関係だと、 親オブジェクトのlossyscale = localscaleなので、両方localscaleで大丈夫ですけど。 親オブジェクト-子オブジェクト-孫オブジェクトの3者関係だと、 孫オブジェクトの親オブジェクトである子オブジェクトのlossyscaleは、 親オブジェクトのlocalscale * 子オブジェクトのlo
calscaleになってますから、 孫オブジェクトのlossyscale = 子オブジェクトのlossyscale * 孫オブジェクトのlocalscale = (親オブジェクトのlossyscale * 子オブジェクトのlocalscale) * 孫オブジェクトのlocalscale = 親オブジェクトのlocalscale * 子オブジェクトのlocalscale * 孫オブジェクトのlocalscale >>852 仕事じゃなくて学問の方で。 うっかりしてましたが、UnityはCamelCaseだから、localScale,lossyScaleが正しいのでしたね。 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/854
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 148 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s