【3Dゲームエンジン】Unity 8
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2012/01/23(月) 13:42:14.72ID:nCTiWtyJ公式サイト(英語)
ttp://unity3d.com/unity/
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
wiki
ttp://www24.atwiki.jp/unity2ch/
前スレ
【3Dゲームエンジン】Unity 7
http://toro.2ch.net/test/read.cgi/gamedev/1324320163/
0327名前は開発中のものです。
2012/02/01(水) 19:19:52.30ID:/aTPJiQQUnityでドラクエみたいなシーン切り替え型のゲームを作るのは多少手間がかかるぞ。
Unityのシーンは基本的に前のシーンを完全に捨てて新しいシーンを実行する(例外はDon'tDetroy指定)。
LoadLevelAdditiveは前のシーンに新しいシーンを加算するので新古が混在する。
従ってドラクエのようなエンカウント戦闘型のゲームを作る場合、
1. シーンの進行をTime.timeScale=0で止める(止められるように作っておく)
2. LoadLevelAdditiveで戦闘シーンをロードして実行
こっちのシーンはTime.timeScale=0で止まらないように作っておく
3. 戦闘が終わったら全部削除してTime.timeScale=1にして再開
フィールドと戦闘シーンは独立して開発できる。
ゲームでよくあるコンフィグ画面とかもこの方式だ。
Unity本はこういう事を解説しろよと思う。バンナム本にも書いてないし....
0328名前は開発中のものです。
2012/02/01(水) 19:38:19.41ID:Wtm7WDVhコンフィグ画面みたいな加算シーン時の基底シーン管理は本来プログラムがやるもんで、timeScaleを使うべきじゃない
個人製作ならそれでいいかもしれんが本に書いて人に勧めるようなtipsではない
それにコンフィグならまだしも戦闘シーンをtimeScale非依存で作るのは相当めんどいぞ
0329名前は開発中のものです。
2012/02/01(水) 20:16:34.79ID:AXXKDREL0330名前は開発中のものです。
2012/02/01(水) 20:46:33.14ID:/aTPJiQQそれは一般的なゲーム制作での話だろう。
Unityでは(そういうシーンのステート管理ができないので)シーンのポーズは
timeScale=0でやるのがUnity Answersなどを見る限り一般的だ。
もちろんPause()関数を全オブジェクトに用意してもいい。
3Dと2Dのシーンの切り替えは上で書いた方法でやるしかない。
少なくともUnityでは。
0331名前は開発中のものです。
2012/02/01(水) 22:41:24.01ID:pKSScDd9APIが無いからUnityでは出来ないとか、なんだそりゃ
0332名前は開発中のものです。
2012/02/01(水) 22:45:22.06ID:llm71DrH0333名前は開発中のものです。
2012/02/01(水) 22:49:31.60ID:aP3l/Hgeそれをシーンと見立てて表示、非表示切り替えた方が楽だねぇ
新しいオブジェクトはそいつらにくっつける感じで。
unityのシーンは一括して読み込む単位とだけ考えたほうがよさげ
0334名前は開発中のものです。
2012/02/01(水) 22:51:30.54ID:aP3l/Hge0335名前は開発中のものです。
2012/02/01(水) 23:11:06.47ID:D+xFxmiAそれは無意味
0336名前は開発中のものです。
2012/02/01(水) 23:33:22.20ID:WCF5w/1e0337名前は開発中のものです。
2012/02/01(水) 23:35:27.60ID:Q4b7VQRUその細々としたものを洗い出して、それぞれのサンプルを作るとかかなあ、
別フィールド移動ならシーン間でのデータ共有サンプル作ったり、
タイマンならサンドバック攻撃するサンプル作ったり、その過程でパーティクルでエフェクト作ったり、
どんなタイマン画面か分からんけど、往年の2D格ゲーみたいにモーションエディタのUnity版作って
2D格げーと同じ感覚で実装できるように環境構築するってのも良いかも分からんね。
0338名前は開発中のものです。
2012/02/02(木) 01:36:29.56ID:w+qsRCXW仕事でゲーム設計に精通している人の答えなら喜んで吸収したいし、ありがたいけど
そうでもない人が知ったかぶって答えたりするのはご遠慮願いたい
まあ、些細な質問になら答えてもいいけどな
0339名前は開発中のものです。
2012/02/02(木) 01:59:39.32ID:ONbYAniM0340名前は開発中のものです。
2012/02/02(木) 02:06:57.87ID:6y0DCMNX0341名前は開発中のものです。
2012/02/02(木) 03:20:52.79ID:O8lUf1+rじゃあ仕事でゲーム設計に精通した人に聞きなよw
そんなふうに考えてるのに2chで質問するオマエの頭がおかしいよwww
0342名前は開発中のものです。
2012/02/02(木) 05:55:36.42ID:IT+qcB3btimeScale=0はコンフィグ設定時にゲームの時間を止める手段だろ。
戦闘シーン切り替えで使う手段じゃない。
戦闘ロジックでも時間の流れは絶対必要なんだから。
フィールドで使うオブジェのUpdateの頭で戦闘中かフラグをチェックして、
もしそうならreturnで何もしなきゃいいだけ。
そういう共通処理を持った親クラスから継承してもいい。
ゲームのロジックの問題なのでエンジンレベルで関与する必要はない。
0343名前は開発中のものです。
2012/02/02(木) 06:08:07.22ID:sut+YWneそういうのプロでも手探りだから
結局、手が早くないとこの分野っていろいろやること多くて何も完成しないよ
0344名前は開発中のものです。
2012/02/02(木) 08:47:05.74ID:2UCdhMnX動的に変更する事がほぼできない。
0345名前は開発中のものです。
2012/02/02(木) 08:59:01.75ID:d9L2nvXf0346名前は開発中のものです。
2012/02/02(木) 09:07:33.49ID:2UCdhMnX型を動的に作って宣言しないと参照先のスクリプトを変更できない。
getcomponentにかわる機能は無いのか。
0347名前は開発中のものです。
2012/02/02(木) 09:50:32.78ID:Eqs5Fw8zオレが漠然と思ってた事をうまく表してくれたようだな、ありがとう
0348名前は開発中のものです。
2012/02/02(木) 09:57:42.20ID:3hEf+aLcマジレスするとお前は作り方間違ってるからもう一度一から考えたほうがいい
0349名前は開発中のものです。
2012/02/02(木) 10:07:45.80ID:1d7wnEMfUnityのフォーラムもそんな感じw
過去プログラマーだった人がこんな感じだと思うけどどうなの?
っていう形でスクリプト晒してくるけど何かイマイチピントがズレているみたいな
感じだな。
0350名前は開発中のものです。
2012/02/02(木) 10:12:04.79ID:gfO9NudS普通はそういうアプローチじゃなくて、処理を分岐するロジックを実装すると思う
具体的には、>>342 も触れてたり(密結合)、>>297も書いてるが(粗結合)、処理の担当範囲で分離して
それを利用する形だと思う
>>335
どこが無意味か説明を
0351名前は開発中のものです。
2012/02/02(木) 10:21:14.23ID:/r7ez3h1俺現プログラマだけど、おっさんに限らず、人は人だからほっとくべき
あと2Dゲーも3Dゲーも、描画や位置管理の方法とそれ周りの処理が違うだけで、
自分が作成する本来の目的、ゲームロジックって範疇で言えば同じことだから
2Dや3Dって点だけで、もしも切り分けて文句言う人なんていたら、スルーしておk。相手がおっさんでも、若い初心者でも
自分で間違いに気づいてもらわないと、きっと理解できないから
0352名前は開発中のものです。
2012/02/02(木) 11:08:57.41ID:cjhCph2cスクリプトが咲きかコンポーネントが咲きか
はたまた
0353名前は開発中のものです。
2012/02/02(木) 11:57:23.14ID:Z6MLBH4Lそのとき、質問の仕方を変えたりすることでコミュを深めようと
する人と、 >>349 のように相手がズレてるという断定する
残念な人に分けられる。
0354名前は開発中のものです。
2012/02/02(木) 12:00:00.60ID:ONbYAniMStartやらUpdateやらが通知されるようになりますが、
どうやってこういうクラス作るんですかね?
MonoBehaviourの代わりに自分で作成したMyBehaviourを継承させて
同じように動作するものを作ろうかと思ったんですが、
Interfaceだと実装がないとエラーになるし、
継承だとOverrideが関数の宣言にないとエラーになってしまう‥・。
0355名前は開発中のものです。
2012/02/02(木) 12:03:59.36ID:8U2z1Zgt0356名前は開発中のものです。
2012/02/02(木) 12:32:54.19ID:2UCdhMnX0357名前は開発中のものです。
2012/02/02(木) 12:40:05.61ID:ONbYAniM0358名前は開発中のものです。
2012/02/02(木) 12:51:00.26ID:ONbYAniM0359名前は開発中のものです。
2012/02/02(木) 13:28:29.78ID:w+qsRCXWまたお前かよ
何回同じ質問すれば気が済むんだよ
0360名前は開発中のものです。
2012/02/02(木) 14:27:13.93ID:2UCdhMnX初めて来ましたけど。
0361名前は開発中のものです。
2012/02/02(木) 14:39:19.83ID:VNNQTs2q禅問答とは違うと思うよ
何故後先の話だと思った?
0362名前は開発中のものです。
2012/02/02(木) 14:42:32.51ID:CTsc3b1dなんか似たような種類のやりとりが多いからじゃね
共通の宣言てより、共通で参照するオブジェクトを用意して、
それらから欲しい情報取り出すアプローチだと思う
具体的にはこのスレスクロールして過去レスを参照で
0363名前は開発中のものです。
2012/02/02(木) 14:55:02.42ID:3NJQyIm0これライセンス的に18禁のエロゲ作っても大丈夫なんでしょうか?
0364名前は開発中のものです。
2012/02/02(木) 15:00:16.57ID:3hEf+aLc0365名前は開発中のものです。
2012/02/02(木) 15:32:57.77ID:nEHR3Yv+>>360
344:getcomponentがスクリプトを型指定しないと変更できないのが痛いな。動的に変更する事がほぼできない。
346:スクリプト型で宣言したスクリプト名でないとgetcomponentに入れられない。型を動的に作って宣言しないと参照先のスクリプトを変更できない。getcomponentにかわる機能は無いのか。
何かから派生させて、使うときにダウンキャストでいんじゃないか?
356:ゲーム中の全スクリプト共通の宣言ってどうやったらいいんでしょう?
シングルトン?
360:初めて来ましたけど。
初めまして
0366名前は開発中のものです。
2012/02/02(木) 15:34:10.78ID:3NJQyIm0ありがとうございます
0367名前は開発中のものです。
2012/02/02(木) 15:44:50.97ID:uVCAF7bG推測すると、Unityの質問より、もっと手前の質問で溢れ変えるから、
分けたところで結局いまと変わらないと思う
0368名前は開発中のものです。
2012/02/02(木) 16:05:06.25ID:6BJSgBULワロス
0369名前は開発中のものです。
2012/02/02(木) 16:21:43.38ID:8U2z1Zgt0370名前は開発中のものです。
2012/02/02(木) 16:46:04.22ID:8U2z1Zgtモデラー側で変更してReimportしても変更が反映されないんだが...
0371名前は開発中のものです。
2012/02/02(木) 17:20:00.86ID:2UCdhMnX>>368
またくるぜ。
getcomponentやconstの話が出たら俺だと思ってくれ。
0372名前は開発中のものです。
2012/02/02(木) 18:34:07.73ID:VNNQTs2qゲトコン って言うコテつけろもう
0373kaabankuru
2012/02/02(木) 18:46:05.79ID:SPjN05cD0374名前は開発中のものです。
2012/02/02(木) 18:58:39.17ID:ONbYAniM0375名前は開発中のものです。
2012/02/02(木) 19:11:14.35ID:nEHR3Yv+http://unity3d.com/support/documentation/ScriptReference/Application.html
http://unity3d.com/support/documentation/Manual/Platform%20Dependent%20Compilation.html
0376名前は開発中のものです。
2012/02/02(木) 19:21:19.88ID:ZPC7+cLTA:(0,0,0)
|--- B:(0,0,0)
| --C:(0,0,0)
この状態からCを(0,0,10)に並行移動すると一緒にBも移動するね! なんでやねん!
BのInspectorの表示は(0,0,0)のままだが表示位置は(0,0,5)に移動する。
どんな仕様だそれは。Unity狂ってるわ
カメラのLookAtTarget用にEmptyオブジェクトを作っていたら気がついた。
0377名前は開発中のものです。
2012/02/02(木) 19:24:20.11ID:3hEf+aLc0378名前は開発中のものです。
2012/02/02(木) 19:59:33.53ID:sZzwnrFN0379名前は開発中のものです。
2012/02/02(木) 20:09:40.84ID:ONbYAniMやはりそれですか、、
DLL内部で使いたかったのでコンパイル時だと困るので
APIレベルのものを探していました。
とりあえず自分で用意する方法でしのいでみます。
0380名前は開発中のものです。
2012/02/03(金) 03:08:06.38ID:9tMK53Z4あれってTerrainはめちゃくちゃ広いけど、あれくらいの大きさは余裕なのか?
どれくらいの広さでレベルを分割すればいいのかわからない
できれば一つのエリアとして作りたい
0381名前は開発中のものです。
2012/02/03(金) 04:00:46.61ID:GE4szUBL投影投影で、カメラから遠かったらfar以上がクリッピングされるし、LODで遠くのモデルもローポリになるし、
全マップのオブジェクトの計算処理も動き出すトリガとなる半径決めといて、そのColliderに入ったら動き出すとかすれば
計算処理浮かせられるだろうし、なんならシーン切り替え用って意味合いのCollider作るだけでもいけるかもしれない。
0382名前は開発中のものです。
2012/02/03(金) 04:58:14.12ID:KIAmiWu2アセットに追加したときに元ファイルのコピーがプロジェクトの中に作られて、
そのファイルを更新していかないとインポートされないってことじゃないの?
0383名前は開発中のものです。
2012/02/03(金) 08:24:48.34ID:PpA5+TGiReimportは本当に謎。何も起きない
0384名前は開発中のものです。
2012/02/03(金) 08:31:10.11ID:PpA5+TGi多分すっごい勘違いをしている
Gizmo(赤青緑の矢印)はローカル座標の原点(0,0,0)に表示される「のではない」
選択したゲームオブジェクト(複数)の真ん中に置かれる
上の例で言えばABCを選択したらAとCの中間に置かれる
まあローカル座標の原点に表示しろよとは思う
0385名前は開発中のものです。
2012/02/03(金) 09:17:17.19ID:P65oJcDg0386名前は開発中のものです。
2012/02/03(金) 09:22:26.97ID:eWorxgCh0387名前は開発中のものです。
2012/02/03(金) 10:09:14.42ID:EytmeRKzこんな方向もあるらしいよ
http://www.youtube.com/watch?v=83fNZDLwxHs
0388名前は開発中のものです。
2012/02/03(金) 10:16:38.18ID:miWIZA4Qasset server使ってる?
0389名前は開発中のものです。
2012/02/03(金) 10:33:22.46ID:PpA5+TGiえ、まじ?
それは知らなかった。教えて下さい<(_ _)>
0390名前は開発中のものです。
2012/02/03(金) 10:35:32.62ID:PpA5+TGi使ってない。お金払いたくないでござる。絶対に払いたくないでござる!
0391名前は開発中のものです。
2012/02/03(金) 13:17:53.41ID:b7SbgrUbttp://www.businesswire.com/news/home/20120201005840/ja/
ttp://www.daz3d.com/
DAZ StudioはPoser互換、Bryceは風景作成ソフト、Hexagonはモデル作成ツール
とのことだけど、Unityに利用できるかな?
0392名前は開発中のものです。
2012/02/03(金) 15:03:48.62ID:04GMZg31俺はBlenderユーザなので特に使う理由が無かったから、インストールしまま放置
Bryceに関しては、5.5が期間限定無料公開されたとき手にいれたけど、
あれは静止画動画向けの内容で出力されるので、リアルタイムゲーム向けな内容にならないと思う
あと、背景用の自然物以外の建物とかは結局自分でモデリングして取り込む形になるのは変わらないし、
コリジョン設定も全部自分でする事になるので、Unity内蔵の地形生成と比べて、結局アドバンテージはあんまり無いと思う
0393名前は開発中のものです。
2012/02/03(金) 19:09:11.54ID:k2Eav8B5Unity本も全部もってます
有料版Unityも持っています
勉強会にたくさん足運んでます
作ったゲーム、本のサンプルのシューティングゲームです
ですが改造しました
エロゲとか東方とか太鼓の達人やモンスターハンターみたいなゲーム作りたいと思います
好きなゲームはシュタインゲート
0394名前は開発中のものです。
2012/02/03(金) 19:13:44.75ID:k2Eav8B5みんな持ってるのでMac流行ってるのかな?と思い
Mac買いましたcore-i7、imac一番高いやつです
iPhoneゲームが作れるらしいですねXCodeという結合開発環境で
Unityもインストールしてみます
みなさんMacでゲーム作れますか?
javascriptができます,javasriptの本かいました
勉強会で本を沢山薦められたので買いました
バンナム社員の方とお会いしました!そしたらバンナム本がいいよといわれたので即買いました
これはとても参考になります
勉強会に足はこびたいと思います
0395名前は開発中のものです。
2012/02/03(金) 19:15:24.59ID:eWorxgCh金を取れるかを真剣に考えないと、ゲームも音楽みたいになるな。
たぶん、もう商売としては行き詰まる寸前。
0396名前は開発中のものです。
2012/02/03(金) 19:18:31.43ID:k2Eav8B5売るにはどうしたらいいのでしょうか?
なんか登録とかいりますか?
アルバイトでためたお金50万あるのでそれを使いたいと思います
バンナムでゲームプログラマしたいと思います
ポートフォリオは先ほど述べました、東方風シューティングゲームです
東方とはちょっと違います、動きの早さなど絵を変えました玉の発射など
格闘ゲームも作りたいと思います
そして自分でゲームを1本5000円とかで売りたいと思います
0397名前は開発中のものです。
2012/02/03(金) 19:23:21.84ID:CYGceegXGameObject instance = (GameObject)Instantiate(GameObject.Find("Prefab"));
は出来るんですが、Hierarchyに登録せずにインスタンス生成する方法はありますか?
0398名前は開発中のものです。
2012/02/03(金) 19:31:03.47ID:miWIZA4QAndroidやiPhoneアプリの値段みてから決めろ
PCやMac用でもその値段じゃ厳しいと思うぞ
MacなんざAppStoreで安売り真っ最中だし
3Dのクールなピンボールが350円とかだ
0399名前は開発中のものです。
2012/02/03(金) 19:33:45.42ID:k2Eav8B5ありがとうございます
350円ですか・・・
5000円だと厳しいですね
ちなみに、398さんはゲーム売ったりしていますか?
なんかAppstoreで売ると凄いと聞いたので
0400名前は開発中のものです。
2012/02/03(金) 19:35:01.28ID:z6fc1kUAHierarchyに登録せずにインスタンス生成するって何?
身分証明書持って行かずに免許貰いたいって言ってるようなもんだけど
0401名前は開発中のものです。
2012/02/03(金) 19:37:57.52ID:FwV75Ti00402JohnSmith
2012/02/03(金) 19:46:15.10ID:HVOT751Vめているから せいかくにわ わからないけど
Script で ごんに つかうと あやつられる
GameObject instance = Instantiate(Resources.Load("something"));
"something" わ Resources と いう Folderお つくって その
なかに はいって いるべきです
でも ごれわ memoryの けいさんが まえの ことより おおい
けってんが あります
しらないのが あれべ UnityScriptReferenceで
がんだんに めつけるんです
0403名前は開発中のものです。
2012/02/03(金) 19:52:32.71ID:CYGceegX無理なのか……d
んじゃプレハブで弾とか作る場合は一個その辺に置いとくわけね
0404名前は開発中のものです。
2012/02/03(金) 19:55:26.74ID:z6fc1kUAあ、スマン。勘違いしてた
ProjectビューにあればOKだよ Transformの参照にドラッグ&ドロップでプレハブ登録すればよし
0405JohnSmith
2012/02/03(金) 20:02:55.73ID:HVOT751Vいるなら おしえて くでさい
0406名前は開発中のものです。
2012/02/03(金) 20:28:07.66ID:R93hK/U00407名前は開発中のものです。
2012/02/03(金) 20:40:53.21ID:CYGceegX>>402
thanks 4 ur reply
I'll try
>>404
そのD&Dをスクリプト内から動的にやりたかったんだ
ていうかResourcesに放り込むのがUnityの流儀なのか
0408名前は開発中のものです。
2012/02/03(金) 20:49:37.25ID:k2Eav8B5森の中をカモフラージュしながら徘徊する
口から視界を得られるトラップを仕掛ける
獲物は苦しみながら死に絶える 体から強烈な猛毒を噴出する
そのなもSlither
0409名前は開発中のものです。
2012/02/03(金) 20:52:46.58ID:PpA5+TGi通常これからInstantiate()するPrefabは決められるはずだ
最初Instantiate()に渡す変数の型がさっぱり謎だったんだが
GameObjectではなくスクリプト名を書いておいて
エディターでPrefabを突っ込めばいけた。
0410名前は開発中のものです。
2012/02/03(金) 21:00:58.20ID:PpA5+TGiProはFBXエクスポーターが使えて問題なくUnityに取り込めた。
Colladaエクスポーターも使えるがバグってるのでUnityに取り込みは無理だった。
1点だけ注意。aniMate2(という標準的なアドオン)で作ったデータはエクスポート前に「Bake To Sdutio keyframes」が必要。
使ってみた感想はキャラクターに手っ取り早くモーションを付けてUnityに取り込むにはわりといい。
アニメーションが複数クリップを取り扱えないのでインポート時にSplitが必要。
元々がPoser互換ソフトなのでアニメーションはちと弱い。
aniMate2はもっとアニメーションクリップがあれば使えるけど現状では力不足
一番ありがたかったのはカーネギーメロン大学の”DAZ friendly"なフリーのモーションキャプチャーデータがそのまま使えたこと。
https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture
0411名前は開発中のものです。
2012/02/03(金) 21:06:26.54ID:XXxbj4sl下記のページを読んでカメラの動きについて勉強していた
http://unity.gameenginejp.com/2010/12/4.html
var q = Quaternion.AngleAxis(45,Vector3.right);
↑X軸に対して45度の傾きを取った、これは分かる
transform.rotation = q;
↑qを代入してカメラの角度を45度に固定した、これも分かる
public float Distance = 10.0f;
↑上記の変数でカメラとターゲットの距離を変えられるようにした、これも分かる
this.Direction = q * -Vector3.forward;
↑ここでなぜ「-Vector3.forward」が出てくるのか分からない
代入結果は45度からz軸と反対方向に進んだ位置という理解でいいだろうか?
それとも(0,0,45)-(0,0,1)で(0,0,44)としたいのか?
なぜ「-」とするのかも分からない(試しに+にしたら視界がぶっ飛んだ)
試しにthis.Direction = q;としたらエラーに成ったのも理解できなかった(Directionが座標で、qが傾きだから?)
transform.position = this.Player.transform.position + this.Direction*Distance;
↑ターゲットの位置に変数を足して、カメラの位置を出した、これは分かる
3Dの移動処理がよく分からんです(´・ω・`)
0412名前は開発中のものです。
2012/02/03(金) 21:21:29.74ID:VxnT9p6E逆向きのベクトルをクォータニオンで回転させてる
その回転後のベクトルを、Directionとしてセットしてる
クォータニオンや行列は、それ自体数学的な意味での関数と思っていい
値でなく、f
0413名前は開発中のものです。
2012/02/03(金) 21:32:50.19ID:nVgaabe2ある軸に対して45度の傾きを実現させるための数学的な意味での関数を得る、だけ
なので、それを利用して何かを回転させ、その結果を得たい
もとの数学的なその関数は、引数に与えた軸に対して、引数に与えた角度の回転を表す
それを、あるベクトルを対して適用すれば、そのベクトルがその関数によって回転したあとの状態になる
考え方はそんな感じ。多分捉え方が違う
クォータニオンは基本的に、自由なあるベクトルを軸として回転させる、その計算に使うもの
0414名前は開発中のものです。
2012/02/03(金) 21:32:54.30ID:gdEK9pldある軸に対して45度の傾きを実現させるための数学的な意味での関数を得る、だけ
なので、それを利用して何かを回転させ、その結果を得たい
もとの数学的なその関数は、引数に与えた軸に対して、引数に与えた角度の回転を表す
それを、あるベクトルを対して適用すれば、そのベクトルがその関数によって回転したあとの状態になる
考え方はそんな感じ。多分捉え方が違う
クォータニオンは基本的に、自由なあるベクトルを軸として回転させる、その計算に使うもの
0415名前は開発中のものです。
2012/02/03(金) 21:33:09.86ID:XXxbj4slありがとうございます
逆向きのベクトルを回転させているということは
this.Direction = q * -Vector3.forward;
は
Quaternion.AngleAxis(-45,Vector3.forward);
と同じと考えていいですか?
でもthis.Direction(座標)とq(傾き)は型が違うってことはそれは違いますね
| q
|/
| ̄ ̄
を逆向きにするということは
|
_|_
/|
q
なったということですか
物分り悪くてすみません
0416名前は開発中のものです。
2012/02/03(金) 21:33:53.86ID:XXxbj4sl0417名前は開発中のものです。
2012/02/03(金) 21:40:02.84ID:eWorxgCh0418名前は開発中のものです。
2012/02/03(金) 21:46:38.32ID:Qh5gfQqO「ぼくのかんがえたげーむ」語りだすキチガイが混じって実にカオスwwww
0419名前は開発中のものです。
2012/02/03(金) 21:47:19.82ID:k2Eav8B5森の中をカモフラージュしながら徘徊する
口から視界を得られるトラップを仕掛ける
獲物は苦しみながら死に絶える 体から強烈な猛毒を噴出する
そのなもSlither
0420名前は開発中のものです。
2012/02/03(金) 21:50:15.17ID:XXxbj4slqには45度の傾きを実現させるための数値を入れた
transform.rotation = q;で実行してオブジェクトをX軸に対して45度、傾かせた
ここまで分かりました
this.Direction = q * -Vector3.forward;
で、z軸に対して「X軸に対して45度に傾かせる数値」をかけて逆さまにしたってことになるのでしょうか?
あれか、数学の理解が足りないのか(´・ω・`)
0421名前は開発中のものです。
2012/02/03(金) 21:54:37.93ID:+oF89WrWちなみにさらに補足すると、クォータニオンは立場として、ベクトルやスカラでなく、行列の側のもの。
「何度の回転」と言う言葉は暗黙のうちに、「何の軸で」が隠されている。
単純なxyzの三軸を考える時、それぞれの軸について、それらを中心に回転させるだけなら簡単だが、
「任意のベクトルを軸にして」となると途端に複雑になるうえ、
それぞれオイラー角を順番掛け合わせても、正しく回転できなくなる角度がある(ジンバルロック)
クォータニオンは行列での単純かけあわせでなく、ある軸におけるネジ方向の回転を得る数学的な意味での関数オブジェクト
より詳細はぐぐってくれ。移動中にスマホで各のはつらい
0422名前は開発中のものです。
2012/02/03(金) 21:56:17.71ID:PpA5+TGiQuaternion.AngleAxis(45,-Vector3.forward); ==> (0,0,-1)軸の周りに45度回転を表すクオータニオン
Quaternion.AngleAxis(-45,Vector3.forward); ==> (0,0,1)軸の周りに-45度回転を表すクオータニオン
Vector3 a, b;
Quaternion q;
とすれば、
b = q * a;
ベクトルaをqのクオータニオンで回転したのがベクトルb
0423名前は開発中のものです。
2012/02/03(金) 22:00:47.88ID:6DLGQUriDirectionにセットしているのは、その上で出ているベクトルと全く関係ない、新しいベクトル
先に作成した回転関数を使って、新しいベクトルを回転させ、それを代入しているのだ
数学は慣れだぜ
0424名前は開発中のものです。
2012/02/03(金) 22:01:13.48ID:PpA5+TGithis.Direction = q * -Vector3.forward;
リンク先をまったく見てないけど。
カメラはローカル座標で(0,0,1)方向を向いているのがUnityの鉄則
これはカメラとは正反対の方向(0,0,-1)をワールド座標に変換(q)してDirectionに格納している。
カメラの後ろ方向を保存しておいて後で何か必要になるんでしょ
0425名前は開発中のものです。
2012/02/03(金) 22:07:13.44ID:Q6CK7I7vクォータニオンは、そんなわけで「何の軸での回転なのか」だから、生まれるには必ず軸を表す正規化(ノーマライズ)されたベクトルが必要。
最初に渡してるベクトルはそれ。
次に掛けてるベクトルは、クォータニオンに変化させてもらいたいベクトル。
両者はまったく別の立場
0426名前は開発中のものです。
2012/02/03(金) 22:24:02.37ID:XXxbj4slぬおおおお
すみません、ありがとうございます
分かって来ました
カメラはターゲットをX軸から45度の角度で見下ろすことを目的としている一方で
「Vector3.forward」だとターゲットの視点から正面方向(z方向)の力を持ったベクトルを取ってしまうため、
「-Vector3.forward」でターゲットの背中方向(正面の反対)に力を持ったベクトルを取った
そのベクトルを回転させた上で、
ベクトルの力の方向に、離れた場所でカメラを設置したんですな
最後のtransform.positionを決めるにはベクトルの方向がターゲットの視点と反対でないといけなかったというわけか
ベクトルとクォータニオンの使い方が分かって来ました
ありがとうございました(`・ω・´)
■ このスレッドは過去ログ倉庫に格納されています