トップページgamedev
984コメント389KB

【3Dゲームエンジン】Unity質問スレッド1

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2012/04/20(金) 13:11:07.27ID:wu5IoHob
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。

Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■本スレ
【3Dゲームエンジン】Unity 13
http://toro.2ch.net/test/read.cgi/gamedev/1334399781/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/

・ユーザーガイド&リファレンス
 http://unity3d.com/support/documentation/
 (日本語訳)
 http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/
・チュートリアル
 http://unity3d.com/support/resources/tutorials/
・FAQ
 http://answers.unity3d.com/index.html
・Unityのスクリプト公式
http://unity3d.com/support/documentation/ScriptReference/index.html

・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0638名前は開発中のものです。2012/06/21(木) 10:49:53.22ID:u1KbMJy+
>>637
terrainペイントエディター使いたいというのでなければ
terrainシェーダーはどこかに在った、LODは探せばあると思う
0639名前は開発中のものです。2012/06/21(木) 12:03:03.97ID:Vc98TddL
シェーダはどうでも良くて、真っ先にコリジョンの話じゃね
てかTerrarainとしてImportする、の意味が若干不明
0640名前は開発中のものです。2012/06/21(木) 12:22:42.54ID:7axLOC8t
モーフィング用にメッシュ2種類読み込ませると頂点の数変わってしまうんだけど何か対策ないでしょうか?
Normals & Tangentsをnoneにすればいけるんだけど影つかなくなっちゃうしどうしたものか
0641名前は開発中のものです。2012/06/21(木) 16:47:11.70ID:06U0DW3i
>>632
レスがつかないんで分からないながらも少し調べて見たけど、あまり情報が無いね。
いっそスプラッシュ画像を1*1の黒一色にして、擬似的にスプラッシュ削除
その後に読み込ませるシーンで、自分でスプラッシュっぽく表示しちゃうのはどう?
表示のタイミングはズレるけどね……
0642名前は開発中のものです。2012/06/21(木) 21:17:08.94ID:GOl6AJTh
>>638
ありがとうございます
ペイント自体はそれほど興味はないです
639さんのおっしゃる通り障害物としての判定と地形としての判定が欲しいと考えています

>>639
言葉がうまく使えなくすみません
やりたいことは3dsmaxで作った空間全体にcollisionというか判定をつけることです

結局やりたいこととしてはterrainとして着地?できるようになれば同じことかなと解釈してこう書いてしまいました
0643名前は開発中のものです。2012/06/21(木) 21:30:24.35ID:Vc98TddL
>>642
やっぱそうだよな。つまり、地形として機能させたいと。
それ、結論から言うとTerrarainそのものである必要はなくて、要は要所要所にコリジョンが設定されていればいいだけ。
これは意味的に、Unityに限らない話。

で、その時例えば、その地形オブジェクトが一つの大きなメッシュだったりして、そこに
一発メッシュコライダとか使って凸包で接触判定とかは上手くないので、
その背景パーツをバラして、適切にキューブや板や珠、または接触判定用の荒いメッシュを割り当てて、
「見かけの地形」とは別に「判定用の地形のようなもの」を用意すんの

Unityに限らず、その手のゲーム処理の基本みたいな物
0644名前は開発中のものです。2012/06/21(木) 22:57:21.86ID:U2ZGw8Du
あほみたいな質問ですいません
良ければやり方を教えていただきたいのですが、
アニメーションのついてるキャラを動かすと、
ttp://www.dotup.org/uploda/www.dotup.org3116114.png
こうなってしまうのですが、
これってどうすればいいでしょうか?
rootに入れるとアニメーションはしないと聴いたのですが、
何がなんだかわかりません。。
ヒントだけでもくださると嬉しいです!
宜しくお願いします。
0645名前は開発中のものです。2012/06/21(木) 23:02:58.35ID:Vc98TddL
>>644
ゴメン、アニメーションが付いているキャラを、どう動かしたら、どうなったの?
多分その画像は、そのモデルのボーンが動いていない、デフォルトの状態形状なんだろうと思うが

どうなっていれば良いの?どうなるはずだ、そのつもりだった、とかその辺をkwsk
0646名前は開発中のものです。2012/06/21(木) 23:10:52.84ID:hpnEeUDB
何を目的として、どういった手段を取ったのか言わないと伝わらないよ
アニメーションはそのキャラクタモデルに元々入っているの?
それとも、キャラクタモデルとアニメーションデータは別で、Unity上でキャラクタモデルにアニメーションデータを当てはめたの?
それともアニメーションの付いてるキャラをアニメーションさせたくないってことかな?
とにかく説明が足りてないよ
0647名前は開発中のものです。2012/06/21(木) 23:12:02.96ID:U2ZGw8Du
>>345
ありがとうございます!
このデータはアセットストアで購入したキャラクターなのですが、
ファーストパーソンコントローラーに追加し、
既存の白いグラフィックの代わりにこのキャラを入れたいと思っています。
他のキャラクター(例えばmonster caveのサンプル)などはうまくキーボードで操作できるのですが、
このキャラに関してはキーボードで動かしても、アニメーションが作動しません。
なので、キーボード(wasd)やジャンプ(space)を押した時に、
アニメーションしてくれると非常に嬉しいです。(停止時はidle? など)
具体的に書いてなくてすみません、
何卒宜しくお願い申しあげます。
0648名前は開発中のものです。2012/06/21(木) 23:13:40.92ID:U2ZGw8Du
すみません書き損じですが、
このキャラクターを購入した時にアニメーションのデータは付属していました、
ボーンデータも存在しています。
具体的にキャラクターが動かない状態にあります。
0649名前は開発中のものです。2012/06/21(木) 23:20:37.97ID:hpnEeUDB
そういうことならこれの要点だけパクればok
既にアニメーションコンポーネントに各種アニメーションが登録されてるならスプリットアニメーション云々は飛ばして良い

■Unityドキュメント■
http://gp-portal.jp/material/refMaterial/2255_Unity_document01.pdf
0650名前は開発中のものです。2012/06/21(木) 23:23:33.48ID:U2ZGw8Du
>>649
素早い回答ありがとうございます!!
勇気を出して書き込んで良かったです。
皆さん本当にありがとうございました!!
0651名前は開発中のものです。2012/06/22(金) 00:09:34.70ID:LABS3NhE
>>643
それは要するに3dsmaxで作った物はあくまでレイアウト位置の目安でしかなく
新たにUnity内で3dsmaxの位置を参考にしながら全部を入れ替えてしまう必要があるということでしょうか?
0652名前は開発中のものです。2012/06/22(金) 01:09:58.28ID:QM0RxYR4
段階的に教えたほうが良さげ
まず、メッシュそのものに接触判定をもたせる方法としてメッシュコライダと言うものがあって、これで恐らく>>651の目的は達成可能
しかし、全部メッシュコライダにしてしまうのは無駄に計算させてしまうので工夫が必要だと>>643は言っている

↓工夫の一例
1,キャラクターが通る&凸凹した道=メッシュコライダ
2,キャラクターが通る&まっ平らな床=キューブコライダ
3,小物類=その形状に適したコライダ(キューブ/スフィア/カプセル/そもそも付けないetc...)
4,壁=キューブコライダ
5,キャラクターは行く事ができない背景等=メッシュのみでコライダは要らない

という風に分けるのがうまいやり方
しかし、そこまで処理系統困ってないなら気にする必要も無し
0653名前は開発中のものです。2012/06/22(金) 02:35:30.15ID:x0ck3SAI
すみません>>644です。
先ほどのサイトを参考にさせていただいているのですが、
FPSWALKERとCHARACTERCONTROLLERを割り当てても、
キャラクターは動きませんでした。
左下にはエラー内容として、
NullReferenceExceptionと表示されています。
これは関係あるのかどうか分りませんが、
解決策などありましたら教えていただけると助かります
何度もすみません
0654名前は開発中のものです。2012/06/22(金) 02:52:20.19ID:8LF7X5U/
コーディングができない人にはGAMEsaladaおすすめ
0655名前は開発中のものです。2012/06/22(金) 04:44:47.69ID:9VY+vhBh
>>653
とりあえず、例外起きてる時点でダメ
コード追いかけて
0656名前は開発中のものです。2012/06/22(金) 06:24:30.27ID:LABS3NhE
>>652
ありがとうございます
確かにあまり煩雑なものを作っていないのでそのままメッシュコライダにしてみようと思います
丁寧にありがとうございました
0657名前は開発中のものです。2012/06/22(金) 08:41:45.48ID:5cku1Zyg

cubeの表面にテキストを貼付ける方法を
捜しています。ご存知の方、よろしくお願いします。
0658名前は開発中のものです。2012/06/22(金) 08:42:27.05ID:5cku1Zyg

キャラクターの頭の上に吹き出しを出す方法を
捜しています。サンプル等ありましたらお教えください。
よろしくお願いします。
0659名前は開発中のものです。2012/06/22(金) 10:11:43.40ID:8LF7X5U/
unityをダウンロードする場所が見つかりません。
よろしくお願いします。
0660名前は開発中のものです。2012/06/22(金) 10:16:53.73ID:7RNgssVZ
>>657
動的にテクスチャを作って適用すれば出来るかと思いますが、
私では上手い方法が思いつきませんでした。申し訳無いです。

>>658
もう少し問題を切り分けて下さると答えやすいです。

1.吹き出しオブジェクトを作る(モデル、テクスチャ、GUItext、etc)
2.吹き出しをキャラクターの子オブジェクトにする&位置調整
3.スクリプトから吹き出しの内容と表示・非表示を制御

という流れで出来るかと思いますが、
どの段階で詰まっていますか?
0661名前は開発中のものです。2012/06/22(金) 10:30:06.91ID:vNA9RotH
>>658
Camera.WorldToScreenPointでスクリーン座標とってきて
GUIならそのまま使えばいいし
板ポリならOrthographicのカメラに映しゃいけるんじゃないか?
0662名前は開発中のものです。2012/06/22(金) 10:52:05.26ID:EyKt7WmN
>>659
ここだよ
http://unity3d.com/unity/download/
0663名前は開発中のものです。2012/06/22(金) 11:34:20.41ID:8LF7X5U/
>>662
レスしていただきありがとうございます。
ですがそのリンクを踏んでも大丈夫なのか判断に迷っております。
判断材料をご提供ください。
0664名前は開発中のものです。2012/06/22(金) 11:41:39.86ID:XUQ6NUkj
なんかいろいろすごいなw
0665名前は開発中のものです。2012/06/22(金) 12:07:58.48ID:vNA9RotH
>>663
踏んでも大丈夫でも大丈夫かとか、unity3d.comは公式なんだから
それを疑っちゃどうしようもないw
0666名前は開発中のものです。2012/06/22(金) 12:12:30.58ID:zkUCvOyU
>>663
普通にダウンロードすればいいよ、金はかからない。

張られているリンク自体が怖いならUnity ダウンロードでググれば
検索トップに出てくると思うのでそこから。
0667名前は開発中のものです。2012/06/22(金) 12:33:00.68ID:8LF7X5U/
なんでからかってる事に気づいてくれないんだよ。
0668名前は開発中のものです。2012/06/22(金) 12:56:16.19ID:zkUCvOyU
よかった。
ダウンロードにたどり着けないかわいそうな子は
最初からいなかったんだね。
0669名前は開発中のものです。2012/06/22(金) 13:22:53.18ID:9VY+vhBh
>>667
ちょっと可愛いと思ってしまったちきしょう
0670名前は開発中のものです。2012/06/22(金) 15:12:31.33ID:51bk3XyP
>>641
ありがとうございます。たしかにそういうやり方もありますね。検討してみます。
0671名前は開発中のものです。2012/06/22(金) 15:17:29.52ID:51bk3XyP
ここを参考にAndroidのToastやAlertDialogを使えないかためしているんですが、
JNI method called with exception raised というWarningが出てAndroid実記で落ちてしまう。
ほかにやってみた人いないですか?

https://sites.google.com/a/gclue.jp/unity3d/unity-plugin/toastwo-biao-shisuru
0672名前は開発中のものです。2012/06/22(金) 15:18:59.55ID:9VY+vhBh
>>670
上手くスケーリングされないとは、どういう状態?
UnityでAndroidは経験無いのでなんとも言えないんだけど
0673名前は開発中のものです。2012/06/22(金) 15:25:51.03ID:9VY+vhBh
>>671
JNIって、Javaとのマーシャリング用インタフェース(Java Native Interface)を実装させて、
ネイティブコンパイラでコンパイルしたバイナリを含む物だけど、
その C++ 側のコードはちゃんと x86 CPU とかじゃなくて ARM CPU 向けとか
Android実機に合わせてコンパイルして、正常に動く事も保証されてるの?
あと、その警告にある通り、ネイティブ側からの例外発生を伴う呼び出しも、許可されてる物?
0674名前は開発中のものです。2012/06/22(金) 15:31:18.00ID:9VY+vhBh
…ってか、>>671 のソース良く読んでみたが、これってAndroid関係なく、
Unity から Javaのクラスを利用する、ってだけの物じゃね。間にブリッジにするネイティブDLL挟んで。

 Unity → ネイティブDLL(JNIインタフェース実装) → Javaクラス

ってだけの
0675名前は開発中のものです。2012/06/22(金) 15:32:28.09ID:h0LtdxDD
>>667
そういうのは本スレでやれ
0676名前は開発中のものです。2012/06/22(金) 19:02:34.82ID:51bk3XyP
>>672

Androidの場合、アス比が端末によってちがうのでピュアで開発する場合、ロゴ画像と背景を分離して
ロゴ画像を表示させたい位置にだすような画面をくむけど、
Unityの場合、1枚のTextureを設定して、微妙なオートスケールのオプションを選べるだけなので、
画像の比率が維持されないでスケールされます。

671の件はインタフェースの実装が間違っているという認識で良いのでしょうか?
ブリッジするあたりの事情がJNIを触ったことがないのでわからないです。
0677名前は開発中のものです。2012/06/22(金) 19:39:46.32ID:9VY+vhBh
>>676
あぁそういう事か > アス比の件
そして

>671の件はインタフェースの実装が間違っているという認識で良いのでしょうか?
いやどっちかって言うと、>>673-674 をよく読んで

0678名前は開発中のものです。2012/06/23(土) 01:55:31.80ID:YnprfPlx
653です。原因がわかりました。
ChinaGIRLのほうは普通に動くのですが、
自分のキャラクターは1度動いて停止します。
ループ設定にしても1度しか動かないので、
何が原因かと調べた所、ChinaGIRLとは仕様が違うということでした。
自分の持っている素材ストアで購入したキャラクターは、
確かにアニメーションやボーンもきちんと収録されてるのですが、
そもそもここのサイトのやり方では、このキャラクターは動かないようです。
キャラクターを動かすの為には、コードが必要なようで、
そのコードは自分で考えて作るしかなさそうです。
もちろん、コードは自分でかけたほうが自由度は広がるので、
まずはもっと基礎的な部分から勉強してこようと思います。
他のツールも参考にさせて頂いたのですが、なにぶんクオリティが低いので、
Unityのほうが使いやすそうな印象はあります。
皆さん色々お手数おかけしました。すみません。
0679名前は開発中のものです。2012/06/25(月) 03:15:06.40ID:P/8Ta9Vg
UnityでAce Combat風のゲームを作っている者です。
Ace Combatのように敵機を四方八方どの位置から見ても正方形のマークが着くようにしたいですが、うまく出来ないのでお力を貸してください。
自分は、Texture2D型で宣言した画像を回転させてマークがついているように見ようと考えたのですが、どのようなコードを書けば良いのかわかりません。
どのようにすればよいのか、考え方などを教えてください。よろしくお願いします。
0680名前は開発中のものです。2012/06/25(月) 03:27:08.08ID:TtpiG09A
>>679
ビルボードで検索すると望む答えが出てくると思われるんだが、それとは違うのだろうか?
0681名前は開発中のものです。2012/06/25(月) 04:32:28.47ID:P/8Ta9Vg
>>680
なるほど、まさにそれです。
ありがとうございます。
0682名前は開発中のものです。2012/06/25(月) 06:24:53.87ID:ThsLciVz
ビルボードは3D空間にあるオブジェクトだから
距離によって大きさ変わっちゃうよ。
AceCombatの正方形ってミサイルの標準だいね?
常に同じ大きさならHUD扱いかと。
0683名前は開発中のものです。2012/06/25(月) 08:01:49.99ID:0vA3p8LS
>>671
AndroidのViewとかは自分も出してみた事あるけど
NativeJavaBridgeみたいなのは作らなかった

ActivityにViewを追加するような処理を持つクラスの.jarを作ってPlugins/Androidに置く
Unity側でAndroidJavaObjectとかAndroidJavaClassのCallとか使ってその処理を呼び出す

って感じだったな
0684名前は開発中のものです。2012/06/25(月) 08:27:01.76ID:0vA3p8LS
>>671
とりあえず出せたのでコード
Toast表示用の.jar化する処理、クラスやimportは省いてる
public static void Show (final String text) {
final Activity activity = com.unity3d.player.UnityPlayer.currentActivity;
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, text, Toast.LENGTH_LONG).show();
}
});
}
Unityで呼び出す、「com.test.ToastClass」は自分で作ったクラス名に置き換える
var text : String[];
function OnGUI () {
var area : Rect = Rect(0,0,Screen.width,Screen.height/text.Length);
for (var i : int = 0; i < text.length; ++i) {
if (GUI.Button(area, text[i])) {
#if UNITY_ANDROID
if (Application.isEditor == false) {
AndroidJavaClass("com.test.ToastClass").CallStatic("Show", text[i]);
}
#endif
}
area.y += area.height;
}
}
0685名前は開発中のものです。2012/06/25(月) 18:12:42.36ID:iRcWheUY
こっちは良スレだな
以前までいたプログラマが見捨てなかったんだなぁ…
ありがたや〜
0686名前は開発中のものです。2012/06/25(月) 18:20:03.76ID:mnENRXkX
別にお前みたいな情報乞食のためじゃないんよ
そこは理解しといてね
0687名前は開発中のものです。2012/06/25(月) 20:19:01.82ID:b8fMFTsZ
意味説明するより、コピペしやすいように
ソース書いて晒すと持ち上げてもらえるスレ
0688名前は開発中のものです。2012/06/25(月) 21:03:13.28ID:lZakMGqr
ソース貼ると乞食が増えてスレの質が悪化する。
0689名前は開発中のものです。2012/06/25(月) 21:06:07.86ID:vTDgXhK2
>685 が他のスレに喧嘩売るようなことを書くからいろんなのがわいてきたな。
>685 の思惑どおりなのかもしれないが。
0690名前は開発中のものです。2012/06/25(月) 23:46:44.82ID:P/8Ta9Vg
679です。
>>682
http://bis.cocolog-nifty.com/photos/uncategorized/2011/07/22/acah_demo_ms01_05.jpg
正方形のマークは、この写真で、TGTについている四角いマークです。
一応、ミサイルの照準>>682さんのを参考に出来ました。
WorldToViewportPointとDrawTextureWithTexCoordsで出来ると思ったのですがうまく出来ません。

http://ux.getuploader.com/apaku/download/1/Unity+Project.zip
プロジェクトを置いておきますので、よろしくお願いします。
0691名前は開発中のものです。2012/06/26(火) 05:18:43.30ID:GS/aLOLa
679です。
TPS視点のモードにするとバグが発生することや、敵機が画面外に消えてもマークが残ってしまうことなどのバグがありますが、
一応、敵機にマークを描画することができました。
時間をかけてくださったみなさん、ありがとうございます。
0692名前は開発中のものです。2012/06/26(火) 10:50:52.54ID:ulDSHZTC
>>690
これどのファイルひらけば見られるの?
0693名前は開発中のものです。2012/06/26(火) 20:37:46.52ID:GS/aLOLa
>>692
それを書き忘れていました。
Game Scene/Version/Game16.unityです。

http://ux.getuploader.com/apaku/download/3/Unity+Project.zip
これで一応、FPS視点にすると、敵機にマークがつくのですが、敵機が画面から消えてもマークが消えないことがあります。
度々で申し訳ないですが、Game Scene/Version/Game16.unityのプロジェクトを開いて解決していただきたいです。
自分は、OnWillRenderObjectで出来ると思ったのですが、描画されているオブジェクトを判別することが出来ないようなので、断念しました。
よろしくお願いします。
0694名前は開発中のものです。2012/06/26(火) 20:51:31.84ID:GS/aLOLa
すいません、URLを間違えました。
http://ux.getuploader.com/apaku/download/5/Unity+Project.zip
0695名前は開発中のものです。2012/06/26(火) 21:21:51.66ID:mM/VKu0I
キューブにポジションを指定して複数のテクスチャを貼る方法とかありませんか?
2×2×2のキューブにランダムに選らばれた1×1のテクスチャを4枚貼るとか。

これでひとつのキューブオブジェクトでテトリスのような変形したキューブを
表現したいんですが、こんなことできますか?
0696名前は開発中のものです。2012/06/26(火) 21:45:10.97ID:sniepP4q
微妙に言いたいことが伝わらなかったがキューブを組み合わせたいのなら親と子の関係にすればいいんじゃないかな
0697名前は開発中のものです。2012/06/27(水) 00:54:18.43ID:k6oZa9Jg
多分、大分おかしな方法で実装しようとしてる余寒
0698名前は開発中のものです。2012/06/27(水) 03:03:24.96ID:S7XxYLC+
>>695
>キューブにポジションを指定して複数のテクスチャを貼る方法とかありませんか?
ある

>これでひとつのキューブオブジェクトでテトリスのような変形したキューブを
>表現したいんですが、こんなことできますか?
できない

自分も695が言いたい事がこっちに伝わらなかった感があるんだが
とりあえず質問文に愚直に答えるとこんな感じだと思うんだ
でもたぶんきっとこんな答えは期待してないよね?ごめんよ
これが「テトリスのような形状を表現したいんですが、どんな方法がありますか」
ならもっと答えやすいんだけどな

答えにくく感じた部分は前の2行と「ひとつのキューブオブジェクトで」って部分だから
それを踏まえて質問文を書き直してくれると答えやすくなると思うんだが
0699名前は開発中のものです。2012/06/27(水) 06:05:00.52ID:vN2x4NXP
キューブ=六面体
だから、いくら変形させてもテトリスのオブジェクトにはならんしな。
あれは複数のキューブの組み合わせだ。
0700名前は開発中のものです。2012/06/27(水) 14:48:43.61ID:vUqOHYgg
>>683

ありがとうございます。
activityのGUIを処理させる方法がわからなかったのですが、
勘どころがだいぶわかりました。
参考にして実装してみます。
0701名前は開発中のものです。2012/06/27(水) 20:17:26.03ID:b0SUJyIu
>>698
すいません。わかりやすく説明します
まあ書いてあるとうり立体的なテトリスを作ろうと思ったのですが、

とりあえず9×9×20の枠を作って色々な形のテトリスを落としていくというのを
つくってみたのですが、あのテトリスの形状をすべて立方体のCubeオブジェクト
でインスタンス化すると積み上がってきた時にインスタンスの数が多いのか、
動作がドンドン遅くなっていきます

なので、下に落ちて積み上がるオブジェクトはDestoryしてしまって
積み上がったものをひとつのオブジェクト組み替えて、にまとめて表現できないかと思って
>>695の質問をしました。

複雑な形状のオブジェクトはできないと思ったので透過のテクスチャやテクスチャの貼る
位置などをコントロールして積み上がった複雑な形や色のオブジェクトを動的に表現する
しかないかなと思いましたが、こういうので他になにかいい方法はあるのですかね?

0702名前は開発中のものです。2012/06/28(木) 03:13:23.65ID:bRX4U8bH
ネットワークとか、サーバーの事を基本から知りたいのですがオススメの書籍など教えてくれ。
いくつかめぼしいのは読んだが。
0703名前は開発中のものです。2012/06/28(木) 05:53:04.61ID:dVRfSimN
>>701
ああ、そういう事ね。
確かに落ちたブロックはまとめた方がいい。
大きいテクスチャに全部のブロックの色を詰め込めおk。
複数のテクスチャは使えない。

0704名前は開発中のものです。2012/06/28(木) 09:25:01.79ID:f8iZLBkt
>>701
一つのメッシュにまとめるのは
Mesh.CombineMeshesでできる
ttp://docs.unity3d.com/Documentation/ScriptReference/Mesh.CombineMeshes.html

模様違いのキューブとか使いたいなら、キューブに4種類の模様があるとして
1枚のテクスチャの中で4つの模様を並べたテクスチャを作る
UV違いのキューブメッシュを用意して全て同じマテリアルで描画できるようにする

キューブの位置は個別に管理できるようにしておいて
まとめる必要がある場合(テトリス形状、落ちて積みあがった時など)に
Mesh.CombineMeshesでまとめたメッシュを新しく作って実際の描画はそちらを使う

まとめた後のメッシュを描画するマテリアルは1つで描画するから
模様違いをUV違いのメッシュで行うのはそのため

って感じでどうかな、今度のはそこそこ期待されてる答えになってる気がする
0705名前は開発中のものです。2012/06/28(木) 12:26:54.74ID:ReOgxx4f
>>702
つttp://www.amazon.co.jp/dp/4798105163/

本気で良い本だ
0706名前は開発中のものです。2012/06/28(木) 14:49:08.43ID:Ucex5Loc
>>701
まとめるのはそれはそれでいいけど、重くなってくって話について、
そもそも無駄な評価処理してる予感
そもそも自分で書いたロジックに問題は?
0707>>7022012/06/28(木) 15:02:54.56ID:bRX4U8bH
>>705
hey boy?
俺を舐めすぎてないかい?
いくらなんでもこんな小学生向けの絵本が役に立つとは思えないな。
オトナだよ俺は〜?
まわ読んでみるけどさ。
0708名前は開発中のものです。2012/06/28(木) 15:43:04.57ID:oIXN3wSN
>>707
結局読むのかよw
0709名前は開発中のものです。2012/06/28(木) 16:49:46.38ID:Ucex5Loc
かわいい
0710名前は開発中のものです。2012/06/28(木) 21:30:32.94ID:W+QvrxNR
>>704
返信感謝致します
とても参考になりそうなレス、ありがとうございます。

なにぶん3Dプログラミング自体初心者なもので、”UV”や”メッシュ”、”マテリアル”
などデザイン系用語や機能も1から勉強している状態なのですが、>>704さんのレス
内容はとても興味深く、そこに私の求めていた答えがありそうな気がします。


>>706
このテトリスを表現しているCubeにはコンポーネントにRigidbodyとColliderのみ追加してただ単純
物理演算に頼って上から落としているというごくテスト的な処理しか行なっていません
スクリプトに関しては方向キー入力でx、z方向に動かすという処理のみにしています

テトリスの形状を表現している各CubeはPrefubでインスタンス化して作成しています。
上にも書きましたが3Dプログラミングは初心者なもんで、
まだまだよくわかっていないことが多いのですが、
各オブジェクトの描画はインスタンス化することではじめてシーン描画が行われるものだと思っていますが、
この考え方は間違っていますでしょうか?

それとも普通の2Dゲームのようにインスタンス化というよりただ単純に位置とサイズを指定して
描画するということは可能なのでしょうか?


長くなりましたが、最後にみなさんの返信レス感謝します
0711名前は開発中のものです。2012/06/28(木) 22:08:08.76ID:Ucex5Loc
>>710
ああ、やっぱり落下と衝突の処理って、物理演算でやってるって事か。
3Dプログラミングって言うより、もっと基本的なゲームプログラミングの話で、

>単純に位置とサイズを指定して
>描画するということは可能なのでしょうか?

「描画用の」 オブジェクトは、Unityの機能でインスタンス化しといてでもなんでもいいけど、
とりあえず、API リファレンスは真っ先に覗いてみて欲しい。

GameObject 自体、座標指定してそこに表示出来る訳だから、普通にテトリスなりなんなりの
処理書いて、描画する時に、その GameObjectを想定した座標に表示すればいいだけじゃないの
0712名前は開発中のものです。2012/06/28(木) 22:09:34.66ID:Ucex5Loc
あ、「描画する時に」って言い方をUnity環境ですると、またなんか混乱招くかもしれないが
… 要はそういう事だ
0713名前は開発中のものです。2012/06/29(金) 10:56:34.40ID:I8gzErO9
>>710
参考になりそうなレスができてよかったです
可能であればレスしていくのでまた何かあれば書き込んでみてください

Unityの描画に関する考え方ですが自分の中ではだいたい以下のように認識しています
・GameObjectがUnityのエンジンが認識する1単位であり、activeがtrueになっているGameObjectを処理する
・GameObjectの処理は自身に付いているenabledがtrueなコンポーネントを処理する
・MeshRendererコンポーネントがメッシュを描画する処理を行うコンポーネントである
・使用するメッシュはMeshRendererがMeshFilterを探し、MeshFilterから取得する

なのでインスタンス化されていてもMeshRendererが上手く処理されなければ描画は行われません
例としては、MeshFilterが付いていない、MeshRendererのenabledがfalseである、GameObjectのactiveがfalseである、などでしょうか

MeshFilterはコンポーネントではありますが、参照される事を目的としたコンポーネントなのでenabledはありません
本当はコンポーネントにそもそもenabledはなく、上の認識も正確ではないのですがだいたいそんな感じという事です

ただ、MeshRendererを使わずともGraphics.DrawMeshを使えば位置などを指定してメッシュの描画は可能です
ttp://docs.unity3d.com/Documentation/ScriptReference/Graphics.DrawMesh.html
これでメッシュとマテリアル、位置&回転orマトリクスを指定してメッシュを描くことができます

DrawMeshとCombineMeshesのサンプルを作ってみたので貼っておきます
Ideoneを使うのは初めてなのでちゃんと見れるのか少し心配ですが
ttp://ideone.com/oPvjK
たまに直接ソースを貼っていたけどIdeone使うほうがいいのかな
0714名前は開発中のものです。2012/06/29(金) 11:17:26.82ID:jaYNeGEA
>>710
unity tetrisでぐぐればサンプル落ちてるジャン
0715名前は開発中のものです。2012/06/29(金) 22:24:08.41ID:gpczMK1X
過去ログに使えそうなレスをQ&AにしてWIKIにまとめるのはどうだろうか(提案)
0716名前は開発中のものです。2012/06/30(土) 10:44:30.57ID:XBvldaLR
ホモは帰れ
0717名前は開発中のものです。2012/06/30(土) 11:13:56.55ID:qkHobTQO
>>715
言い出しっぺの法則
0718名前は開発中のものです。2012/06/30(土) 16:46:55.88ID:OZVGw1US
Asset Storeがオフラインになってしまってアクセス出来ないのですが、どうすればなおりますか?
ちなみにインターネットつながるので、物理的にオフラインになっているわけではありません。
教えて下さい。
0719名前は開発中のものです。2012/06/30(土) 16:53:46.44ID:iP8qUr5m
>>718
自分もアクセスできないから、アクセス障害だと思われ
0720名前は開発中のものです。2012/06/30(土) 17:01:36.02ID:B+K5KFLj
4のアップデート前のリニューアルだなー。
4は明日かな。
0721名前は開発中のものです。2012/06/30(土) 17:51:45.70ID:OZVGw1US
>>719
ありがとうございます。

アクセス障害ですか!
しょうがないですね。
復帰するまで、待ちます。
0722名前は開発中のものです。2012/07/01(日) 09:04:35.05ID:y6Ae8N/U
Rokdebone2で3Dモーションを作ってるんですが、膝を曲げるとぺちゃんこになってしまいます
Unityでどうにか出来る問題なんでしょうか?影響度とか設定するんでしょうか…
0723名前は開発中のものです。2012/07/01(日) 09:50:55.25ID:2zFFXn0s
>722モデルデータを見ないとわからない。
データをあげてくれ。
0724名前は開発中のものです。2012/07/01(日) 10:05:52.98ID:yOBUw4sM
>>722
影響度の調整は必要でしょ
0725名前は開発中のものです。2012/07/01(日) 10:06:49.96ID:MAGLi/le
単にスキニングができてないだけでしょ
unityの問題じゃない…
0726名前は開発中のものです。2012/07/01(日) 11:38:23.38ID:+87Lgjs2
Rokdebone2 は使わないのでアレだけど、そもそもUnity以前に
ボーン入れしてスキニングしてる途中で自分で気付かないか?
自作モデルじゃないからわからないとかなのか
0727名前は開発中のものです。2012/07/01(日) 11:57:42.92ID:yo6QRxvW
モデル間接の潰れはunityじゃあ何もできないでしょ
ポリゴンの割方などで工夫しないとな

07287222012/07/01(日) 12:07:55.52ID:6g5h2aCO
ありがとう、モデルの問題なんですね
一応自作モデルです
0729名前は開発中のものです。2012/07/01(日) 15:17:04.12ID:8PJKPKwX
モンスターと弾丸の衝突はMeshColliderでできないのかな?

リファレンツ見るとConpoundColliderを組み合わせて作るって書いてあるけど
結構複雑な形状で難しい
0730名前は開発中のものです。2012/07/01(日) 18:16:04.13ID:j+XB4x48
unityはスキニングをどんなやり方でやってるんでしょう?
CPUスキニング?普通に変換行列でGPUスキニング?頂点テクスチャ?
あるいは選べるのでしょうか?
0731名前は開発中のものです。2012/07/01(日) 18:24:08.53ID:2zFFXn0s
またリトポ君か
0732名前は開発中のものです。2012/07/01(日) 18:26:18.85ID:j+XB4x48
リトポ?
0733名前は開発中のものです。2012/07/01(日) 18:49:21.22ID:95wSdJQy
「リトポ君」レッテル貼りは粘着荒しだからスルーでいい
0734名前は開発中のものです。2012/07/02(月) 00:38:32.37ID:6I3STRvQ
UV展開マジでもうちょっとマシになってくれんのかね?

メッシュいじると壊れるし、何よりUVを並べるのが苦痛で仕方ない
分割したUVそれぞれのパーツをレイヤー単位で並べて頂点全て数値で
管理出来ないもんかね
0735名前は開発中のものです。2012/07/02(月) 01:19:08.03ID:1wGhm8eT
それ普通にできると思うけど。
俺が勘違いしてるだけかもしれないからもう少し詳しく!
0736名前は開発中のものです。2012/07/02(月) 06:21:51.83ID:z686l4MT
>>734
Unityとは関係なくね?
0737名前は開発中のものです。2012/07/02(月) 17:03:21.80ID:PZRbc+vH
>>729
メッシュ・コライダーは地形に使うもの
キャラクターに使えなくはないけど普通やらない(やるべきではない)
モンスターなんて適当に6面体でいいやん
あれか触手か?


0738名前は開発中のものです。2012/07/02(月) 18:25:02.68ID:0SXnUdle
>>737
そうなのか、capsulecolliderで頑張るか

いや、トリケラトプスっぽいモンスターの頭の角が一杯生えすぎて
なんかどの基本コライダーもいい感じに当てはまらない・・・

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