トップページgamedev
1001コメント378KB

【3Dゲームエンジン】Unity質問スレッド15 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/01/18(日) 15:07:35.72ID:KSRpGyGF
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

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

■前スレ
【3Dゲームエンジン】Unity質問スレッド14
http://peace.2ch.net/test/read.cgi/gamedev/1418120993/

■本スレ
【3Dゲームエンジン】Unity総合スレッド24
http://peace.2ch.net/test/read.cgi/gamedev/1415828892/

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

●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/
・ユーザーガイド&リファレンス
 http://japan.unity3d.com/developer/document/
・チュートリアル
 http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 http://answers.unity3d.com/index.html
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
注意事項:アセットおじさんは優しく愛でましょう
0002名前は開発中のものです。2015/01/18(日) 23:29:03.50ID:Oz1u1XCR
推薦本

Unity5 3Dゲーム開発講座 ユニティちゃんで作る本格アクションゲーム
http://www.amazon.co.jp/dp/4798138223/
0003名前は開発中のものです。2015/01/18(日) 23:38:55.71ID:g+Z+Zg6a
発売もして無いのになにが推薦だよ。
0004名前は開発中のものです。2015/01/19(月) 00:57:25.08ID:lMV3PplF
そろそろライブラリ辞典も新しいの出ないかなー 特にGUI関係。。

あと前回の推奨本だと2D系はまだいいのがないって言ってたけど、
そろそろ良いの出てないかな

見てわかる Unity4 2D ゲーム製作 超入門 は個人的にはいまいちだった
(Unityの入門的にはわかりやすそうだけど、それなら3D含めた本の方がいいし、
かといって2Dの扱いに特化して詳細に書いてある訳でもない)

ずっと3Dは触らないし、webでの調べ物が苦手な人ならいいかも
0005名前は開発中のものです。2015/01/19(月) 09:56:38.62ID:tVQdSj+4
失礼します。

アセットバンドル化したBGM音源が、ストリーム再生出来ないげんしょが起きているのですが、何かやらなきゃいけないことがあるのでしょうか?

知っている方がいらっしゃいましたらご教授下さい。

よろしくお願いします。
0006名前は開発中のものです。2015/01/19(月) 22:10:43.14ID:Y1AjdTR9
>>5
ストリーム再生ならAssetBundleじゃなくてよくねぇ?
0007名前は開発中のものです。2015/01/19(月) 22:32:30.26ID:6U2CSUOP
>>5
BGMの再生なら、アセットをかえば簡単にできますよ
0008名前は開発中のものです。2015/01/19(月) 22:33:42.74ID:bSyMnLDV
GameObjectに別のGameObjectを変数のように登録する場合
「public GameOfject x;のみが書かれたスクリプトをコンポーネントにする」方法を考え付いたのですが
わざわざそのためにスクリプトを作るのもリソースの無駄遣いだと思いました。推奨される方法はありますか?
0009名前は開発中のものです。2015/01/19(月) 22:45:47.75ID:ShtNJO6F
セットにしたデータを扱う必要があるならそのデータを扱うクラスが
構造体とかでもっときゃいいんじゃないのか。
0010名前は開発中のものです。2015/01/19(月) 22:49:01.53ID:6U2CSUOP
>>8
アセットをかうことを推奨します
0011名前は開発中のものです。2015/01/19(月) 23:56:18.32ID:bSyMnLDV
>>9
返答ありがとうございます

構造体の存在を忘れてました・・・ GameOfjectの情報を構造体に移したいと思います
そうすると「public DATA x;のみが書かれたスクリプトをコンポーネントにする」方法でよろしいのでしょうか?

具体的にいうと「データバンク→データの内容を表示するプレハブ→インベントリ」と行った経路でデータを送りたいのです
そこで、プレハブの中に変数の形で構造体を保存できればいいな、と思っているのですが
プレハブはスクリプトを使用しないGameObjectなのでわざわざスクリプトを用意するのはリソースの無駄なんじゃないかと思いました
0012名前は開発中のものです。2015/01/20(火) 00:13:31.24ID:ue04WETI
ユニティーてさぁ、テクスチャに連番かムービーて貼れないの?
0013名前は開発中のものです。2015/01/20(火) 01:04:11.07ID:Z6XXRh/7
>>11
いや…その説明、さっぱりわからんわw

>>12
プロ版なら貼れる
ttp://docs.unity3d.com/Manual/class-MovieTexture.html
連番はスプライトならできるしタイル上にしとけば
スクリプトでオフセットコントロールするようにすれば
自分でもできるよ。
0014名前は開発中のものです。2015/01/20(火) 01:09:16.33ID:005jKREY
画面内に軽いスプライト貼って同じスクリプト持ったオブジェクトが200個〜300個くらい存在して、
全てが一点に向かって動いて辿り着くと消えるシンプルなスクリプトなんだけど

どうもAndroid実機で動かすとカクついたりして重いんだ。

こういった場合少しでも処理を軽くするには何に気をつけると効果的なんだろう?
0015名前は開発中のものです。2015/01/20(火) 01:36:02.04ID:Z6XXRh/7
>>14
transformは全てキャッシュしておく。
これの25P目
ttp://www.slideshare.net/RyoheiTokimura/ss-35321624
0016名前は開発中のものです。2015/01/20(火) 01:59:50.16ID:MDNLFb7h
Facebookのunityユーザー助け合い所で何回も自分の書籍宣伝してるアホはなんなの?
おまえの生活助け合い所じゃねーんだが
0017名前は開発中のものです。2015/01/20(火) 02:06:39.26ID:Q4l9D7LT
身の貧しさは心も頭も貧しくするっていう典型だよ
いい反面教師になる
0018名前は開発中のものです。2015/01/20(火) 04:36:41.54ID:RaPfpvqF
前スレ>>990 
https://www.youtube.com/watch?v=rVVhPi3w6sg&;feature=youtu.be
を見る限り実際の解像度でSS撮るだけのように見えるけどiPhoneやiPadの実機でアス比を固定して表示させられるの?
できる考えてみる
0019名前は開発中のものです。2015/01/20(火) 05:59:37.06ID:bj9Wloi1
Make HumanからFBXでエクスポートし
unityでインポートしたところ
テクスチャが反映されていませんでした。

・blenderで確認(レンダリングして)した所、
 FBX自体にはテクスチャのデータが有るようです。

・ちなみにMakeHuman(MHX)→Blender(FBX)→unity
という経由で行ってもテクスチャが確認できませんでした。

unity4.61 MakeHuman1.0.2 です。
よろしくお願いします。
0020192015/01/20(火) 06:28:08.72ID:bj9Wloi1
解決しました。
https://www.youtube.com/watch?v=F1xvjWc7490
0021名前は開発中のものです。2015/01/20(火) 09:56:19.07ID:005jKREY
>>15
ありがとうございます!
ちょっと複雑だったので、こっちでやってみました。
http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/ScriptReference/index.Performance_Optimization.html
キャッシュコンポーネントの探索(Cache component lookups)の項目

少し効果があったと思いますが、紹介してくれた方法とはかなり処理の重さに差がありそうですか?
0022名前は開発中のものです。2015/01/20(火) 11:24:43.74ID:HVd7E/Tl
シェーダについてちょっと質問を

サーフェスシェーダを使っていたのですがライトの影響を受けているのか
板ポリにはっているテクスチャが暗めに表示されてしまいます
フラグメントシェーダに書き換えてもいいのですが
サーフェスシェーダでライトの影響をカットする手法はありますか?
0023名前は開発中のものです。2015/01/20(火) 14:02:03.80ID:+72Irfb9
一時停止してからn秒後にまた再開するにはどうすれば良いでしょうか?

timescale = 0
にして一時停止しても「n秒後に」という条件をどう設定すればいいか分かりません。GUIからの操作はしないものとします。
よろしくお願いします。
0024名前は開発中のものです。2015/01/20(火) 14:09:08.81ID:iq3j7dZV
>>22
#pragma surface surf Lambert

これのLambertって下のファイルの60行目にLightingLambertってのが定義されているから
Windows: Unity\Editor\Data\CGIncludes\Lighting.cginc
Mac: Unity.app/Contents/CGIncludes/Lighting.cginc

それを参考に自分のシェーダーにLightingLambertCustomとか作って
_LightColor0.rgbを記述しなければできるんじゃね?
#pragma surface surf LambertCustom

うるおぼえだから出来なかったらすまん
0025名前は開発中のものです。2015/01/20(火) 14:18:57.63ID:4aAKgSzb
Enumeratorインターフェイスメソッドを作ってコルーチン化する

StartCoroutine(Wait(0.5f));


IEnumerator Wait (float time)
{
yield return new WaitForSeconds(time);

}
0026名前は開発中のものです。2015/01/20(火) 14:21:43.51ID:+72Irfb9
解決しました、ありがとうございます。
0027名前は開発中のものです。2015/01/20(火) 15:30:18.63ID:HVd7E/Tl
>>24
返信ありがとうございます

陰影をつけないライトを定義して使う、てことですね。
なるほど盲点でした

実装してみます
ありがとうございました!
0028名前は開発中のものです。2015/01/20(火) 18:32:46.59ID:/EI8FXL+
すみません

Androidでゲームを作る際、アスペクト比の違いはどのように吸収すればよいのでしょうか…

Unityのシューティングゲームチュートリアルの方法では背景を画面にピッタリ合わせる手法をとっていましたが、
これでは、プレイヤーが動ける範囲が、端末によって違ってくるということになってしまうのですが…
0029名前は開発中のものです。2015/01/20(火) 22:15:23.64ID:pAe5tuD5
>>28
アセッ・・
Cameraのrectを変更するスクリプトがあちこちで見つかります
0030名前は開発中のものです。2015/01/20(火) 22:18:00.41ID:b7j+z+fc
>>28
アスペクトの機種ごと変更は、アセットをかえば簡単ですよ
うそじゃないですよ
0031名前は開発中のものです。2015/01/20(火) 22:32:25.47ID:pAe5tuD5
http://hideapp.cocolog-nifty.com/blog/2012/06/unity-1a83.html
こことかどうだね
0032名前は開発中のものです。2015/01/20(火) 23:59:23.25ID:Dk1pcpko
もし分かる方みえましたら、知恵を拝借したく思います。
よろしくお願いします。

エフェクトを表示するために、元のパーティクルを作っておいて、
攻撃が当たった時に元のパーティクルを複製して、
当たった場所に表示させようとしたのですが、
10〜20回に1回ぐらい、元のパーティクルの場所に表示されてしまいます。

オブジェクトにtransform.positionの値が渡せてないのかと思ったのですが、
オブジェクトの位置はちゃんとスクリプト通りなのです。
しかし、パーティクルが表示されるのは複製元の場所になってしまうという…。
しかも、毎回ではなくてたまーになのが混乱に拍車をかけています。
どういうことなんでしょう?
そもそもこの形でやろうとしてるのが悪いんでしょうか…。
0033名前は開発中のものです。2015/01/21(水) 00:00:26.12ID:BQd9iIWw
>>29,30,31
分かりました。
アセットストアを漁りつつ、無料でいい感じのものを探してみます。

個人的に、黒帯は最終手段にしたかったのですが、アス比に合わせてサイズチェンジするスクリプトを自作した際に、オブジェクト間のサイズ調整が、かなり困難になったので、一番スマートなやり方なのかもしれません…
0034名前は開発中のものです。2015/01/21(水) 01:24:03.95ID:G1vbfn9J
標準アセットのwaterにはライトは当てれないの?
0035名前は開発中のものです。2015/01/21(水) 02:00:04.73ID:iSgbV6It
>>32
unityは触って二日目なので外してるとは思いますが、例えばstartメソッドで値を設定してて、先にupdateが呼ばれてるとかは有りませんか?
transformオブジェクトのnullチェックするとかで回避できないかな?
しゃしゃり出てすみません
0036名前は開発中のものです。2015/01/21(水) 02:16:39.69ID:Tf/cqS6P
アセット叔父さんをNGしたいのだが、どうやってNG登録すればよい?
そういうアセット売ってるの?
0037名前は開発中のものです。2015/01/21(水) 02:39:15.14ID:YE/E9ALh
>>34
あてられない。
シェーダの中身を見るとフラグメントシェーダしか書いてない。
ここに改造したライテッドシェーダーがある。動くかは試してない
ttp://forum.unity3d.com/threads/specular-water.64593/
0038名前は開発中のものです。2015/01/21(水) 07:39:24.73ID:4KkMiIWx
アセットがインポートできません
パスに日本語もないのに何故でしょう
0039名前は開発中のものです。2015/01/21(水) 08:52:40.73ID:7YHRcJFz
>>38
アセットをかえばいけると思いますよ
0040名前は開発中のものです。2015/01/21(水) 12:49:32.54ID:pvD5YpkA
>>32
ちゃんとパーティクルはPrefab化はしてるかい?
0041名前は開発中のものです。2015/01/21(水) 13:58:39.03ID:LCEJpEtu
返答ありがとうございます。

>>35
値を設定してるのは当たり判定のオブジェクトなのです。
接触を判定するオブジェクト(のスクリプト)が
エフェクトのコピーを作って、値も設定する仕組みです。
その辺で値を渡せてないのかなと思ったのですが、
ヒエラルキーでチェックしても座標自体は正しいので…うーん。

>>40
しています。
と言うより、元からプレハブ化されたアセットを使っています。

状況を整理するに、オブジェクトを作成した瞬間、
値が設定される前にパーティクルが表示されてしまうのだろうかと
思いました。
最初に作成される時にパーティクルが非表示の状態で、
作成後、値をいじってパーティクルを表示されるようにすればどうかという
方向で一回やってみようかと思います。
パーティクルの設定の仕方がいまいち分かっていないのでてこずりそうではありますが…。
0042名前は開発中のものです。2015/01/21(水) 14:04:36.24ID:tms4wXQb
Androidなどの端末の設定時刻ではなく、実際の時刻を取得する方法はありますか?

端末の時刻を弄られるとどこまでも得出来てしまって困っています。
0043名前は開発中のものです。2015/01/21(水) 15:14:10.52ID:VSj5UHdi
>>38
ファイルが壊れてるんじゃね?
Unity社のファイルサーバっていまいち不安定な気がする。
0044名前は開発中のものです。2015/01/21(水) 15:25:25.99ID:VSj5UHdi
>>41
パーティクルのインスタンスを生成するとき、どうやってやってる?
もしかしてオブジェクトを生成した後、transform.positionをいじってね?
0045名前は開発中のものです。2015/01/21(水) 15:49:49.09ID:VSj5UHdi
>>41
Instantiate(prefab, new Vector3(0, 3, 0), Quaternion.identity);

こんな感じでやってる?(´・ω・`)
0046名前は開発中のものです。2015/01/21(水) 16:17:49.33ID:VVnS6JLG
>>45
InstantiateされたGameObjectはまずAwakeが実行される
んでもって実行Queueに並んだ後Instantiateした方のスクリプトに制御が戻り、その後Start,Updateの順にQueueで処理される。
Awakeで何かしているか、Instantiateした方のスクリプトで
GameObject go = Instantiate(prefab, new Vector3(0, 3, 0), Quaternion.identity) as GameObject;
go.transform.parent = hogehoge.transform;
みたいに親オブジェクトかなにか指定してるとAwakeで何かやってる時に不都合が起きてるかも。

実行順序に気をつけて自分のコード見なおしてみたら?
あとAwakeとかStartとかUpdateは実行オーダー(Edit->Project Setting->Script Execution Orderメニュー)の順になるので、ここで何か特殊な指定してると厭なことが起こるかも
0047名前は開発中のものです。2015/01/21(水) 17:22:38.68ID:vts/+h5O
ポーズメニューってどうやって作ればいいでしょうか?
最近GUIをいじり始めたばかりでよく分かってないのですが

・キーを押すとメニューを表示
・メニュー表示中は通常シーンは少し暗くして一時停止する
・メニュー選択後はメニュー非表示、通常シーン再開

このようなものを作りたいと考えています。
どなたかよろしくお願いします。
0048名前は開発中のものです。 転載ダメ©2ch.net2015/01/21(水) 17:30:47.34ID:keCoEgHN
みな、想定の解像度ってどのくらいで作ってる?
1昔前に多かった960×540を想定して作ってたんだけど、もっとスペースが欲しくなった
1280×800か1920×1080を想定して作りなおそうかと思っているんだけど、他の人はどうしてるかなって

もちろんアスペクト比に応じた微修正はしてるんだけど、解像度大きい方がUIや画像置きやすくて
0049名前は開発中のものです。2015/01/21(水) 17:55:17.12ID:BQd9iIWw
>>38
アセットストアの日本語化してない?
0050名前は開発中のものです。2015/01/21(水) 18:28:31.51ID:YE/E9ALh
>>47
そのキーが押されたらゲームとめて
そのメニュー表示するようにすればいいんじゃないのか…。
別にそれってキーを押したら弾がでるとかと変わらなくね?
少し暗く、ってのは半透明の黒い板おいてやればいい。
0051名前は開発中のものです。2015/01/21(水) 19:45:07.23ID:vts/+h5O
>>50
そう言われればそうですね…ありがとうございました
0052名前は開発中のものです。2015/01/21(水) 20:27:11.70ID:9CZMRQgE
>>48
960×540でやってる
0053名前は開発中のものです。2015/01/21(水) 20:47:18.63ID:k7x1XAiN
>>48
1920 x 1200 (16:10)
1920 x 1080 (16:9)
スマホの縦画面を想定して、この辺で確認する。

注意すべきは、UnityのUIはデフォルトで高さ合わせということ。
ストレッチさせないパーツなんかは
縦長の画面設定(16:9とか)で表示確認しとく必要がある。
もちろん、全部スクリプトで制御するなら高さ合わせとか関係ない。
0054名前は開発中のものです。2015/01/21(水) 21:38:41.17ID:s0rhaneA
http://unitygameuploader.jpn.org/game/3395.html

これってどうやっておっさんをグニャグニャしてるんですか?
Animationで作れますか?
0055名前は開発中のものです。2015/01/21(水) 21:43:39.42ID:pRutgOaW
instantiateでprefabのインスタンスが倍々に生成されてしまうのは何故に??
0056名前は開発中のものです。2015/01/21(水) 21:56:06.31ID:VVnS6JLG
>>54
ラグドールで検索するよろし
0057名前は開発中のものです。2015/01/21(水) 22:29:01.20ID:s0rhaneA
>>56
ありがとうございます!
ラグドール調べてみます!
0058名前は開発中のものです。2015/01/21(水) 22:34:57.80ID:YE/E9ALh
>>55
キミがおかしなコードを書いてるからに決まっているw
0059名前は開発中のものです。2015/01/21(水) 22:55:08.87ID:U+jBAIuB
>>54
ループさせてんじゃねえのw
0060名前は開発中のものです。 転載ダメ©2ch.net2015/01/21(水) 23:47:27.19ID:keCoEgHN
>>52
またまたあ

>>53
丁寧にありがとう
大きい画面のほうがやりやすそうだよね
スクリプトでサイズ調整してるから画像の調整は大丈夫そうかな
ただ、文字の方が古い携帯で潰れそうだからちょっと気になってる
参考にします
0061名前は開発中のものです。2015/01/22(木) 01:55:14.52ID:LB5gWdVL
スクリプトで
n秒後またはnフレーム後から
アニメーションを再生させるには
どのように書いたら良いでしょうか?
よろしくお願いします。

unity4.6です。
0062名前は開発中のものです。2015/01/22(木) 02:21:22.17ID:Mj+nkySm
>>61
まぁコルーチン使うのが一般的だろうな〜。
ttp://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html
すごい単機能ならUpdate()内に直接タイマーもってもいいだろうけど
0063612015/01/22(木) 02:22:05.53ID:LB5gWdVL
補足します。
アニメーションの開始からn秒後の途中のモーションから
再生させるということでした。
0064名前は開発中のものです。2015/01/22(木) 02:24:31.91ID:LB5gWdVL
>>62
説明不足ですいません
>>63 のようなことでした。
0065名前は開発中のものです。2015/01/22(木) 02:54:13.98ID:Vz5OxxV1
モンハンみたいにダメージを与えた瞬間に一瞬止める(タメをつくる?)のはどうやってすればいいんですか?
0066名前は開発中のものです。2015/01/22(木) 03:14:15.63ID:Vz5OxxV1
それとuGUIで作るスクロールビューってアンドロイドだと動作しない?なんか真っ白になるんだけど(もしくは消える)
■ このスレッドは過去ログ倉庫に格納されています