【3Dゲームエンジン】Unity質問スレッド32 at GAMEDEV
【3Dゲームエンジン】Unity質問スレッド32 - 暇つぶし2ch922:名前は開発中のものです。
17/12/15 16:32:05.45 kzY3QNw/.net
>>879
ゲームデザインにもよるけど
そのアイテムの効果とお化けとの相互関係が分かるような物なら多分大丈夫かなぁ アイテム説明とかも結構重要だけども。

923:名前は開発中のものです。
17/12/15 16:54:14.50 bO73tzHJ.net
アイテム説明が一番確実


924:だわな むしろ必須じゃないか?



925:名前は開発中のものです。
17/12/15 20:05:01.07 c63jfGrC.net
transform.LookAtだと、どうしてもオブジェクトのforward軸が対象を向いちゃう
そうじゃなくて、オブジェクトのup軸を対象に向けたいんだけど、一体どうすれば・・・?
transform.LookAtでオブジェクトのforward軸を対象に向けて、
その後にtransform.Rotateでx軸で90度して、up軸をforwardへ向けているんだけど、
2段階になっちゃって、無駄が多いし、その瞬間動作が表示されちゃう
オブジェクトとtransform軸の対応を変更できれば、
オブジェクトのup軸方向を、forward軸に設定したいんだけど・・・

926:名前は開発中のものです。
17/12/15 20:51:06.18 PCtIHB7r.net
おぶじえくを最初から傾けておくか、小オブジェクトで対応するか、いくらでも方法あるだろうね。
ルックアット使わずにやるのも有りだし。

927:名前は開発中のものです。
17/12/15 23:29:48.61 nw+wySXa.net
>>884
目標の座標をVector3 targetとすると、
transform.right = targetでいけませんか?
transform.LookAt(target) は、
transform.forward = target と同じになるはずです。

928:名前は開発中のものです。
17/12/15 23:37:17.53 nw+wySXa.net
もっとも汎用性のある方法は、
向き(transform.rotation)を、
向けたい軸(Vector3.right)を向かせたい相手(target)へ向ける回転
Quaternion.FromToRotation にしてしまう方法かと思います。
transform.rotation = Quaternion.FromToRotation(Vector3.right, target)
になります。
例えば、左側をtargetに向けたい場合、
Vector3.right を、- Vector3.right に変更します。
(Vector3.right = - target でも勿論できます)
ただ、Vector3.oneをtargetに向ける回転は、
transform軸への代入ではできず、
上記の汎用法を使うのが良いと思います。

929:名前は開発中のものです。
17/12/15 23:38:56.71 nw+wySXa.net
>>884
読み間違えました。
up軸を向けるのでしたね。
①transform.up = target
②transform.rotation = Quaternion.FromToRotation(Vector3.up, target)

930:名前は開発中のものです。
17/12/16 01:09:49.63 yxJiRP9K.net
先生、お元気ですか?
ゲームの世界は感覚的すぎて戸惑います。
学び舎では多くを教わりましたが、教わった通りに自分が成長できているか分かりません。
ぼくは、自分の理想の世界観を語れるほどゲームを知らないということを知りました。
惹かれます。
ゲームを、もっと知りたいです。

931:名前は開発中のものです。
17/12/16 02:04:26.56 hBjssZ70.net
>>889
どこかで見た文章だけど、元ネタが思い出せない・・・

932:名前は開発中のものです。
17/12/16 05:13:21.04 nt3lwpZi.net
>>883
文字で説明しないと伝わらないUIはデザインとしてゴミ以下

933:名前は開発中のものです。
17/12/16 10:52:27.48 rc5ijf27.net
質問です
友人がウインドウズで9人対9人のオンラインゲームを作りたいと言ってます
それはつまり18人がオンライン接続してゲームするわけですが
そんなことUnityでやれますか?

934:ダーク王鍬大使
17/12/16 12:23:08.13 finBREYt.net
出来まふよ(^^

935:名前は開発中のものです。
17/12/16 14:06:22.45 OPi28kIP.net
何でできないって思うんだろうな

936:名前は開発中のものです。
17/12/16 14:10:10.05 2jMajkmZ.net
Unityは出来るけど彼らには出来ない
悲しいけどこれ、ゲーム制作なのよね

937:名前は開発中のものです。
17/12/16 15:56:35.74 fmqmdkMD.net
無料で利用できる範囲は同時接続20人まで
21人~50人まで月額4200円
51人~200人まで月額15000円

938:名前は開発中のものです。
17/12/16 16:08:28.62 ovrxOZck.net
パーソナル版の使用条件として収益が~ドル以下みたいな規約がありますが、
あれは自己申告なのでしょうかそれとも向こうでも逐一判断できる状態なんでしょうか。

939:名前は開発中のものです。
17/12/16 16:56:22.84 OPi28kIP.net
>>897
判断できる状態ってどんな状態?
自己申告だけどものすごく稼いでた


940:ら嫌でも目に留まる



941:名前は開発中のものです。
17/12/16 17:44:22.66 YMI0KZPt.net
「人生はゲームのようにプレーしろ。真理は恐ろしいものではない。」

942:名無し@キムチ
17/12/16 19:19:52.45 ODGviKVk.net
>>888
>up軸を向ける
up軸を相手に向けるというのが、当方にはどんな状態なのか、ピンとこないです。
具体的には頭のてっぺんを相手に向けるということなのですか?
それはどんなシチュエーションのゲームなんだろう?
これから相手に頭突きをかますとか?それなら、頭だけを下げればいいわけだし・・・
申し訳ないが、まるで映像が浮かんできません・・・www

943:名前は開発中のものです。
17/12/16 22:30:34.88 zgsa9dPV.net
落ちものパズルを作成していて画面上部にオブジェクトを出現させて横軸のマウスの動きについてきてクリックでオブジェクトが落下。
というような仕様にしたいのですが、ランダムにオブジェクトを作成して画面上部に固定というのが出来ません。これの解決法が見つかりません。。。
どうかご教授お願いします。

944:名前は開発中のものです。
17/12/16 22:50:27.94 hBjssZ70.net
例えば、太陽を中心に地球が公転をする時のようなイメージで、
常に同じ面(赤道面)を太陽に向けて公転する場合は、forwardを太陽に向かせればよいけど、
太陽の真上に北極星をおいて、北極側の地軸を常に北極星に向かせたまま公転する場合は、
up軸を北極星に向ける必要がある
(実際の地球はそんな回転はしないけど、そういう状況を作りたいときに必要かも)

945:名前は開発中のものです。
17/12/16 22:58:57.30 hBjssZ70.net
あるいは、飛行機の宙返り飛行かも?!
普通、飛行機の前後にforward軸をとるはず
transform.position += Vector3.forwardで前へ進み、
taransform.RotateionAroundで、上空に設定したループ中心回りを公転して宙返り
その際、飛行機の背中(上下のup軸)はループ中心を向けていないといけない

946:名前は開発中のものです。
17/12/16 23:03:43.75 yxJiRP9K.net
人生は神ゲーだ。
本気でがんばるとぎりぎり倒せるように絶妙のバランス調節がされた敵。
単純作業じゃ効率が悪いけど、工夫次第でどんどん効率を上げられる経験値システム。
リセット不可の緊張感。でもシレンとかよりずっと死ににくいからあんま気にする必要なし。つーか普通のゲームでもリセットなんて邪道じゃん。
全てのキャラが深い人間性と歴史を持って登場する、圧倒的リアリティ。
グラフィックが綺麗すぎ。多分、無限×無限ピクセルで、毎秒無限フレームで動いてる。色も多分無限色使える。夕焼けとかマジありえねー美しさ。
BGMの種類がほぼ無限。選曲も自由。自分で作った曲を流すこともできる。人間が作ったとは思えない、とんでもなく複雑で洗練されたシナリオ。
リアル出産システム採用。自分と、自分よりも大切に思える相手の遺伝子を半分ずつ受け継いだ、奇跡のようなキャラを生み出して、そいつに自由に色々教えて育てることができる。
すごく嬉しいし、ちょー楽しい。ネコっつー生き物が登場するんだけど、これがちょーかわいい。
食いきれねーほどの種類の料理があって、超うまいものが時々食える。
説明書が無く、仕様が明かされてないから、自分でデータとって仕様を推測するしかない。これがまたとんでもなく高度に洗練された仕様になってるっぽくて、なかなか正確には分からん。
だから、とりあえず大雑把に推定し、それに基づいて行動して、データを取りつつ徐々に予測値を修正していく必要がある。
これがまた楽しい。徐々に明らかになっていく世界観。
未だに明らかになってない謎が山盛り。友達と一緒に協力して遊べる。無料。
本気で自分を愛してくれるキャラがいたりする。ゲーム内で別なゲームやったりアニメ見たり出来る。
エロゲと違って、主人公の勝手な行動でフラグが立つことがない。
登場キャラと本当に心を 通わせることが出来る。信じがたいほど深い感動を味わえるイベントが結構ある。もちろん本気でやらないとフラグを無駄にするだけだが。
こんなとてつもない神ゲーを糞ゲーとか言ってる奴は、本気でこのゲームをやったことがない奴だけ。
まあ、一切がんばらずにクリアできるようなヌルゲーばかりやってる奴には、このゲームはちょいとハードかもしれんがな。でも一端ハマった奴はみんな、このゲームを辞めたくないって言ってるぜ

947:名前は開発中のものです。
17/12/16 23:05:25.75 hBjssZ70.net
いいや、違うな・・・
おそらく、2DでLookAtが使えないからかもしれない!
2Dだと、forwardはZ方向、つまり、奥方向が前になる
2DでLookAtすると、forwardを対象物に向けるため、
スプライトが画面に対して垂直に立っちゃうからかも?
例えば、振り子運動させる時、上方に振り子の中心点を設定して、
左下45度から右下45度へ向かってRotateAroundで公転した場合、
オブジェクト上方=up軸を振り子の中心点へ向けないといけない
そもそも、2Dではup軸かright軸しか向きを変える際に利用できない・・・
(forward軸を変えたら、2Dでなくなってしまうから)
これが理由のような気がするなあ

948:名前は開発中のものです。
17/12/16 23:07:26.05 hBjssZ70.net
>>901
物理は使う?
2Dなの3Dなの??
Gravityオフにしてオブジェクトを生成すれば、落ちないよ
クリックしされたら、オブジェクトのGravityをオンにしたら良いんじゃ

949:名前は開発中のものです。
17/12/16 23:57:45.09 zgsa9dPV.net
>>906
返信ありがとうございます。
物理は使っています。2Dで制作しています。
プログラムが書けなくてオブジェクトをランダムに生成してクリックでGravityをオンにするっていうようにするのが
どうやればいいのかわからなくて・・・。

950:名前は開発中のものです。
17/12/17 00:00:59.32 CBpPFu99.net
星型のアセットモデルをインポート

Hierarchyに追加して任意の角度(星型が正面に来る)にする

それをプレハブ化
してもInspector内でデフォルトの角度に戻ってしまいます(オブジェクトとして使用する分には任意の角度になるんですが)
星型の弾丸を作ろうと思ってるんですが、プレハブから弾丸にするとデフォルトの変な角度のまま発射されてしまうんですよね…

951:名前は開発中のものです。
17/12/17 01:08:13.95 Vn9M2BoC.net
>>907
プログラムを書けるようになって動かせるようになりたいってこと?

952:名前は開発中のものです。
17/12/17 01:26:30.94 K2bL8mhm.net
>>908
アセット内のプレハブの方のインスペクターで角度を指定すれば、
それをヒエラルキーに持っていっても角度は保たれているはず
スクリプトで動的にプレハブprefabを生成する場合、
生成時に角度Quaternionを指定できる
if?(Input.GetMouseButton?(0))?{ //クリック時
 Vector3 position = new Vector3(Random.Range(-10.0f, 10.0f), 10, 0); //x座標をランダムに生成
 Instantiate(prefab, transform.position, Quaternion.Euler(x, y, z)); //角度を指定してprefab生成
}
このスクリプトをprefabに載せる

953:名前は開発中のものです。
17/12/17 01:32:40.49


954:K2bL8mhm.net



955:名前は開発中のものです。
17/12/17 02:01:14.46 vcuEPHEk.net
流石にコード無しでDTB作るのは難しいと思うからプログラムを学ぶかかける人を探さないと無理だと思うよ

956:名前は開発中のものです。
17/12/17 02:16:48.31 K2bL8mhm.net
public GameObject Obj; //prefabを指定しておく
Rigidbody2D Rb2D;
public class PrefabCode : MonoBehaviour {
void Update() {
 if (Input.GetMouseButton(0)) {
  Vector3 position = new Vector3(Random.Range(-10.0f, 10.0f), 10, 0);
  GameObject Prefab = Instantiate(Obj, transform.position, Quaternion.Euler(x, y, z));
  Rb2D = Prefab.GetComponent<Rigidbody2D>();
  Rb2D.gravityScale = 1.0f;
 }
}

957:名前は開発中のものです。
17/12/17 02:23:43.91 K2bL8mhm.net
PrefabCodeは、ヒエラルキーで作成した空の2Dオブジェクトにでも入れておいて
もしかして、ランダムはオブジェクト自体か?
オブジェクトの形が数種類あるとか?
その場合は、ランダムでパターン番号0~3とかを指定して、
if文で、違うprefabを生成する文を選択させるのが良いかも
空のオブジェクトのx座標を、マウスのx座標と揃え続けるコードも必要だな
マウスオーバーイベントに書いておく必要ありそう
prefabは空のオブジェクトの位置に生成されるから

958:名前は開発中のものです。
17/12/17 02:48:52.06 2l6FPzGg.net
これで作られたRPGってありますか
ガチャゲーじゃない昔ながらのRPGです

959:名前は開発中のものです。
17/12/17 03:03:25.27 KEqZbS2o.net
>>915
いけにえと雪のセツナ

960:名前は開発中のものです。
17/12/17 03:06:58.30 2l6FPzGg.net
>>916

セールになったら買ってみます

961:名前は開発中のものです。
17/12/17 03:30:34.88 anx13erV.net
2Dアクションゲームを作成しようとしている初心者です。
tilemap collider2dをアタッチしたtilemapの平面フィールド上で、
rigidbody2dとbox collider2dをアタッチして重力と当たり判定を付与したGameObject(Player)を歩かせたところ、
タイルに引っかかる形で止まってしまいます。
これを回避するためにcapsule collider2d等で接地面を点にすると止まることはなくなります(僅かに減速する)が、
当たり判定を□で判定したい為、可能であればbox collider2dで実装したいと考えています。
tilemapを使用した際のこういった引っかかり挙動を抑えることは可能でしょうか。

962:名前は開発中のものです。
17/12/17 10:25:06.96 kJlZ2G7V.net
足元はcapsuleかcircleにして、
もう1つboxで足元から数ピクセル上を覆えば良いのでは?
collider2Dは1つという制約はないので、複合したら良いんじゃ

963:名前は開発中のものです。
17/12/17 10:31:21.09 kJlZ2G7V.net
>>900
>>888ですが、基本的にforward軸はオブジェクトの前後方向にとっているのですが、
円状(球状)の軌道で旋回しており、その際にオブジェクトの上下方向を、
軌道の中心(球の中心)へ向けておきたいのです・・・
人工衛星やスペースシャトルみたいな感じです
前方は進行方向を向けておいて、なおかつ上下は鉛直軸に揃えたいんです
前方が中心を向いちゃうと、上下に立った状態で周回してしまうので

964:名前は開発中のものです。
17/12/17 10:36:09.95 kJlZ2G7V.net
レスのアンカに引っ張られて間違えましたが、自分は883でした
>>905
2Dだとtransform.LookAtが機能しないんですね!
それじゃ、やっぱりforward以外の軸を向ける機能は大事ですね
>>88


965:6 ビックリです! transform軸に目標座標を入れると、軸がそっちを向くんですね! しかも、正規化して単位ベクトルにするひつようもないみたい そしたら、transform.LookAtいらなくない?!



966:名前は開発中のものです。
17/12/17 16:14:44.68 anx13erV.net
>>919
レスありがとうございます。
当たり判定に違和感がない数ピクセルの差でbox collider2dをアタッチすると引っかかりは生じます。
引っかからない程度に足元を円形にすると角で滑り落ちるようになってしまいます。
DirectionをHorizontalにした角の丸い棒状のcapsulecollider2dでプレイヤーの上下左右を被った場合(角のない箱のような形)は、
引っかかることはなくなりますが、やはりタイルに当たりはするので、極僅かに減速してPlayerが数pixcel浮くことがあります。
またその際、OnCollision~2Dイベントを監視すると、タイルに当たって浮いた瞬間にタイルとの接触判定が一瞬途切れている為、
ジャンプ判定等にも影響が出てしまう(空中にいる判定が誤作動する)のでタイルとの判定自体を正しく動作させたいと考えています。

967:名前は開発中のものです。
17/12/17 17:18:37.08 CBpPFu99.net
回転するステージを作ってます
ステージにspawn位置を子オブジェクトとして設定して、そこから敵を出現させようと思ってるんですが
spawn位置がステージに追従して回転せず、固定されたままになってしまいます
オブジェクトをそのままステージの子にすると回転に追従できるんですが、
Spawnにスクリプトを設定してそこからオブジェクトを選んでくっつけるとどうもうまく行かず…
なにか解決方法はありませんか?

968:名前は開発中のものです。
17/12/17 17:19:26.92 CBpPFu99.net
>>910
遅レスすいません、詳しくありがとうございます。試してみます。

969:名前は開発中のものです。
17/12/17 17:21:12.36 anx13erV.net
>>922
すみません自己解決しました。
edge collider2dを使用するか、box collider2dのedge radiusを0.001に設定することで、
タイルとの衝突(及びOnCollider系イベントの誤発生)はなくなりました。
参考:URLリンク(forum.unity.com)
ありがとうございました。

970:名前は開発中のものです。
17/12/17 17:28:31.76 0i7oG1oj.net
>>886
どういう原理なんだこれ????

971:名前は開発中のものです。
17/12/17 20:19:28.23 Vn9M2BoC.net
position とかと同じように代入できるんだね。リードオンリーだとばかり思ってた

972:名前は開発中のものです。
17/12/17 20:36:30.69 MPKxHq38.net
Unityの人達がどれほど「技術の民主化(デモクラタイズ)」とい
うものに心を払っているかは、多分外部の人達には想像できな
いと思います。この一点においいて、Unityは、世界中に沢山の
ファンを生み出し、そしてエバンジェリズムを行うチームのメンバ
ーも国境や政治制度を越えてひとつになれるのです。

973:名前は開発中のものです。
17/12/17 20:43:06.69 ttDBRzWh.net
その思想は非常に危険
それは即ち低賃金労働者の搾取がゲーム業界においても世界的に起こるようになるということと同義だからだ

974:名前は開発中のものです。
17/12/17 21:44:56.77 FNxE37S9.net
キケンかどうかは立ち位置によるし、資本主義では当たり前の話。

975:名前は開発中のものです。
17/12/17 22:07:45.00 K2bL8mhm.net
>>926
transform軸の座標は、自分のpositionをVector3.zeroとした時の相対座標で設定されている
自分のpositionが原点の場合は、transform軸の座標に目標のpositionを


976:入れれば、 それが勝手に単位ベクトル化されて、方向ベクトルになるみたい でも、自分のpositionが原点でない場合は、 transform軸の座標に「target - trans.position」で自分の座標を引いておく必要がある だから、「target」だけを入れれば良いLookAtの方が簡単にできる(forward軸限定だけど) あと、LookAtは第2引数で、up軸の方向も指定できる (forward軸をtagetに向けた状態で、可能な限りup軸を指定方向に合わせてくれる)



977:名前は開発中のものです。
17/12/17 22:12:13.99 K2bL8mhm.net
>>923
Instantiateで生成する時に、ちゃんと親を指定してる??
動的に生成したオブジェクトは、ステージとの親子関係が切れてない?
Instantiate(Object, Position, Parent)

978:名前は開発中のものです。
17/12/17 22:14:47.35 K2bL8mhm.net
>>922
>>925
edge radiusなんて便利な機能が付いて、
矩形の判定枠の角を丸められるようになったんだね
いつも、足の前後に円形判定をおいたり、
カプセルを横にして置いて、地形判定専用にしてたわ

979:名前は開発中のものです。
17/12/17 22:57:38.86 SNj3ir+c.net
ダメージを受ける毎に敵オブジェクトとかモデルが足元から徐々に(段階的に)赤くなって行くっていうのって、どういう原理で出来るんですか?
色々考えたんですけど思い付かなくて

980:名前は開発中のものです。
17/12/17 23:29:09.88 tMMchmwv.net
けーすばいけーす

981:名前は開発中のものです。
17/12/18 04:52:21.33 B3OUJM41.net
歩くアニメーションがあってそれは実行すると前進するのですが
これをその場で足踏みだけさせるように簡単に変更はできますか?

982:名前は開発中のものです。
17/12/18 08:05:53.43 vc4Z0s4x.net
アニメーション再生するだけで前に動くことは無い
別のスクリプトでオブジェクトを進行方向に動かしているはず

983:名前は開発中のものです。
17/12/18 08:48:59.47 WoyHjqZj.net
>>878
position等を直接いじったらそれはワープしてるのと同じだからね
移動や回転は事象に応じて物理エンジンがするものと考えれば、いろいろ扱いやすくなると思うよ

984:名前は開発中のものです。
17/12/18 09:27:02.70 mba+3hiD.net
>>936
apply root motion

985:名前は開発中のものです。
17/12/18 10:23:29.76 B3OUJM41.net
>>939
apply root motionを指定しても動いてるんですよね。
>>937
歩く以外にもジャンプのアニメーションも上に飛び上がらないようにしたいとかです。

986:名前は開発中のものです。
17/12/18 10:32:53.07 vc4Z0s4x.net
>>940
モーション自体の中で位置が動いてるなら簡単に動かないようにするのは無理
アニメーション編集してルートのトランスフォーム移動のキーを全部削除するしかない

987:名前は開発中のものです。
17/12/18 10:40:39.28 B3OUJM41.net
>>941
やっぱりそれしかないんですね。
自分で削除することにします。ありがとうございました。

988:名前は開発中のものです。
17/12/18 12:00:11.97 jBsoCflG.net
LateUpdateでモーション適用後のトランスフォームを変更できる
ルートのボーンにLateUpdateで位置をlocalPosition=0,0,0にするコンポを付ければいい。

989:名前は開発中のものです。
17/12/18 12:43:15.93 B3OUJM41.net
>>943
ありがとうございます。やってみます!

990:名前は開発中のものです。
17/12/18 13:36:58.58 B3OUJM41.net
>>943
完璧に動作しました!ありがとうございました!!

991:名前は開発中のものです。
17/12/18 14:32:15.73 B4iwR6Ld.net
URLリンク(twitter.com)
リンクすみません。
こういうカーソル位置?というか左右にしたら画面が切り替わるのってどうやれば出来るんでしょう?
マスクみたいな感じですか?

992:名無し@キムチ
17/12/18 19:51:23.56 iM2CjGiv.net
>>886>>943は優良回答者ですね。
しったかのヘタレ回答者が多い中で、すごいです!!!

993:名前は開発中のものです。
17/12/18 20:19:13.70 AjgZuUm6.net
>>947
貴方も回答者に成るんだよこれから。

994:名無し@キムチ
17/12/18 22:22:26.73 iM2CjGiv.net
>>948
ホントですね。頑張ります!

995:名前は開発中のものです。
17/12/18 22:2


996:4:40.54 ID:zA/nszQ4.net



997:名前は開発中のものです。
17/12/18 22:39:17.53 9Bga0q6S.net
越後製菓!

998:名前は開発中のものです。
17/12/18 23:04:07.96 x75jC3YN.net
最近、質問-回答がちゃんとなされて、質問スレとして機能していて、ビックリ!
ちょっと前なら、アセットで解決!で終了だったのに・・・
スレで出た有用なQ&Aは、誰かどこかにまとめてくれないかね~

999:名前は開発中のものです。
17/12/18 23:11:37.88 x75jC3YN.net
2DはLookAtが使えなくて今まで諦めてたけど、
まさかtransform.rightやtransform.upに直接代入して、
LookAtもどきができるとは、凄く役になったな~
タイルチップで2D背景を作ってたけど、
左右移動時にタイルのつなぎ目で引っかかるから、
高さが同じタイルは、colliderを統合して、
高さが変わるところだけ、別colliderにしてたけど、
これからは、タイルチップ敷布でいけそうだな~

1000:名前は開発中のものです。
17/12/19 00:07:08.24 4Od9SmbT.net
ネトウヨ老害死ねばいいのに
ゲ製コミュの印象悪くして皆の足引っ張りやがって
死ねよ不細工メタボ引き篭もりネトウヨ

1001:名前は開発中のものです。
17/12/19 00:27:04.18 MvhMRTwq.net
まーた、ネトウヨキムチがコミュとか言っちゃって

1002:名前は開発中のものです。
17/12/19 03:06:23.03 Ih0Nk694.net
一応言っておきますが>>947は自分じゃないですよ…
回答頂いた方には皆感謝してます。

1003:955=944
17/12/19 03:07:20.95 Ih0Nk694.net
名前欄ということです。すみません。

1004:名前は開発中のものです。
17/12/19 07:37:16.79 4Od9SmbT.net
>>955
は?なんで俺が「キムチキムヨナ」連呼のネトウヨの最底辺メタボのゴミおっさんなんだよ?糖質が絡んでくるなや
「キムチキムヨナ」連呼のネトウヨの最底辺のゴミおっさんがどこで「コミュニティ」とか言ってやがるんだ?
ゲ製コミュをネトウヨコミュニティと一緒にするなやカス共が
>>956
「!」の使い方といい、文体といい、同じに見えるんだが?
ネトウヨの最底辺のゴミおっさんが、わざわざ文体を真似てるってことか?

1005:名前は開発中のものです。
17/12/19 09:35:09.05 VZwsAqll.net
なんか面倒な人に絡まれてるなぁ955
新スレ作るか。

1006:名前は開発中のものです。
17/12/19 09:36:44.16 VZwsAqll.net
新スレビルド完了です...
【3Dゲームエンジン】Unity質問スレッド33
スレリンク(gamedev板)

1007:名前は開発中のものです。
17/12/19 10:04:53.30 4Od9SmbT.net
なぜ <準コテ「キムチ」で「キムヨナ」連呼> みたいなゴミを、素朴に「ゴミ」と言うことや
ぱっと見で文体が同じに見えることを、素朴に「同じに見える」「一方が真似てる」と言うことが
面倒がられなければならないのか?
素朴な書き込みを面倒がり、ゴミ廃棄を面倒がる奴の方が、よっぽど面倒だぜ?

1008:名前は開発中のものです。
17/12/19 10:13:49.21 hldyKkrz.net
unityにマップを作るtile機能ってあるけど一つのチップセットに対してBoxColliderとかの情報を付けるのってどうすればええんやろ

1009:名前は開発中のものです。
17/12/19 12:04:43.40 m7Eb2COO.net
>>962
アセットをかうしか無いですよ!

1010:名前は開発中のものです。
17/12/19 14:27:52.29 SpU5jUlI.net
>>951
正解

1011:名前は開発中のものです。
17/12/19 15:16:13.61 ZiJMGaxN.net
キチガイがいると迷惑だから分類しないとね

1012:名前は開発中のものです。
17/12/19 15:56:19.98 O0snqTpx.net
>>952
お前が幼稚園や保育園をお望みならそれでいいんじゃない?
まともな小学生以上は自分でググって調べて解決してる
そんな内容ばかりだ

1013:名前は開発中のものです。
17/12/19 16:33:46.69 4R8uUpaI.net
アセットガイジはなんか売ってるんかなぁ…

1014:名前は開発中のものです。
17/12/19 18:11:13.26 OC9tHkfS.net
>>953
むしろ2DでLookAtさせたいだけならオブジェクトAとBの角度を取って画像をRotateさせるだけでいいんじゃないん?w

1015:名前は開発中のものです。
17/12/19 19:22:46.77 Jz5wVrA6.net
>>968
そんな難しいことしたくないじゃん

1016:名前は開発中のものです。
17/12/19 19:29:46.21 oc7hao2D.net
>>968
自分をオブジェクトA
 Aのposition = transform.position
目標をオブジェクトB
 Bのposition = target
とした場合に、
transform.right = target.position - transform.position
と同じ作用になるようにするには、
>>958の方法ではどうなる??

1017:名前は開発中のものです。
17/12/19 19:59:39.02 IygWzju3.net
>>970
オブジェクト間の角度とる関数あるからしらべて

1018:名前は開発中のものです。
17/12/19 20:25:38.60 v4JsSdmj.net
ベクトル間の角度を出す関数じゃなくて?
ベクトル間の角度だと、原点を中心にした角度になるけど
しかも、それで角度を出すと回転の向きがわからないから、
ベクトルの外積を求める必要もあるよね

1019:名前は開発中のものです。
17/12/19 22:09:39.44 v4JsSdmj.net
>>968
自分でコードを出してみなよ~
命題:オブジェクトAの向きを、オブジェクトBの方向へ向ける
 オブジェクトAの座標は任意(原点とは限らない)
 オブジェクトAの向きは任意(0度とは限らない)
 オブジェクトBの座標は任意(原点とは限らない)
 オブジェクトBの位置はVector3で「target」とする
2Dだから、forward軸をtargetへ向かせるLookAtは使用できない
さて、969のコードを超える簡略化ができるのか?!どうか

1020:名前は開発中のものです。
17/12/19 22:16:40.59 m7Eb2COO.net
アセットを購入すれば簡単簡単

1021:名前は開発中のものです。
17/12/19 22:17:29.27 v4JsSdmj.net
そもそも角度って言っても、
それぞれのベクトルの偏角なのか、2つのベクトルのなす角なのか・・・
Rotate(0, 0, θ)で入れるには、
オブジェクトAからオブジェクトBへ向かうベクトルの偏角じゃないとダメだから、
オブジェクトAのベクトルとオブジェクトBのベクトルのなす角を求める
Vector3.Angleを使っても、それじゃA→Bへの原点中心の公転角になっちゃうよ!
rotationに入れるにはQuaternionである必要があるし、
オブジェクトAの最初の向きが0度じゃない場合も考慮しないといけないし・・・
どう考えても面倒じゃない??

1022:名前は開発中のものです。
17/12/19 22:59:56.79 v4JsSdmj.net
アセットおじさんは、
なんていうアセットで、いくらで、どの機能を使うとできるのかも明記して欲しいね~
「探せばあるかもよ」じゃね・・・

1023:名前は開発中のものです。
17/12/20 00:34:43.35 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:名前は開発中のものです。
17/12/20 00:39:41.23 TUVA4DF6.net
①Quaternion.FromToRotationを使用する方法1
 transform.rotation = Quaternion.FromToRotation (Vector3.right, direction);
②Quaternion.FromToRotationを使用する方法2
 transform.rotation = transform.rotation * Quaternion.FromToRotation (transform.right, direction);
③Vector3.Angleを使用する方法1
 transform.rotation = Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(Vector3.right, direction))) *Vector3.Angle(Vector3.right, direction));
④Vector3.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:名前は開発中のものです。
17/12/20 00:44:36.57 TUVA4DF6.net
⑤Vector3.Angleを使用する方法3(Rotateを使用)
 transform.Rotate (0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction));
⑥Mathf.Atan2を使用する方法1(Rotateを使用)
 transform.Rotate (0, 0, Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg - transform.rotation.eulerAngles.z);
⑦Mathf.Atan2を使用する方法2
 transform.rotation = Quaternion.AngleAxis(Mathf.Atan2((direction.y, direction.x) * Mathf.Rad2Deg, Vector3.forward);
うーん、どうやっても元よりも長いコードになってしまいます。
オブジェクトAの位置が原点だとか、オブジェクトAの向きが無回転だとか、
条件を付ければ、もう少し簡略化できますが・・・

1026:名前は開発中のものです。
17/12/20 01:00:49.24 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:名前は開発中のものです。
17/12/20 08:42:36.26 XTZUI7pU.net
969です
>>977-980
詳しく解説ありがとうございました!
やっぱり、角度から行こうとすると結構面倒ですね~

1029:名前は開発中のものです。
17/12/20 18:29:13.04 XTZUI7pU.net
汎用性を考えると、Quaternion.FromToRotationは良さそうですね
これは、あるベクトルを別のベクトルにする回転を返すわけだから、
自分の向きを、自分のベクトルから目標とするベクトルへ向ける回転にするわけですか・・・

1030:名前は開発中のものです。
17/12/20 22:49:28.74 TUVA4DF6.net
>>981
テラシュールブログ
URLリンク(tsubakit1.hateblo.jp)
ここに、Quaternion.FromToRotationの使い方がうまくまとまってました。
>>var diff = (target.position - transform.position ).normalized;
>>transform.rotation = Quaternion.FromToRotation( Vector3.up, diff);
このサイトでは、diffは正規化されているようですが、
基本的に内部で強制的に単位ベクトルになるようなので、
target.position - transform.positioだけで大丈夫そうです。
なお、外積ベクトルを利用する場合は、大きさも影響してきますので、
方向ベクトルは単位ベクトルにしておいたほうが無難です。

1031:名前は開発中のものです。
17/12/20 22:56:36.28 TUVA4DF6.net
なお、私の方法では、外積ベクトルとZ軸の内積をとっていますが、
最終的に符号のみを取り出しているので、大きさが影響しません。
Vector3.Reflect,Vector3.Project,Vector3.ProjectOnPlaneなど、
単位ベクトルに内積を乗算するタイプの関数では、
必ず正規化して単位ベクトルにしてから代入しないと、
計算結果が変わってきますので、注意が必要です。

1032:名前は開発中のものです。
17/12/21 12:35:15.03 rQmWRShb.net
  /⌒ヽ
 く/・〝 ⌒ヽ   すうがくのことわからない
  | 3 (∪ ̄]
 く、・〟 (∩ ̄]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

1033:名前は開発中のものです。
17/12/21 13:03:49.54 nBeZymLn.net
算数だぞ。

1034:名前は開発中のものです。
17/12/21 14:22:23.93 8qhc65N4.net
確実に高校数学
中学算数でベクトルは習わない(特定進学校は除く)

1035:名前は開発中のものです。
17/12/21 14:52:32.83 nBeZymLn.net
>>987
URLリンク(www.google.co.jp)

1036:名前は開発中のものです。
17/12/21 17:37:17.76 mWsXZ6ft.net
年がいくつでも何処からでも学べるんちゃうんか

1037:名前は開発中のものです。
17/12/21 17:41:22.45 ogJEBcpf.net
年寄りは観念が固まってるから、4*4=4+4+4+4とか切り口を変えた柔軟な発想が出来ない

1038:名前は開発中のものです。
17/12/21 17:49:58.06 uW9gzElK.net
柔…軟…???

1039:名前は開発中のものです。
17/12/21 18:12:39.26 p4DyS94v.net
なんだかんだと言ってもITはそれなりの頭がないと出来ない
中学、高校で数学が苦手だった奴にプログラミングはむかない
そんな理由で糞IT専門学校卒の底辺IT奴隷だって素質があって他の業種からみれば高給与
まあ糞IT専門学校に逝っても半分以上は素質がなくて資格も


1040:取れずIT関連企業にも就職できないんだけど



1041:名前は開発中のものです。
17/12/21 18:43:55.99 d8WQwc80.net
Unityのプログラムを、コピペじゃなくて、
自分で考えて、組み立ててコードを書けるってことは、
それなりに数学的な素養があると思うんだよね~
何も行列とかクォータニオンとかを数学的にきちんと理解していなくても、
「そのメソッドで何ができるか」を理解していれば、
たとえメソッドの内部はブラックボックスでも、それを組み合わせて、
ちゃんと機能するコードが書けるから・・・
ある意味、クラスによるカプセル化と一緒で、
オブジェクト指向の根幹になるんじゃないかな?

1042:名前は開発中のものです。
17/12/21 18:52:38.72 d8WQwc80.net
もちろん、そのクラスや構造体の中で、
「数学的に何が行われているのか?」を理解していれば、
それを応用して、別のクラスを作ったり、
他の処理に応用することができるようになるとは思うけど・・・
3D処理(描画じゃなくて動作)で必要なのは、
ベクトル、行列、複素数の拡張であるクォータニオン、
極座標、関数(特に、三角関数)、初等幾何学、
古典物理学(力学)くらいじゃないかな・・・
Unityでは、行列は基本内部処理だけで表に出ないから、
高校の数学ⅡBくらいまでのレベルじゃなかろうか?

1043:名前は開発中のものです。
17/12/21 19:26:27.42 J5wOBApL.net
>>989
>年がいくつでも何処からでも学べるんちゃうんか
それを聞く時点でキミはすでに学べない。

1044:名前は開発中のものです。
17/12/21 20:31:14.43 MUjb87iC.net
そんなんいらね。
三角関数を何となく使えるぐらいで十分。
あとはunityがやってくれる。

1045:名前は開発中のものです。
17/12/21 20:41:57.83 m2pWnfBj.net
>>989
高校卒業してから20年くらい、今年初めからUnityを始めましたが、
独学でベクトルの外積やクォータニオン演算まで辿り着けたので、
興味さえあれば、何とかなるもんですよ。

1046:名前は開発中のものです。
17/12/21 20:52:09.10 m2pWnfBj.net
例えば、物理演算を使用する場合、Unityで設定できるのは、
速度velocityと力AddForce、角速度angularVelocityとトルクTorqueだけです。
(位置positionや角変位rotationは原則いじらないほうが良いです)
すると、直線移動や自転だけなら設定が簡単ですが、
公転のような円運動を行うには、物理法則に準じた命令を与える必要があります。
物理演算では、transform.RotateAroundを使えないので、
そういう場合に自分で工夫して実装できるかどうかに関わってくると思います。

1047:名前は開発中のものです。
17/12/22 00:21:49.04 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:名前は開発中のものです。
17/12/22 02:24:21.72 BHuKTyia.net
オイラーは、ドラマー♪

1049:名前は開発中のものです。
17/12/22 10:39:11.64 GTvlornd.net
10年は 夢のよう
100年は 夢また夢
1000年は 一瞬の光の矢
過ぎてく時間は怖くない
輝きを失う事が嫌なのです

1050:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 53日 5時間 33分 36秒

1051:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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