フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
http://unity3d.com/jp/unity/faq
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
前スレ
【3Dゲームエンジン】Unity質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/
【3Dゲームエンジン】Unity質問スレッド32
■ このスレッドは過去ログ倉庫に格納されています
1名無し@キムチ
2017/10/30(月) 05:05:35.00ID:xnHTCaF3785名前は開発中のものです。
2017/12/11(月) 18:40:23.63ID:T/JrBtRm 初心と無能を間違えてはいけない
基礎を勉強し身につけた者だけが初心を名乗れる
基礎をやらず教えて君は無能だよ
取説読まない
何もやらない
全部すぐ人に頼る
これは初心者じゃない
教習所に通わずいきなり車を運転しようとしてるやつ
これも初心者じゃない
初心
これの意味をもっとよく考えてから質問しよう
プラモ買って説明書読まない組んでて
途中で出来ないから作り方教えてくれという自称初心者がいたらどう思う?
説明書をまず読めと思わないか?
質問の質があまりにも低すぎるのが問題
基礎を勉強し身につけた者だけが初心を名乗れる
基礎をやらず教えて君は無能だよ
取説読まない
何もやらない
全部すぐ人に頼る
これは初心者じゃない
教習所に通わずいきなり車を運転しようとしてるやつ
これも初心者じゃない
初心
これの意味をもっとよく考えてから質問しよう
プラモ買って説明書読まない組んでて
途中で出来ないから作り方教えてくれという自称初心者がいたらどう思う?
説明書をまず読めと思わないか?
質問の質があまりにも低すぎるのが問題
786名無し@キムチ
2017/12/11(月) 19:11:07.14ID:bqjs8mgU >>782
エンジニアよりキムヨナと知り合いたいな・・
エンジニアよりキムヨナと知り合いたいな・・
787名前は開発中のものです。
2017/12/11(月) 19:11:25.30ID:6tubAqHL >>781
root同士じゃないと出来ない組み合わせなかったっけ?
cとbを
c.transform.parent = null;
b.transform.parent = null;
で親子解除すれば出来る
root同士じゃないと出来ない組み合わせなかったっけ?
cとbを
c.transform.parent = null;
b.transform.parent = null;
で親子解除すれば出来る
788名無し@キムチ
2017/12/11(月) 19:16:57.23ID:bqjs8mgU789名前は開発中のものです。
2017/12/11(月) 19:20:05.88ID:rG1bqsx7 そういえばUnity初心者スレってないのな
790名前は開発中のものです。
2017/12/11(月) 19:32:44.82ID:T/JrBtRm >>788
ビギナーは英語で初心者という意味
>初心者とはそんな難しいもののことではない。
>単純に初心者のことだ。
自分の発言が情けないほど意味不明になると思わない?
基礎を学ばずにいるとこうやって無能を晒し恥をかくだけ
分かりやすい例になってくれてありがとう!
ビギナーは英語で初心者という意味
>初心者とはそんな難しいもののことではない。
>単純に初心者のことだ。
自分の発言が情けないほど意味不明になると思わない?
基礎を学ばずにいるとこうやって無能を晒し恥をかくだけ
分かりやすい例になってくれてありがとう!
791名前は開発中のものです。
2017/12/11(月) 20:07:01.75ID:qY5Wc6Xa チュートリアルすらやってないドキュンとか、
補助輪取れないアホは無視でいい
補助輪取れないアホは無視でいい
792名前は開発中のものです。
2017/12/11(月) 20:22:52.74ID:g06Ln43v >>785
完全にクレーマーw
完全にクレーマーw
793名前は開発中のものです。
2017/12/11(月) 20:52:55.52ID:u584Mmdp >>785
では質問、外部サイトの情報をスクレイピングして情報を抽出するゲームを作成しています。
読み出すサイトの文字コードに合わせてSystem.Text.Encodingクラスを用いて変換しているのですが、エディタ上で動かすと正しく動きますが、実機にビルドするとsjisやeucjpなどでエラーとなります。これは何故でしょうか?
では質問、外部サイトの情報をスクレイピングして情報を抽出するゲームを作成しています。
読み出すサイトの文字コードに合わせてSystem.Text.Encodingクラスを用いて変換しているのですが、エディタ上で動かすと正しく動きますが、実機にビルドするとsjisやeucjpなどでエラーとなります。これは何故でしょうか?
794名前は開発中のものです。
2017/12/11(月) 21:01:24.21ID:u584Mmdp795名前は開発中のものです。
2017/12/11(月) 21:03:22.24ID:wTfFWu/6 2.5dのコマンドRPG作るのにplaymakerって使えますかね?
ターン制の処理をこれにさせたいのですが買おうか迷ってます。
ターン制の処理をこれにさせたいのですが買おうか迷ってます。
796名前は開発中のものです。
2017/12/11(月) 21:04:49.25ID:pffoEIhS 使える
797名前は開発中のものです。
2017/12/11(月) 21:08:29.22ID:7N8aCxOe 785は滑稽だな
リテラシに慣れていないと、公式マニュアルを読んでも、キーワードを聞いても全く頭に入ってこない人もいる
一般的に言って誰にも苦手な分野はある。例えば日本の役所手続きが良い例
適性が無いとの非難があるかもしれないが、本来、道具は、適性とは無関係に操れるものであるべき
ところで自由競争戦力スキルへの適応を2chで強要するのは傲慢無恥・視野偏狭で滑稽である(プ
リテラシに慣れていないと、公式マニュアルを読んでも、キーワードを聞いても全く頭に入ってこない人もいる
一般的に言って誰にも苦手な分野はある。例えば日本の役所手続きが良い例
適性が無いとの非難があるかもしれないが、本来、道具は、適性とは無関係に操れるものであるべき
ところで自由競争戦力スキルへの適応を2chで強要するのは傲慢無恥・視野偏狭で滑稽である(プ
798名前は開発中のものです。
2017/12/11(月) 21:09:37.13ID:lT/DnU8s ID:u584Mmdpに全部丸投げで解決だなw
799名前は開発中のものです。
2017/12/11(月) 21:15:59.64ID:L0Sd+qXD 趣味なんて出来なくても死ぬわけじゃないし、
乗れもしない一輪車に勝手に跨って勝手に傷だらけになってるだけじゃない
怪我と弁当は自分持ちで頼むよ
乗れもしない一輪車に勝手に跨って勝手に傷だらけになってるだけじゃない
怪我と弁当は自分持ちで頼むよ
800名前は開発中のものです。
2017/12/11(月) 22:02:19.01ID:SkZjimvo 詳しい人が降臨しているようなので質問!
角速度
Rigidbody.angularVelocity = new Vector3(a, b, c)
による回転を1秒間行った場合の、
向き(角変位)
Rigidbody.rotation
を、あらかじめ計算でQuaternionを求めておきたいのですが、
Rigidbody.rotation = Quaternion.AngleAxis(angle, axis)
で入力する場合、
float angle = いくつ?
Vector3 axis = いくつ?
に設定すれば良いのでしょうか??
普段は実際に時間をかけて回転させるのですが、
ショートカット入力によって、瞬間的に向き変更したためです。
普段は速度velocityで移動させていたのを、
瞬間的に位置positionで変位させるのと同じ感じです。
角速度
Rigidbody.angularVelocity = new Vector3(a, b, c)
による回転を1秒間行った場合の、
向き(角変位)
Rigidbody.rotation
を、あらかじめ計算でQuaternionを求めておきたいのですが、
Rigidbody.rotation = Quaternion.AngleAxis(angle, axis)
で入力する場合、
float angle = いくつ?
Vector3 axis = いくつ?
に設定すれば良いのでしょうか??
普段は実際に時間をかけて回転させるのですが、
ショートカット入力によって、瞬間的に向き変更したためです。
普段は速度velocityで移動させていたのを、
瞬間的に位置positionで変位させるのと同じ感じです。
801名前は開発中のものです。
2017/12/11(月) 23:16:52.47ID:T/JrBtRm 初心者は基礎勉強を習得した後に応用問題などで躓く者
無能は怠慢で基礎勉強をせずに全てに躓く者
そして自分は初心者だと勘違いしてる者
無能と初心者は全然違う
初心者には教えるが怠け者なだけの無能には教えたくはないって人が多いと思う
質問する気になれないなんて者は来なくていいと思う
そいつが消えた所でそいつが困るだけでこっちは何も困らない
どうぞ勝手にお帰り下さいなんじゃないかな?
ましてや自分は初心者だから教えてもらって当たり前なんて思ってる勘違いには特に
悔しいなら無能をやめて初心者になり
教えたい人が思わず教えてやりたくなるような質問したら?
無能は怠慢で基礎勉強をせずに全てに躓く者
そして自分は初心者だと勘違いしてる者
無能と初心者は全然違う
初心者には教えるが怠け者なだけの無能には教えたくはないって人が多いと思う
質問する気になれないなんて者は来なくていいと思う
そいつが消えた所でそいつが困るだけでこっちは何も困らない
どうぞ勝手にお帰り下さいなんじゃないかな?
ましてや自分は初心者だから教えてもらって当たり前なんて思ってる勘違いには特に
悔しいなら無能をやめて初心者になり
教えたい人が思わず教えてやりたくなるような質問したら?
802名前は開発中のものです。
2017/12/11(月) 23:21:47.98ID:T/JrBtRm803名前は開発中のものです。
2017/12/11(月) 23:28:43.27ID:T/JrBtRm804名前は開発中のものです。
2017/12/11(月) 23:32:55.29ID:7N8aCxOe ビッグアップル大丈夫か
805名前は開発中のものです。
2017/12/12(火) 00:07:46.96ID:yWI4yO+J まさかツッパリが足りずに弱音を吐いて「大目に見てくださいよ〜〜〜><」とか懇願してるわけじゃあるまいな
806名前は開発中のものです。
2017/12/12(火) 00:18:39.38ID:awDx9SbB 試行錯誤が大好きなら一生迷走しててええんやで
遠慮すんなよw
遠慮すんなよw
807名前は開発中のものです。
2017/12/12(火) 00:29:29.52ID:K5+QKreg >>800
偉そうに講釈垂れてる人が大勢いるのにこれにレスがつかないの酷すぎないか…
キッチリ1秒後なら
var r = Mathf.Rad2Deg;
Rigidbody.rotation *= Quaternion.Euler(a * r, b * r, c * r);
でどないでしょ
偉そうに講釈垂れてる人が大勢いるのにこれにレスがつかないの酷すぎないか…
キッチリ1秒後なら
var r = Mathf.Rad2Deg;
Rigidbody.rotation *= Quaternion.Euler(a * r, b * r, c * r);
でどないでしょ
808名前は開発中のものです。
2017/12/12(火) 00:36:52.31ID:K5+QKreg809名前は開発中のものです。
2017/12/12(火) 02:09:47.10ID:s3bcy12n @angle = Vector3(a, b, c).magnitude * Mathf.Rad2Deg
3Dの場合、angularVelocityは、rad/秒で入力するので、
a,b,cはrad/秒で入れているはずだから、
angleは度での入力になるため、
* Mathf.Rad2Degで、rad→度の変換が必要ですね
Aaxis = Vector3(a, b. c).normalized
これをQuaternion.AngleAxisに入れると、1秒後の回転状態になります
試してみて下さい
Quaternion.Eulerは、
Z軸回転→X軸回転→Y軸回転の連結回転になるので、
計算結果が、角速度での回転状態と合わないですよ
angularVelocityは全軸同時回転ですから
回転ベクトル=回転角 * 回転軸ベクトル
で計算しないとダメなはず
3Dの場合、angularVelocityは、rad/秒で入力するので、
a,b,cはrad/秒で入れているはずだから、
angleは度での入力になるため、
* Mathf.Rad2Degで、rad→度の変換が必要ですね
Aaxis = Vector3(a, b. c).normalized
これをQuaternion.AngleAxisに入れると、1秒後の回転状態になります
試してみて下さい
Quaternion.Eulerは、
Z軸回転→X軸回転→Y軸回転の連結回転になるので、
計算結果が、角速度での回転状態と合わないですよ
angularVelocityは全軸同時回転ですから
回転ベクトル=回転角 * 回転軸ベクトル
で計算しないとダメなはず
810名前は開発中のものです。
2017/12/12(火) 02:14:08.74ID:K5+QKreg なるほど
勉強になった
ありがとう
勉強になった
ありがとう
811名前は開発中のものです。
2017/12/12(火) 04:00:52.95ID:kM1br0bK812名前は開発中のものです。
2017/12/12(火) 06:49:36.70ID:yWI4yO+J 809
そういう「より優れた仕様奴隷状態」をドヤる話だと思ってたわ
そういう「より優れた仕様奴隷状態」をドヤる話だと思ってたわ
813名前は開発中のものです。
2017/12/12(火) 07:26:11.46ID:OlgvJzEy814名前は開発中のものです。
2017/12/12(火) 07:26:33.24ID:yWI4yO+J 仕様奴隷「俺はこんなにも素晴らしい奴隷なんだ!もっと俺をこき使ってくれぇええ!!」(ドヤァアアア!!!)
815名前は開発中のものです。
2017/12/12(火) 07:29:16.97ID:QJDJOOiE レベルデザインに使えるツール教えてください
アセットでもいいです
アセットでもいいです
816名前は開発中のものです。
2017/12/12(火) 07:34:12.06ID:yWI4yO+J 回転もデフォで減速するみたいだな
いちいち生意気なんだよUnity
いちいち生意気なんだよUnity
817名前は開発中のものです。
2017/12/12(火) 08:13:35.13ID:tVhYuHY1818名前は開発中のものです。
2017/12/12(火) 09:37:16.36ID:QJDJOOiE819名前は開発中のものです。
2017/12/12(火) 10:39:07.71ID:qFAu6kJp アセットじゃないけどスケッチアップなんてどうだい?
CADツールだけどUnityでそのままスケッチアップ形式のファイルを読み込むことができるんだ
そしてウェアハウスっていうUnityでいうアセットストアのようなところで他人の作ったオブジェクトをダウンロードできるんだ
ただし無償版でどこまでできるか把握してないから
気になったら調べてごらんよ
CADツールだけどUnityでそのままスケッチアップ形式のファイルを読み込むことができるんだ
そしてウェアハウスっていうUnityでいうアセットストアのようなところで他人の作ったオブジェクトをダウンロードできるんだ
ただし無償版でどこまでできるか把握してないから
気になったら調べてごらんよ
820名前は開発中のものです。
2017/12/12(火) 11:37:29.41ID:V4vKOuq6 VS for Macでコーディングしている人いる?
予測コーディングが効かなかったり、最近のアプデで日本語入力がリアルタイムで表示されなくなったり、子音の入力が反応悪かったり
色々ボロボロで進捗やばいんだけどMacでの開発に向いてるテキストエディタ何か無いかしら?
予測コーディングが効かなかったり、最近のアプデで日本語入力がリアルタイムで表示されなくなったり、子音の入力が反応悪かったり
色々ボロボロで進捗やばいんだけどMacでの開発に向いてるテキストエディタ何か無いかしら?
821名前は開発中のものです。
2017/12/12(火) 13:51:05.12ID:awDx9SbB >>811
どうせキムチだよw
どうせキムチだよw
822名前は開発中のものです。
2017/12/12(火) 15:35:32.47ID:ICWFqCcb >>820
neovim
neovim
823名前は開発中のものです。
2017/12/12(火) 17:04:49.48ID:SinzmT6m VS codeを使うといい
for macは対応が不完全なゴミだがcodeはmacでも完璧に使える
金払ってもいいならRider
for macは対応が不完全なゴミだがcodeはmacでも完璧に使える
金払ってもいいならRider
824名前は開発中のものです。
2017/12/12(火) 17:13:54.71ID:md8fOJvX VS codeの怒涛の更新ペースは何事かと思うw
825名前は開発中のものです。
2017/12/12(火) 18:36:56.62ID:w86KIWp6826名前は開発中のものです。
2017/12/12(火) 18:37:14.48ID: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 (angle, 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);
}
}
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 (angle, 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);
}
}
827名前は開発中のものです。
2017/12/12(火) 18:41:32.25ID: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フレーム分くらいの遅延が生じる模様・・・
AAngleAxis:Vector3(42.4, 37.4, 15.0)
BEuler1:Vector3(45, 30, 0)
CEuler2:Vector3(45, 30, 0)
DEuler3:Vector3(45, 30, 0)
angularVelocityをEulerでQuaternionに入れちゃうと、
角速度による回転結果のQuaternionと少し違うようです・・・
AngleAxisでQuaternionに入れる方が正しいみたいですね
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フレーム分くらいの遅延が生じる模様・・・
AAngleAxis:Vector3(42.4, 37.4, 15.0)
BEuler1:Vector3(45, 30, 0)
CEuler2:Vector3(45, 30, 0)
DEuler3:Vector3(45, 30, 0)
angularVelocityをEulerでQuaternionに入れちゃうと、
角速度による回転結果のQuaternionと少し違うようです・・・
AngleAxisでQuaternionに入れる方が正しいみたいですね
828名前は開発中のものです。
2017/12/12(火) 18:52:30.96ID:w86KIWp6 >>816
回転が勝手に減速する話は本当ですか?
AngularDrag = 0にしてない・・・とかではなくて??
RigidbodyをangularVelocityやAddTorqueで回転させて、
1秒ごとにangularVelocityを表示させても、
回転速度は落ちてないようなのですが・・・
回転が勝手に減速する話は本当ですか?
AngularDrag = 0にしてない・・・とかではなくて??
RigidbodyをangularVelocityやAddTorqueで回転させて、
1秒ごとにangularVelocityを表示させても、
回転速度は落ちてないようなのですが・・・
829名前は開発中のものです。
2017/12/12(火) 20:43:24.56ID:s3bcy12n830名前は開発中のものです。
2017/12/12(火) 20:43:27.01ID:WuPRAOqq 今までモーションは、簡単だからmmdで作ってたけどx軸とy軸の計算違うような……
blenderに乗り換えた方がいいのだろうか。
blenderに乗り換えた方がいいのだろうか。
831名前は開発中のものです。
2017/12/12(火) 20:56:14.28ID:+nER52Ex はい
832名前は開発中のものです。
2017/12/12(火) 21:01:44.29ID:WuPRAOqq やっぱか……
blenderの勉強してくるわ。
mmd使うとか俺ってほんとにバカ……
blenderの勉強してくるわ。
mmd使うとか俺ってほんとにバカ……
833名無し@キムチ
2017/12/12(火) 21:17:33.27ID:pZVPZZmh >>832
Blenderには気を付けたほうがいい
Blender上では問題なくモーションしてても、unityに取り込んで動かすと、手が体に食い込んだりしているから。
何度か行ったり来たりする必要があるw
Blenderには気を付けたほうがいい
Blender上では問題なくモーションしてても、unityに取り込んで動かすと、手が体に食い込んだりしているから。
何度か行ったり来たりする必要があるw
834名前は開発中のものです。
2017/12/12(火) 22:25:16.08ID:oOD9NLJB blender でもやっぱり同じようなこと起きると思うよ
表現力に不満がないならMMDにしとき
表現力に不満がないならMMDにしとき
835名前は開発中のものです。
2017/12/12(火) 22:32:44.76ID:9L2xhVzt else ifまで読んだ
そんなか入るの?!
そんなか入るの?!
836名前は開発中のものです。
2017/12/13(水) 00:01:44.95ID:/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が同じ結果なのと一緒です。
最初の回転状態が、
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が同じ結果なのと一緒です。
837名前は開発中のものです。
2017/12/13(水) 00:07:16.00ID:/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になり、
キャンバスのVector3軸を基準にした回転にする場合は3になります。
1は、角変位や位置の絶対指定、
2-3は、角変位や位置の相対指定です。
rotatiin =Quaternion.identityでない場合、
position = Vector3.zeroでない場合、
1と、2-3で、結果が変わってきます。
しかも、rotationの場合、
2: rotation * Quaternionと
3: Quaternion * rotationでも、結果が変わってきます。
追加するQuaternionによる角変位の回転軸を、
transform軸を基準にした回転にする場合は2になり、
キャンバスのVector3軸を基準にした回転にする場合は3になります。
838名前は開発中のものです。
2017/12/13(水) 00:35:37.82ID:/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:Vector3(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でも同じ結果になります。
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:Vector3(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でも同じ結果になります。
839名前は開発中のものです。
2017/12/13(水) 06:09:25.65ID:EBksqhAl840名前は開発中のものです。
2017/12/13(水) 18:54:39.99ID:+IrYaRns 趣味でUnity使ってゲーム制作してる人と友達になる方法教えてください
841名前は開発中のものです。
2017/12/13(水) 18:59:16.17ID:w+IYDO+A お断りします
842名前は開発中のものです。
2017/12/13(水) 19:00:06.72ID:EBksqhAl ツイッターでよくね?
現実で探そうとしてもなかなか見つからんもんだぞ。
現実で探そうとしてもなかなか見つからんもんだぞ。
843名前は開発中のものです。
2017/12/13(水) 19:11:19.37ID:6lJsdJ22 transformのposition, rotation, scaleって、
なんでtransform.position,transform.rotation,transform.lossyscale
になっていて、transform.scaleじゃないの??
なんでtransform.position,transform.rotation,transform.lossyscale
になっていて、transform.scaleじゃないの??
844名前は開発中のものです。
2017/12/13(水) 19:23:08.89ID:+IrYaRns >>842
日本の活発な交流サイトとかはなさそうですね…ありがとうございます
日本の活発な交流サイトとかはなさそうですね…ありがとうございます
845名前は開発中のものです。
2017/12/13(水) 19:54:49.63ID:IotT1rVx >>844
ツイッター
FacebookのUnity寄り合い所
あとはリアルのイベント
ゲームジャムやエンジニア向け勉強会に参加して交流、名刺交換、SNS垢の相互フォローなどすれば簡単に知り合いは増える
ちゃんと進捗をSNS上で報告すれば質問とかも答えてもらえる
イベントを探すならdoorkeeper、atnd、peatix
ツイッター
FacebookのUnity寄り合い所
あとはリアルのイベント
ゲームジャムやエンジニア向け勉強会に参加して交流、名刺交換、SNS垢の相互フォローなどすれば簡単に知り合いは増える
ちゃんと進捗をSNS上で報告すれば質問とかも答えてもらえる
イベントを探すならdoorkeeper、atnd、peatix
846名前は開発中のものです。
2017/12/13(水) 20:48:15.04ID:/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は、自分のlocalscaleと親のlocalscaleの各成分の積になってます。
本当のscaleは、回転が入ると、Vector3ではなくて、3×3行列になってしまいます。
lossyScaleの場合は、回転前のスケールで、Vector3で表せるからだと思います。
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は、自分のlocalscaleと親のlocalscaleの各成分の積になってます。
本当のscaleは、回転が入ると、Vector3ではなくて、3×3行列になってしまいます。
lossyScaleの場合は、回転前のスケールで、Vector3で表せるからだと思います。
847名前は開発中のものです。
2017/12/13(水) 20:58:06.39ID:Kxr7McTA >>846
おお、中の人?w
おお、中の人?w
848名前は開発中のものです。
2017/12/13(水) 22:56:29.30ID:/jokcbje Unityでは、アフィン変換を行う4×4行列であるMatrix4x4が、
TRS(Vector3 position, Quaternion rotation, Vector3 lossy scale)
によって構成されていて、
スケーリング→回転→移動の順に適用するようにしています。
最初にスケーリングを行うことで、
3×3行列の対角成分しか使わず、Vector3で済みます。
RigidbodyのinertiaTensorも一緒で、
本来は3×3行列が必要な慣性モーメントテンソルを、
慣性主軸系に限定することで、対角成分しか使わず、
Vector3の主慣性モーメントで済むようにしています。
TRS(Vector3 position, Quaternion rotation, Vector3 lossy scale)
によって構成されていて、
スケーリング→回転→移動の順に適用するようにしています。
最初にスケーリングを行うことで、
3×3行列の対角成分しか使わず、Vector3で済みます。
RigidbodyのinertiaTensorも一緒で、
本来は3×3行列が必要な慣性モーメントテンソルを、
慣性主軸系に限定することで、対角成分しか使わず、
Vector3の主慣性モーメントで済むようにしています。
849名前は開発中のものです。
2017/12/13(水) 23:01:57.61ID:/jokcbje850名前は開発中のものです。
2017/12/13(水) 23:04:15.99ID:bbkFRctl 神になった気分だ。
スキルアップした今、どんなジャンルの仮想世界を作れと言われても
その詳細さえ教えてもらえれば
一瞬でどんなデータ構造/アルゴリズムで作ればいいかや
どんなデザインパターンを使えばいいかが
一瞬で頭にひらめき、スラスラとコードを書きはじめることができ、
予期せぬバグとかがなければ短期間でそのソフトやツールを一人で作る自信がある。
この予期せぬバグとはふだん使ってない昔やったプログラミング言語の細かい文法関連のことだけで
それはすぐ見直してカンを取り戻せばいいから全く問題ない。
スキルアップした今、どんなジャンルの仮想世界を作れと言われても
その詳細さえ教えてもらえれば
一瞬でどんなデータ構造/アルゴリズムで作ればいいかや
どんなデザインパターンを使えばいいかが
一瞬で頭にひらめき、スラスラとコードを書きはじめることができ、
予期せぬバグとかがなければ短期間でそのソフトやツールを一人で作る自信がある。
この予期せぬバグとはふだん使ってない昔やったプログラミング言語の細かい文法関連のことだけで
それはすぐ見直してカンを取り戻せばいいから全く問題ない。
851名前は開発中のものです。
2017/12/13(水) 23:09:45.76ID:Kxr7McTA >>850
いいから、お前は早く作れ!w
いいから、お前は早く作れ!w
852名前は開発中のものです。
2017/12/13(水) 23:11:16.24ID:Kxr7McTA >>849
専門?3d系プログラマ?
専門?3d系プログラマ?
853名前は開発中のものです。
2017/12/13(水) 23:36:39.33ID:fbUZmcUU transform.lossyscale.x = transform.parent.locssyScale.x * transform.localscale.x
じゃないのか?
じゃないのか?
854名前は開発中のものです。
2017/12/14(木) 00:23:40.49ID:AuQKwcV0 >>853
そうですね。
parentがrootとは限らないので、parentのlossyscaleじゃないとダメですね。
末枝側へ変換が累積していきますから。
親オブジェクト-子オブジェクトの2者関係だと、
親オブジェクトのlossyscale = localscaleなので、両方localscaleで大丈夫ですけど。
親オブジェクト-子オブジェクト-孫オブジェクトの3者関係だと、
孫オブジェクトの親オブジェクトである子オブジェクトのlossyscaleは、
親オブジェクトのlocalscale * 子オブジェクトのlocalscaleになってますから、
孫オブジェクトのlossyscale
= 子オブジェクトのlossyscale * 孫オブジェクトのlocalscale
= (親オブジェクトのlossyscale * 子オブジェクトのlocalscale) * 孫オブジェクトのlocalscale
= 親オブジェクトのlocalscale * 子オブジェクトのlocalscale * 孫オブジェクトのlocalscale
>>852
仕事じゃなくて学問の方で。
うっかりしてましたが、UnityはCamelCaseだから、localScale,lossyScaleが正しいのでしたね。
そうですね。
parentがrootとは限らないので、parentのlossyscaleじゃないとダメですね。
末枝側へ変換が累積していきますから。
親オブジェクト-子オブジェクトの2者関係だと、
親オブジェクトのlossyscale = localscaleなので、両方localscaleで大丈夫ですけど。
親オブジェクト-子オブジェクト-孫オブジェクトの3者関係だと、
孫オブジェクトの親オブジェクトである子オブジェクトのlossyscaleは、
親オブジェクトのlocalscale * 子オブジェクトのlocalscaleになってますから、
孫オブジェクトのlossyscale
= 子オブジェクトのlossyscale * 孫オブジェクトのlocalscale
= (親オブジェクトのlossyscale * 子オブジェクトのlocalscale) * 孫オブジェクトのlocalscale
= 親オブジェクトのlocalscale * 子オブジェクトのlocalscale * 孫オブジェクトのlocalscale
>>852
仕事じゃなくて学問の方で。
うっかりしてましたが、UnityはCamelCaseだから、localScale,lossyScaleが正しいのでしたね。
855名前は開発中のものです。
2017/12/14(木) 00:33:15.69ID:AuQKwcV0 Scaleの積は、Vector3の各成分とVector3の各成分の積なので、
Vector3 * Vevtor3 は定義されていないから、
Vector3.Scale(Vector3, Vevtor3) という演算ですね。
いわゆる、アダマール積(シューア積,要素積)です。
Unityでは、アダマール積の逆関数が定義されていないので、
自分でVector3.Scaleの逆関数を定義するか、
アダマール積の逆数を自分で定義する必要がありますね。
Vector3 * Vevtor3 は定義されていないから、
Vector3.Scale(Vector3, Vevtor3) という演算ですね。
いわゆる、アダマール積(シューア積,要素積)です。
Unityでは、アダマール積の逆関数が定義されていないので、
自分でVector3.Scaleの逆関数を定義するか、
アダマール積の逆数を自分で定義する必要がありますね。
856名前は開発中のものです。
2017/12/14(木) 02:05:43.30ID:tWpTkhe5 Vuforiaを使ってAR作りたいのですが実行するとマーカーは認識するもののカメラの映像が映らずに画面が黒くなります
誰か分かる方いらっしゃいますか...?
誰か分かる方いらっしゃいますか...?
857名前は開発中のものです。
2017/12/14(木) 08:31:00.73ID:fpuqjDVR 専門ってのは専門学校の事だろw
858名前は開発中のものです。
2017/12/14(木) 08:46:47.19ID:xj1b5N68859名前は開発中のものです。
2017/12/14(木) 11:08:53.86ID:X1xy6sbZ plus一ヶ月契約でもエッセンシャルパック2つってもらえますか?
あるいは契約し続けないと使えなくなる感じかな
あるいは契約し続けないと使えなくなる感じかな
860名前は開発中のものです。
2017/12/14(木) 12:22:42.24ID:JR7j67YV861名前は開発中のものです。
2017/12/14(木) 13:13:10.01ID:6Eg6sRVA862名前は開発中のものです。
2017/12/14(木) 15:25:57.18ID:UIHENBZT 数学難しいですね
でも大丈夫!UNITYにはアセットが有りますよ!
アセットを購入しましょう!
でも大丈夫!UNITYにはアセットが有りますよ!
アセットを購入しましょう!
863名前は開発中のものです。
2017/12/14(木) 17:52:04.05ID:V0Mq7RkO >>862
お前ニセモノだな!
お前ニセモノだな!
864名前は開発中のものです。
2017/12/14(木) 19:01:47.53ID:EAIFpwQr >>859
契約切れても有効だけどそもそもplus/pro自体12ヶ月継続必須だから前提が無理
契約切れても有効だけどそもそもplus/pro自体12ヶ月継続必須だから前提が無理
865名前は開発中のものです。
2017/12/14(木) 19:21:23.88ID:JR7j67YV866名前は開発中のものです。
2017/12/14(木) 20:39:20.26ID:AuQKwcV0 >>865
移動と回転とスケーリングができるように、
アフィン変換行列になっているからです。
Matrix4x4.TRS(position, rotation, scale)
で4×4行列に入力できますが、
出力する時は、
Vector3 = Matrix4x4.MultiplyVector(Vector3)
によって、Vector3で入力して、
Vector3で出力できるようになっています。
移動と回転とスケーリングができるように、
アフィン変換行列になっているからです。
Matrix4x4.TRS(position, rotation, scale)
で4×4行列に入力できますが、
出力する時は、
Vector3 = Matrix4x4.MultiplyVector(Vector3)
によって、Vector3で入力して、
Vector3で出力できるようになっています。
867名前は開発中のものです。
2017/12/14(木) 20:55:53.20ID:N8/aZDnG >>866
はえ〜すっごい‥
はえ〜すっごい‥
868名前は開発中のものです。
2017/12/14(木) 21:30:51.37ID:AuQKwcV0 >>858
回転行列MでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = M.MultiplyVector (V0);
これを、QuaternionとVector3の演算で行うと、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = Q * V0;
回転行列MでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = M.MultiplyVector (V0);
これを、QuaternionとVector3の演算で行うと、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = Q * V0;
869名前は開発中のものです。
2017/12/14(木) 21:32:41.20ID:AuQKwcV0 Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
は間違いで、
Matrix4x4 M = Matrix4x4.TRS (Vector3.zero, Q, Vector3.one);
が正しいです。
は間違いで、
Matrix4x4 M = Matrix4x4.TRS (Vector3.zero, Q, Vector3.one);
が正しいです。
870名前は開発中のものです。
2017/12/14(木) 21:45:36.22ID:AuQKwcV0 >>858
Quaternion QでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Quaternion Qv0 = Quaternion.identity;
Qv0.Set(V0.x, V0.y, V0.z, 0);
Quaternion Qv = Q * Qv0 * Quaternion.Inverse (Q);
Vector3 V = new Vector3(Qv.x, Qv.y, Qv.z);
こちらが、本来のQuaternion積でベクトルを回転させる方法です。
Unityでは、この面倒くさいQuaternion積の演算が、
「Quaternion * Vector3」だけでできるようになっています。
Quaternion QでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Quaternion Qv0 = Quaternion.identity;
Qv0.Set(V0.x, V0.y, V0.z, 0);
Quaternion Qv = Q * Qv0 * Quaternion.Inverse (Q);
Vector3 V = new Vector3(Qv.x, Qv.y, Qv.z);
こちらが、本来のQuaternion積でベクトルを回転させる方法です。
Unityでは、この面倒くさいQuaternion積の演算が、
「Quaternion * Vector3」だけでできるようになっています。
871名前は開発中のものです。
2017/12/14(木) 21:55:15.62ID:AuQKwcV0 Vector3 = Quaternion * Vector3
は、行列積を意識していると思われます。
Vector3 = Matrix3x3 * Vector3
としたいところですが、
UnityにはMatrix3x3は用意されていません。
(3×3行列の乗算では、回転とスケーリングしかできないからです)
Vector4 = new Vector4(Vector3, 1) で4次元ベクトルにしてから、
Vector4 = Matrix4x4 * Vector4 で計算して、
Vector3 = (Vector3)Vector4 で3次元ベクトルへ戻す必要があります。
最初に、Vector4 = (Vector4)Vector3 と手抜きをしてはいけません。
Vector4 = new Vector4(Vector3, 0) で代入されると、
アフィン変換の「移動」が乗算されなくなります。
は、行列積を意識していると思われます。
Vector3 = Matrix3x3 * Vector3
としたいところですが、
UnityにはMatrix3x3は用意されていません。
(3×3行列の乗算では、回転とスケーリングしかできないからです)
Vector4 = new Vector4(Vector3, 1) で4次元ベクトルにしてから、
Vector4 = Matrix4x4 * Vector4 で計算して、
Vector3 = (Vector3)Vector4 で3次元ベクトルへ戻す必要があります。
最初に、Vector4 = (Vector4)Vector3 と手抜きをしてはいけません。
Vector4 = new Vector4(Vector3, 0) で代入されると、
アフィン変換の「移動」が乗算されなくなります。
872名前は開発中のものです。
2017/12/14(木) 23:49:37.69ID:zts/k6NY 行列なんか意識しないでも3dゲーム作れるようになったんだからすごい時代だよね
結構まえからだけど
結構まえからだけど
873名前は開発中のものです。
2017/12/14(木) 23:54:59.29ID:N8/aZDnG >>870
へー、なるほどなぁ‥
へー、なるほどなぁ‥
874名前は開発中のものです。
2017/12/15(金) 01:39:47.96ID:TM1zyrgU875名前は開発中のものです。
2017/12/15(金) 04:19:45.41ID:L6b+QAfA なるほど よくわからん
876名前は開発中のものです。
2017/12/15(金) 11:35:10.31ID:a5awPS/6877名前は開発中のものです。
2017/12/15(金) 12:38:14.64ID:c63jfGrC 物理演算系の解説を希望!
C#の経験あっても、そもそも物理演算は別物な気がする・・・
物理演算は、2Dと3Dで若干仕様が違うし、なかなか体系的に物理演算を解説しているサイトも少ない
せいぜい、velocityとAddForce止まりが多い
重力設定や衝突判定をUnityにまかせてしまうには、物理演算を使用するのが手っ取り早いんだけど、
物理演算だと、これまでのグラフィックス操作的な、プログラミングメソッドがあまり使えない
(基本的に、positionやrotationを直接いじらないほうが良いみたい)
C#の経験あっても、そもそも物理演算は別物な気がする・・・
物理演算は、2Dと3Dで若干仕様が違うし、なかなか体系的に物理演算を解説しているサイトも少ない
せいぜい、velocityとAddForce止まりが多い
重力設定や衝突判定をUnityにまかせてしまうには、物理演算を使用するのが手っ取り早いんだけど、
物理演算だと、これまでのグラフィックス操作的な、プログラミングメソッドがあまり使えない
(基本的に、positionやrotationを直接いじらないほうが良いみたい)
878名前は開発中のものです。
2017/12/15(金) 12:46:53.83ID:bN2Y1bPS アイテムを所持していればお化けを倒せるというシステムにしようと思っています。
それでそのアイテムを十字架の画像にしようと思っているのですが、日本人だったらアイコン見ただけで何となく意味が分かるだろうと思うのですが、海外の人でも抵抗なくスッと理解されるんでしょうか?
それでそのアイテムを十字架の画像にしようと思っているのですが、日本人だったらアイコン見ただけで何となく意味が分かるだろうと思うのですが、海外の人でも抵抗なくスッと理解されるんでしょうか?
879名前は開発中のものです。
2017/12/15(金) 13:05:51.44ID:DzxyY709 >>878
アセットを購入すればいいですよ
アセットを購入すればいいですよ
880名前は開発中のものです。
2017/12/15(金) 15:58:23.54ID:59uPCR9L >>878
海外のゲームを参考にすればわかりますよ
海外のゲームを参考にすればわかりますよ
881名前は開発中のものです。
2017/12/15(金) 16:32:05.45ID:kzY3QNw/882名前は開発中のものです。
2017/12/15(金) 16:54:14.50ID:bO73tzHJ アイテム説明が一番確実だわな
むしろ必須じゃないか?
むしろ必須じゃないか?
883名前は開発中のものです。
2017/12/15(金) 20:05:01.07ID:c63jfGrC transform.LookAtだと、どうしてもオブジェクトのforward軸が対象を向いちゃう
そうじゃなくて、オブジェクトのup軸を対象に向けたいんだけど、一体どうすれば・・・?
transform.LookAtでオブジェクトのforward軸を対象に向けて、
その後にtransform.Rotateでx軸で90度して、up軸をforwardへ向けているんだけど、
2段階になっちゃって、無駄が多いし、その瞬間動作が表示されちゃう
オブジェクトとtransform軸の対応を変更できれば、
オブジェクトのup軸方向を、forward軸に設定したいんだけど・・・
そうじゃなくて、オブジェクトのup軸を対象に向けたいんだけど、一体どうすれば・・・?
transform.LookAtでオブジェクトのforward軸を対象に向けて、
その後にtransform.Rotateでx軸で90度して、up軸をforwardへ向けているんだけど、
2段階になっちゃって、無駄が多いし、その瞬間動作が表示されちゃう
オブジェクトとtransform軸の対応を変更できれば、
オブジェクトのup軸方向を、forward軸に設定したいんだけど・・・
884名前は開発中のものです。
2017/12/15(金) 20:51:06.18ID:PCtIHB7r おぶじえくを最初から傾けておくか、小オブジェクトで対応するか、いくらでも方法あるだろうね。
ルックアット使わずにやるのも有りだし。
ルックアット使わずにやるのも有りだし。
885名前は開発中のものです。
2017/12/15(金) 23:29:48.61ID:nw+wySXa >>883
目標の座標をVector3 targetとすると、
transform.right = targetでいけませんか?
transform.LookAt(target) は、
transform.forward = target と同じになるはずです。
目標の座標をVector3 targetとすると、
transform.right = targetでいけませんか?
transform.LookAt(target) は、
transform.forward = target と同じになるはずです。
■ このスレッドは過去ログ倉庫に格納されています
