- 1 名前:名無し@キムチ [2017/10/30(月) 05:05:35.00 ID:xnHTCaF3.net]
- フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド31 https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/
- 1005 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 09:35:09.05 ID:VZwsAqll.net]
- なんか面倒な人に絡まれてるなぁ955
新スレ作るか。
- 1006 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 09:36:44.16 ID:VZwsAqll.net]
- 新スレビルド完了です...
【3Dゲームエンジン】Unity質問スレッド33 mevius.5ch.net/test/read.cgi/gamedev/1513643755/
- 1007 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 10:04:53.30 ID:4Od9SmbT.net]
- なぜ <準コテ「キムチ」で「キムヨナ」連呼> みたいなゴミを、素朴に「ゴミ」と言うことや
ぱっと見で文体が同じに見えることを、素朴に「同じに見える」「一方が真似てる」と言うことが 面倒がられなければならないのか? 素朴な書き込みを面倒がり、ゴミ廃棄を面倒がる奴の方が、よっぽど面倒だぜ?
- 1008 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 10:13:49.21 ID:hldyKkrz.net]
- unityにマップを作るtile機能ってあるけど一つのチップセットに対してBoxColliderとかの情報を付けるのってどうすればええんやろ
- 1009 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 12:04:43.40 ID:m7Eb2COO.net]
- >>962
アセットをかうしか無いですよ!
- 1010 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 14:27:52.29 ID:SpU5jUlI.net]
- >>951
正解
- 1011 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 15:16:13.61 ID:ZiJMGaxN.net]
- キチガイがいると迷惑だから分類しないとね
- 1012 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 15:56:19.98 ID:O0snqTpx.net]
- >>952
お前が幼稚園や保育園をお望みならそれでいいんじゃない? まともな小学生以上は自分でググって調べて解決してる そんな内容ばかりだ
- 1013 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 16:33:46.69 ID:4R8uUpaI.net]
- アセットガイジはなんか売ってるんかなぁ…
- 1014 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 18:11:13.26 ID:OC9tHkfS.net]
- >>953
むしろ2DでLookAtさせたいだけならオブジェクトAとBの角度を取って画像をRotateさせるだけでいいんじゃないん?w
- 1015 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 19:22:46.77 ID:Jz5wVrA6.net]
- >>968
そんな難しいことしたくないじゃん
- 1016 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 19:29:46.21 ID:oc7hao2D.net]
- >>968
自分をオブジェクトA Aのposition = transform.position 目標をオブジェクトB Bのposition = target とした場合に、 transform.right = target.position - transform.position と同じ作用になるようにするには、 >>958の方法ではどうなる??
- 1017 名前:名前は開発中のものです。 [2017/12/19(火) 19:59:39.02 ID:IygWzju3.net]
- >>970
オブジェクト間の角度とる関数あるからしらべて
- 1018 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 20:25:38.60 ID:v4JsSdmj.net]
- ベクトル間の角度を出す関数じゃなくて?
ベクトル間の角度だと、原点を中心にした角度になるけど しかも、それで角度を出すと回転の向きがわからないから、 ベクトルの外積を求める必要もあるよね
- 1019 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:09:39.44 ID:v4JsSdmj.net]
- >>968
自分でコードを出してみなよ〜 命題:オブジェクトAの向きを、オブジェクトBの方向へ向ける オブジェクトAの座標は任意(原点とは限らない) オブジェクトAの向きは任意(0度とは限らない) オブジェクトBの座標は任意(原点とは限らない) オブジェクトBの位置はVector3で「target」とする 2Dだから、forward軸をtargetへ向かせるLookAtは使用できない さて、969のコードを超える簡略化ができるのか?!どうか
- 1020 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:16:40.59 ID:m7Eb2COO.net]
- アセットを購入すれば簡単簡単
- 1021 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:17:29.27 ID:v4JsSdmj.net]
- そもそも角度って言っても、
それぞれのベクトルの偏角なのか、2つのベクトルのなす角なのか・・・ Rotate(0, 0, θ)で入れるには、 オブジェクトAからオブジェクトBへ向かうベクトルの偏角じゃないとダメだから、 オブジェクトAのベクトルとオブジェクトBのベクトルのなす角を求める Vector3.Angleを使っても、それじゃA→Bへの原点中心の公転角になっちゃうよ! rotationに入れるにはQuaternionである必要があるし、 オブジェクトAの最初の向きが0度じゃない場合も考慮しないといけないし・・・ どう考えても面倒じゃない??
- 1022 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:59:56.79 ID:v4JsSdmj.net]
- アセットおじさんは、
なんていうアセットで、いくらで、どの機能を使うとできるのかも明記して欲しいね〜 「探せばあるかもよ」じゃね・・・
- 1023 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 00:34:43.35 ID:TUVA4DF6.net]
- >>970
考えてみました。 Aに下記のスクリプトをセットします。 public class A : MonoBehaviour { GameObject obj; Vector3 target, position, direction; void Start () { obj = GameObject.Find ("B"); target = obj.transform.position; position = transform.position; direction = target - position; Invoke ("Rotate", 1.0f); } void Rotate(){ transform.right = direction; ←ここを置き換えるコードです。 } }
- 1024 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 00:39:41.23 ID:TUVA4DF6.net]
- @Quaternion.FromToRotationを使用する方法1
transform.rotation = Quaternion.FromToRotation (Vector3.right, direction); AQuaternion.FromToRotationを使用する方法2 transform.rotation = transform.rotation * Quaternion.FromToRotation (transform.right, direction); BVector3.Angleを使用する方法1 transform.rotation = Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(Vector3.right, direction))) *Vector3.Angle(Vector3.right, direction)); CVector3.Angleを使用する方法2 transform.rotation = transform.rotation * Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(transform.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction));
- 1025 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 00:44:36.57 ID:TUVA4DF6.net]
- DVector3.Angleを使用する方法3(Rotateを使用)
transform.Rotate (0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction)); EMathf.Atan2を使用する方法1(Rotateを使用) transform.Rotate (0, 0, Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg - transform.rotation.eulerAngles.z); FMathf.Atan2を使用する方法2 transform.rotation = Quaternion.AngleAxis(Mathf.Atan2((direction.y, direction.x) * Mathf.Rad2Deg, Vector3.forward); うーん、どうやっても元よりも長いコードになってしまいます。 オブジェクトAの位置が原点だとか、オブジェクトAの向きが無回転だとか、 条件を付ければ、もう少し簡略化できますが・・・
- 1026 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 01:00:49.24 ID:TUVA4DF6.net]
- Quaternion.FromToRotation(A, B)では、
回転方向を含めた回転状態を得られますが、 Vector3.Angle(A, B)では、
- 1027 名前:ベクトル間の角度しかわからず、向きがわかりません。
また、取得される角度は180度以下に限定されるため、 左向きに270度は、右向きに90度かもしれないということです。 回転方向は、Vector3.Cross(A, B)のZ成分が正か負かで判定します。 2Dでは、Mathf.Sign((Vector3.Cross(A, B)).z)でも良いのですが、 3Dでは、回転面がXY平面上とは限らないため、外積ベクトルと 正の向きにしたい軸との内積をとってから符号判定した方が確実です。 Atan2関数は、戻り値がradのため、度に直す必要があります。 また、相対回転であるRotateを使用する場合は、 求めた偏角から、現在の向きの回転角を引いておく必要があります。 rotationはQuaternionのため、eulerAnglesでオイラー角に戻しておき、 Z軸回転成分だけを取り出して減算します。 [] - [ここ壊れてます]
- 1028 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 08:42:36.26 ID:XTZUI7pU.net]
- 969です
>>977-980 詳しく解説ありがとうございました! やっぱり、角度から行こうとすると結構面倒ですね〜
- 1029 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 18:29:13.04 ID:XTZUI7pU.net]
- 汎用性を考えると、Quaternion.FromToRotationは良さそうですね
これは、あるベクトルを別のベクトルにする回転を返すわけだから、 自分の向きを、自分のベクトルから目標とするベクトルへ向ける回転にするわけですか・・・
- 1030 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 22:49:28.74 ID:TUVA4DF6.net]
- >>981
テラシュールブログ tsubakit1.hateblo.jp/entry/2014/08/02/030919 ここに、Quaternion.FromToRotationの使い方がうまくまとまってました。 >>var diff = (target.position - transform.position ).normalized; >>transform.rotation = Quaternion.FromToRotation( Vector3.up, diff); このサイトでは、diffは正規化されているようですが、 基本的に内部で強制的に単位ベクトルになるようなので、 target.position - transform.positioだけで大丈夫そうです。 なお、外積ベクトルを利用する場合は、大きさも影響してきますので、 方向ベクトルは単位ベクトルにしておいたほうが無難です。
- 1031 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 22:56:36.28 ID:TUVA4DF6.net]
- なお、私の方法では、外積ベクトルとZ軸の内積をとっていますが、
最終的に符号のみを取り出しているので、大きさが影響しません。 Vector3.Reflect,Vector3.Project,Vector3.ProjectOnPlaneなど、 単位ベクトルに内積を乗算するタイプの関数では、 必ず正規化して単位ベクトルにしてから代入しないと、 計算結果が変わってきますので、注意が必要です。
- 1032 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 12:35:15.03 ID:rQmWRShb.net]
- /⌒ヽ
く/・ ⌒ヽ すうがくのことわからない | 3 (∪ ̄] く、・ (∩ ̄]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
- 1033 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 13:03:49.54 ID:nBeZymLn.net]
- 算数だぞ。
- 1034 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 14:22:23.93 ID:8qhc65N4.net]
- 確実に高校数学
中学算数でベクトルは習わない(特定進学校は除く)
- 1035 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 14:52:32.83 ID:nBeZymLn.net]
- >>987
つhttps://www.google.co.jp/amp/s/laurier.press/a/E1405072653842
- 1036 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 17:37:17.76 ID:mWsXZ6ft.net]
- 年がいくつでも何処からでも学べるんちゃうんか
- 1037 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 17:41:22.45 ID:ogJEBcpf.net]
- 年寄りは観念が固まってるから、4*4=4+4+4+4とか切り口を変えた柔軟な発想が出来ない
- 1038 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 17:49:58.06 ID:uW9gzElK.net]
- 柔…軟…???
- 1039 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 18:12:39.26 ID:p4DyS94v.net]
- なんだかんだと言ってもITはそれなりの頭がないと出来ない
中学、高校で数学が苦手だった奴にプログラミングはむかない そんな理由で糞IT専門学校卒の底辺IT奴隷だって素質があって他の業種からみれば高給与 まあ糞IT専門学校に逝っても半分以上は素質がなくて資格も
- 1040 名前:取れずIT関連企業にも就職できないんだけど []
- [ここ壊れてます]
- 1041 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 18:43:55.99 ID:d8WQwc80.net]
- Unityのプログラムを、コピペじゃなくて、
自分で考えて、組み立ててコードを書けるってことは、 それなりに数学的な素養があると思うんだよね〜 何も行列とかクォータニオンとかを数学的にきちんと理解していなくても、 「そのメソッドで何ができるか」を理解していれば、 たとえメソッドの内部はブラックボックスでも、それを組み合わせて、 ちゃんと機能するコードが書けるから・・・ ある意味、クラスによるカプセル化と一緒で、 オブジェクト指向の根幹になるんじゃないかな?
- 1042 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 18:52:38.72 ID:d8WQwc80.net]
- もちろん、そのクラスや構造体の中で、
「数学的に何が行われているのか?」を理解していれば、 それを応用して、別のクラスを作ったり、 他の処理に応用することができるようになるとは思うけど・・・ 3D処理(描画じゃなくて動作)で必要なのは、 ベクトル、行列、複素数の拡張であるクォータニオン、 極座標、関数(特に、三角関数)、初等幾何学、 古典物理学(力学)くらいじゃないかな・・・ Unityでは、行列は基本内部処理だけで表に出ないから、 高校の数学UBくらいまでのレベルじゃなかろうか?
- 1043 名前:名前は開発中のものです。 [2017/12/21(木) 19:26:27.42 ID:J5wOBApL.net]
- >>989
>年がいくつでも何処からでも学べるんちゃうんか それを聞く時点でキミはすでに学べない。
- 1044 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 20:31:14.43 ID:MUjb87iC.net]
- そんなんいらね。
三角関数を何となく使えるぐらいで十分。 あとはunityがやってくれる。
- 1045 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 20:41:57.83 ID:m2pWnfBj.net]
- >>989
高校卒業してから20年くらい、今年初めからUnityを始めましたが、 独学でベクトルの外積やクォータニオン演算まで辿り着けたので、 興味さえあれば、何とかなるもんですよ。
- 1046 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 20:52:09.10 ID:m2pWnfBj.net]
- 例えば、物理演算を使用する場合、Unityで設定できるのは、
速度velocityと力AddForce、角速度angularVelocityとトルクTorqueだけです。 (位置positionや角変位rotationは原則いじらないほうが良いです) すると、直線移動や自転だけなら設定が簡単ですが、 公転のような円運動を行うには、物理法則に準じた命令を与える必要があります。 物理演算では、transform.RotateAroundを使えないので、 そういう場合に自分で工夫して実装できるかどうかに関わってくると思います。
- 1047 名前:名前は開発中のものです。 mailto:sage [2017/12/22(金) 00:21:49.04 ID:ko83+b2p.net]
- 一番とっつきにくいのは回転運動だと思います。
Rigidbodyでは、ForceMode.Accelerationがあるので、 加速度Vector3 a(m/s/s)を得たい場合は、 AddForce(a, ForceMode.Acceleration)とするだけ、 角加速度Vector3 aa(rad/s/s)を得たい場合は、 AddTorque(aa, ForceMode.Acceleration)とするだけですが、 Rigidbody2Dでは、ForceMode.Accelerationがないので、 加速度Vector2 a(m/s/s)を得たい場合は、 AddForce(a * mass)としたり、 角加速度float aa(度/s/s)を得たい場合は、 AddTorque(aa * inertia * Mathf.Deg2Rad)とする必要があります。 要するに、ニュートンの運動方程式や、 オイラーの回転運動方程式を使う必要が出てきます。 速度は、2DはVector2 v(m/s)、3DはVector3 v(m/s)で分かりやすいですが、 角速度は、2Dはfloat w(度/s)、3DはVector3 w(rad/s)と単位が変わります。 Torqueではrad単位で入れないと、inertiaと乗算できないので面倒です。
- 1048 名前:名前は開発中のものです。 mailto:sage [2017/12/22(金) 02:24:21.72 ID:BHuKTyia.net]
- オイラーは、ドラマー♪
- 1049 名前:名前は開発中のものです。 mailto:sage [2017/12/22(金) 10:39:11.64 ID:GTvlornd.net]
- 10年は 夢のよう
100年は 夢また夢 1000年は 一瞬の光の矢 過ぎてく時間は怖くない 輝きを失う事が嫌なのです
- 1050 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 53日 5時間 33分 36秒
- 1051 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|