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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2014/12/09(火) 19:29:53.11ID:x9Izo6T5
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質問スレッド13
http://peace.2ch.net/test/read.cgi/gamedev/1414819294/

■本スレ
【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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
注意事項:アセットおじさんは優しく愛でましょう
0552名前は開発中のものです。2014/12/31(水) 16:01:30.13ID:q55j/6AN
すいません、自己解決しました。SetLookAtWeightでeyeWeightを絞ったら良い感じになりました。
長文失礼しました。
0553名前は開発中のものです。2014/12/31(水) 23:12:10.60ID:OQqgh0L7
>>551
いい解決方法がありますよ。アセットを買いましょう。簡単に解決します
0554名前は開発中のものです。2014/12/31(水) 23:18:49.53ID:fIjKzjbI
>>553
そういえばひよこ本の人がアセットの解説書出してくれそうだけどやっぱりJavaなのかねぇ
0555名前は開発中のものです。2015/01/01(木) 02:13:03.16ID:dViNGvRW
アセットおじさんのお陰でアセットが飛ぶように売れてます、ありがとうございます
0556名前は開発中のものです。2015/01/01(木) 03:13:49.22ID:m3BQ/SJj
Unity がペンやタッチで操作すると、反応がなかったり鈍かったりするのですが、どうしてでしょうか?
ブラウザやその他のアプリは普通に反応します。
OS は Win8.1、Unity は最新(ついさっきインストールしました)です。
0557名前は開発中のものです。2015/01/01(木) 03:56:31.87ID:6NhBEu+b
ソースコードもないのにわかるわけ無いし、
Unityは色々処理が最適化されていないらしいから、仕様かもしれないし…
0558名前は開発中のものです。2015/01/01(木) 04:36:16.04ID:0rT/heJk
>>556
開発環境自体は元々Mac向けだったからWindows版はちょっと怪しいと誰かが言ってた気がする
タッチ操作じゃなくてもウィンドウをアクティブ化した直後とか何か変だよね
0559名前は開発中のものです。2015/01/01(木) 06:07:46.42ID:BiXapupH
あけましておめでとうございます。新年早々申し訳ないのですが質問させてください。

ttp://docs-jp.unity3d.com/Documentation/Components/SL-VertexProgramInputs.html
質問はここの Vertex color という頂点色を参照するシェーダについてです。
このシェーダと頂点色のアルファを指定するc#のスクリプトでオブジェクトを透明にしようとしているのですが透明になりません。
Color.clearを使っても真っ黒になってしまいます。
Debug.Logで吐き出されるColorのアルファの値は確かに0.0になっているので問題ないように思うのですが…これはシェーダの問題なのでしょうか?
0560名前は開発中のものです。2015/01/01(木) 08:58:41.08ID:Enwlx8UX
>>559
明けましておめでとうこざいます
ご質問の件はアセットをかえば解決すると思いますよ
0561名前は開発中のものです。2015/01/01(木) 09:57:45.48ID:uO8gq/Wo
>>559
指定色を抜くというのは無理ではないけどピクセル毎に無駄な計算が発生するのでおすすめしません
普通にアルファ値で抜くのがいいと思います

Alpha CutOutでググってください
0562名前は開発中のものです。2015/01/01(木) 11:23:58.57ID:BiXapupH
>>561
CutOut面白いですね。
ほんと出来合いのシェーダがUnityはすごいんでシェーダ勉強する必要ないような気すらしますね。
0563名前は開発中のものです。2015/01/01(木) 11:37:33.10ID:m3BQ/SJj
>>557,558
我慢してもう少し使ってみようと思います。ありがとうございました
0564名前は開発中のものです。2015/01/01(木) 15:08:33.93ID:xvKM/ysP
>>556
>Unity がペンやタッチで操作すると、反応がなかったり鈍かったりするのですが、どうしてでしょうか?
>ブラウザやその他のアプリは普通に反応します。
>OS は Win8.1、Unity は最新(ついさっきインストールしました)です。


自分の場合surface proの第一世代にunityをインストールしたが、タッチ操作もペンでの操作にも全然反応せず、USBマウスを接続したらやっとまともに使えるようになった
機種にもよるがタッチ操作ではきちんと動かないみたい
0565名前は開発中のものです。2015/01/01(木) 21:22:40.12ID:m3BQ/SJj
>>564
色々検索した結果、ペイントツール関係では wintab api と tablet api というのがあるらしく
ツール対応が関係するのかもしれません。明日マウスを買いに行ってみます。情報ありがとうございました。
0566名前は開発中のものです。2015/01/02(金) 01:33:10.71ID:68o8A9u0
http://neareal.net/index.php?ComputerGraphics%2FUnity%2FTips%2FScript%2FGetChildAndParentObject
ここを参考にして、自分自身の子要素を取得するために
public GameObject childObject = transform.FindChild("(子要素の名前)").gameObject;
を試しましたが
A field initializer cannot reference the nonstatic field, method, or property `UnityEngine.Component.transform'
エラーが出ます。

自分自身の子要素を取得するためにはどうすればよいでしょうか?
0567名前は開発中のものです。2015/01/02(金) 01:47:05.09ID:68o8A9u0
すいません、質問を変えさせてください

ObjectA(親要素)
-ObjectB(子要素)

というゲームオブジェクトがあったとして、ObjectAのスクリプトからObjectBのスクリプトの関数を呼び出したい場合、どうすればよろしいでしょうか?
0568名前は開発中のものです。2015/01/02(金) 01:53:24.88ID:L01kLSNc
それ関数の中じゃなくてクラス上部に書いてない?
0569名前は開発中のものです。2015/01/02(金) 02:00:57.59ID:dux4cGqM
スクリプトAからObjectBをGetComponentしてスクリプトBのスクリプト取得する
0570名前は開発中のものです。2015/01/02(金) 02:17:56.73ID:dU7sGhaf
>>567
スクリプトに躓くのでしたら、アセットをかったほうがいいですよ。
時間の節約になります
0571名前は開発中のものです。2015/01/02(金) 02:26:06.41ID:wJ7PEUUX
アセットおじさん何にでもアセット勧めるけど
そういう、小さいっていうか細かいスクリプトもストアに転がってんの?
0572名前は開発中のものです。2015/01/02(金) 10:26:42.78ID:mbU1wUWv
プログラム書かないでスクリプト生成するんだと
Antares Univers (VISIO)
Behaviour Desginer
PlayMaker

この3つが代表じゃないかな(アルファベット順)
0573名前は開発中のものです。2015/01/02(金) 12:29:19.19ID:RZBZ7ZNx
漢字を含んだ文字列を保存したいんですが、読み出した際に文字化けしてしまいます。

文字列を何らかの数列に変換して保存したいのですが方法ありませんか?
05745732015/01/02(金) 12:49:48.01ID:RZBZ7ZNx
今回は使用する漢字が限定されているので、それをStringで宣言して
何文字目を使ったかの配列を
0575名前は開発中のものです。2015/01/02(金) 12:55:39.11ID:RZBZ7ZNx
すみません途中で書き込んでしまいました。
今回は使用する漢字が限定されている(100文字ほど)ので、それをStringで宣言しておいて
何文字目を使ったかのint配列を","で区切った連結String型で保存させて
読み出し時にまた","で区切りString[]に分け
それをまた数値にもどしつつ実際画面に出すString型に追加していって文字列を再現する

こんな方法で解決はしたんですが、もっと簡単に例えば文字列をパスワードのように変換できないものかと
思い質問させて頂きました。
0576名前は開発中のものです。2015/01/02(金) 14:03:42.64ID:Mval6lwg
Unity Pro 4.6.1 の MovieTexture を使いたいんですが
やり方がわかりません。
ググるとGUItexture にアタッチせよ。みたいに書かれているんですが GUItexture ってどうやって作るんですか?

よろしくお願いします。
0577名前は開発中のものです。2015/01/02(金) 14:06:16.52ID:yd9OT3di
>>566
http://neareal.net/index.php?ComputerGraphics%2FUnity%2FTips%2FScript%2FGetChildAndParentObject
>ここを参考にして、自分自身の子要素を取得するために
>public GameObject childObject = transform.FindChild("(子要素の名前)").gameObject;
>を試しましたが
>A field initializer cannot reference the nonstatic field, method, or property `UnityEngine.Component.transform'
>エラーが出ます。



obj1(親)
obj2(obj1の子)
の場合、obj1からobj2を取得するには

transform.FindChild("obj2").gameObjectじゃなく
transform.Find("obj2").gameObject
とする

transformクラスのFind関数の場合は子オブジェトのtransformを取得するようになっている

http://myoujing.wpblog.jp/2014/06/760/
こっちのまとめの方が参考になるかと
0578名前は開発中のものです。2015/01/02(金) 14:20:13.22ID:yd9OT3di
FindChildはスクリプトマニュアルにきちんと説明が書かれてないが、使い方は
transformじゃなく
gameObject.FindChild("obj2")
と書けば子オブジェクトを取得できたはず

まぁtransform.Findの方を使っとき
0579名前は開発中のものです。2015/01/02(金) 15:03:08.74ID:dU7sGhaf
>>575
文字列を扱うなら、アセットをかえば簡単にできるはずですよ
0580名前は開発中のものです。2015/01/02(金) 16:02:13.92ID:mbU1wUWv
>>576
MaterialのTextureにインポートしたムービー貼り付けて
スクリプトで
renderer.material.mainTexture.Play();
とかやるだけで普通に再生されるよ
別にGUITextureにする必要もない
0581名前は開発中のものです。2015/01/02(金) 18:58:08.18ID:ehAxI/ej
>>580
返信ありがとうございます。
ぼくもそう思ったのですが、Material
のテクスチャに登録できません。
通常の静止画は普通に登録できるのですが。
あとGUITextureの出し方もわかったのですが、こちらにもアタッチできません。
動画の形式が悪いのでしょうか?
.mp4と.movを試してみたのですがだめです。
0582名前は開発中のものです。2015/01/02(金) 19:05:02.22ID:mbU1wUWv
>>581
QuickTime入ってない環境だと駄目
QuickTimeで再生できるなら.mwvでも.mpegでもなんでも一回.movに変換すると通しやすい
あと変換めちゃくちゃ時間かかる
テクスチャがインポートされると テクスチャのアイコンの ->ボタンでAudioトラックが見えるんだけど、見えてる?
0583名前は開発中のものです。2015/01/02(金) 19:59:16.14ID:nBM88kHl
Sceneの切り替え方がよく分からないのですが、
例えばStage1からStage2に移動する時はどう書くのが正しいのでしょうか
0584名前は開発中のものです。2015/01/02(金) 20:07:46.35ID:9Q7fOtkv
コンポーネント内で、
メンバー変数として GameObject を作成したときの挙動で質問です。

メンバー変数として作成した GameObject は、
Parent を設定したときのように、
そのメンバー変数を持っているコンポーネントが
削除されたときに一緒に消える、
ということで合ってますか?

実行時のヒエラルキーでは消えていたので、
たぶんそうだろうとは思うのですが、、、
0585名前は開発中のものです。2015/01/02(金) 21:37:19.70ID:mbU1wUWv
>>583
ttp://docs.unity3d.com/ScriptReference/Application.LoadLevel.html
>>584
参照は残っている、そのゲームオブジェクトのメソッドを呼んだりするとエラーログに「すでに死んでいる」と表示される
0586名前は開発中のものです。2015/01/02(金) 21:42:22.31ID:Oed14LrA
>>575
unity playerprefs 日本語
でググるとBase64で保存する方法が紹介されてる
0587名前は開発中のものです。2015/01/02(金) 22:21:28.40ID:Mval6lwg
>>582
レスありがとうございます。
教えていただいた項目をチェックしていたら動画ファイルが破損していることがわかりました。
Unityにドラッグアンドドロップしたときに変換に失敗したようでした。
ありがとうございました。
0588名前は開発中のものです。2015/01/02(金) 22:40:10.24ID:dU7sGhaf
>>583
SCENEの切り替えはスクリプトを勉強するより、アセットをかって使ったほうがいいですよ
0589名前は開発中のものです。2015/01/03(土) 01:53:55.06ID:c0yHVbau
初歩的な質問だと思うんですが、スワイプで下にスクロールできるシーンを作ったのですが、上端と下端が止まらないので、延々と上と下までスクロールされてしまいます。
下端と上端をそれ以上スクロールできないようにするにはどうすればいいでしょうか。
0590名前は開発中のものです。2015/01/03(土) 02:10:02.81ID:INtr0O9w
>>589
具体的なソースコードがないから、なんとも言えんが、
スワイプする時の位置、イメージ的にはy軸に関する変数をつくる。
要は画面の現在値だ。
これをスワイプに合わせて加減して、端っこに設定した値になったら、反応しないようにする。

俺ならこうする。
0591名前は開発中のものです。2015/01/03(土) 03:02:10.10ID:y+A1gr8r
3D上に常にカメラを向いたエリア(ビルボード的なもの)を作っているのですが、
これを2Dのspriteのように光源に左右されず一定の明るさで表示する事は出来ないでしょうか

光源を2つ用意してCulling Maskの設定で専用の光源を作るとか、
UIをワールドスペースにおいて代用するとか考えましたが、
もっと単純な方法があれば教えて頂けますと助かります。
0592名前は開発中のものです。2015/01/03(土) 08:32:45.83ID:0LTRkA/O
>>589
スワイプは、アセットをかえば簡単にできると思いますよ
0593名前は開発中のものです。2015/01/03(土) 08:56:03.91ID:c0yHVbau
>>590
ありがとうございます。
0594名前は開発中のものです。2015/01/03(土) 09:53:00.44ID:W1oPc3WC
>>591
Materialを造って光源を使わないシェーダを割り当てる
0595名前は開発中のものです。2015/01/03(土) 10:57:51.16ID:y+A1gr8r
>>594
ありがとうございます
Unlitのシェーダに変える事で期待通りの結果を得られました

大変助かりました m(_ _)m
0596名前は開発中のものです。2015/01/03(土) 11:40:01.42ID:sV0UOa3z
完全無料の掲示板サイトをベータ公開中です。

簡単にスレッドの作成や匿名での投稿も可能です。
お気軽にお試しください。

http://fluid.twolineprj.com/twoline/entry
0597名前は開発中のものです。2015/01/03(土) 23:01:11.49ID:0LTRkA/O
>>596
アセットをかえば誰かさんが書き込んでくれると思いますよ
0598名前は開発中のものです。2015/01/04(日) 00:55:54.02ID:sUWFXL3v
ゲームをずっと動かしていると、
徐々に動作が重くなっていくように感じます。

ヒエラルキービューでは、
オブジェクトの生成と破棄が正しく動いてるように見えます。
あとは、Gameobject.Find を頻繁に使うときは、
あらかじめメンバー変数として最初に確保し、
処理を軽減しているつもりなのですが、
他に気を付ける点はありますか?
0599名前は開発中のものです。2015/01/04(日) 01:58:14.73ID:JdhIZp9d
>>598
感じる、ではなぁ…ちゃんと何かで計測したら?
まぁとりあえずコンポーネント類へのアクセスが頻繁なら
その辺もキャッシュしておいたほうがいいとかはある。
transform.posiotion=xxx;
とかは内部的にGetComponentしてるので
キャッシュしておけば数十倍程度早い、のではないかという話もある
0600名前は開発中のものです。2015/01/04(日) 02:02:46.13ID:k5bHNtNE
本当に重くなってるならちゃんと原因を突き止めるべきだと思うよ
0601名前は開発中のものです。2015/01/04(日) 06:36:12.91ID:sUWFXL3v
>>599
GetComponent もFind なみに遅いんですか?
それは知らなかったです。
transform も同様なんですね。
ありがとうございます、勉強になります。

>>600
そうしたいんですが、調べかたがわからなくて。
アクションゲームで、
同じ敵キャラクタを生成しては消して、
ってのを繰り返しているだけなのですが…

ヒエラルキーでも、
生成からデストロイまで
普通に動いてました。

ヒエラルキーに表示されないけど、
データ上に残ってる場合ってあるんですかね。
0602名前は開発中のものです。2015/01/04(日) 08:38:21.95ID:EwrNWtlp
GC.Collect()
0603名前は開発中のものです。2015/01/04(日) 11:20:43.68ID:134qrPMT
>>601
アセットをかえば早くなるかもしれませんよ
0604名前は開発中のものです。2015/01/04(日) 11:27:32.03ID:JdhIZp9d
>>601
そんな程度でどうこうとかないと思うよ。
TPS系のゲームで弾丸数百発とか出したり消したりしてるけど
別に重くなってくとかないし
0605名前は開発中のものです。2015/01/04(日) 12:10:31.20ID:bVSEXfCx
Uguiでのボタン処理について質問です。
On Click()がデフォルトのようですが
これをOn Press()や、押している間の処理に変えることはできますか?
0606名前は開発中のものです。2015/01/04(日) 12:55:13.51ID:7PDAVKMc
>>601
エディタでfps見れるんだからそれで確認しなよ
0607名前は開発中のものです。2015/01/04(日) 14:11:54.83ID:KmXqfhr3
>>605

605さん、お疲れさま。
長押し処理は自分もこの前ハマったわ〜w (めちゃめちゃ調べた)

んで、結果はこれ↓↓↓

新規UIのボタンって、デフォで長押し処理ない気がする。。
というか、したので、
自分はC#スクリプト上で長押し判定用のbool型変数を用意して、
「Event Trigger」を使用して長押し処理を実装したよ。(自分で長押し処理を作らないといけない)
「Event Trigger」ってので、
「Pointer Down(押された時)」と「Pointer Up(離した時)」のイベントが取れるので、
「押された時から離されるまで◯◯処理する」って形で長押し処理を作った。
0608名前は開発中のものです。2015/01/04(日) 14:44:48.71ID:JdhIZp9d
>>605
できあいのものとしては現状無理。
ttp://docs.unity3d.com/460/Documentation/Manual/script-Button.html
自分で色々工夫したりするのはもちろん可能。
ttp://forum.unity3d.com/threads/long-press-gesture-on-ugui-button.264388/
うだうだ言ってればそのうち付くような気もする。
0609名前は開発中のものです。2015/01/04(日) 16:18:39.23ID:moEQHLCe
クラスAとクラスBがあって、クラスAのメソッド→クラスBのメソッド
の順序でコールしたいです

クラスAのメソッドの中でクラスBをコールすれば終わるのは分かっていますが、
クラスAをオブジェクトA、クラスBをオブジェクトBのコンポーネントにそれぞれアタッチした場合、
オブジェクトの表示順をオブジェクトA→オブジェクトBにすれば
メソッドもクラスAメソッド→クラスBメソッドの順序でコールされますよね?

この場合、オブジェクトの表示(読み込み)順はどのように操作すればいいんですか?
ヒエラルキーで上から順にオブジェクトA→オブジェクトBとしてみましたが、オブジェクトBに
アタッチしたクラスBメソッドが先に呼ばれました(クラスAメソッドとクラスBメソッド内でブレイクを張って確認しました)
0610名前は開発中のものです。2015/01/04(日) 16:33:12.68ID:JdhIZp9d
昔はヒエラルキーでの並びだったんだが今はExcuteOrderを使え、ということになっている
ttp://docs.unity3d.com/Manual/class-ScriptExecution.html
0611名前は開発中のものです。2015/01/04(日) 16:43:19.42ID:moEQHLCe
>>610
なるほど、やっぱりヒエラルキー順じゃなかったんですね
ありがとうございます。
0612名前は開発中のものです。2015/01/04(日) 18:26:09.34ID:Hu1sQwA7
やっぱり?
0613名前は開発中のものです。2015/01/04(日) 18:28:10.10ID:vV29CxYC
質問なんだけど
今テストプロジェクトを作ってて
void Update () {
Vector3 vec = new Vector3 (Input.GetAxisRaw ("Horizontal"),0, Input.GetAxisRaw ("Vertical"));
cc.Move (vec * speed * Time.deltaTime);
}
たったこれだけの処理をしてるだけなのにモデルを動かしたら微妙に引っ掛かりのある動きになってしまう
何か問題あるのだろうか
ccにはキャラクターコントローラーが入ってる
0614名前は開発中のものです。2015/01/04(日) 18:55:19.55ID:vV29CxYC
自己解決しました
引っ掛かりがあったのはunity上の話でビルドして実行ファイルを実行したら滑らかになった
あってるかどうかわからないけどあんまり気にする必要はないという事がわかった
0615名前は開発中のものです。2015/01/04(日) 18:56:16.12ID:JdhIZp9d
そもそもキャラクターコントローラーに移動処理はいってなかった?
2重に動かしてんじゃね?
0616名前は開発中のものです。2015/01/04(日) 19:00:29.00ID:vV29CxYC
>>615
キャラクターコントローラーはmoveとかsimplemoveで動かすもののようだ
0617名前は開発中のものです。2015/01/04(日) 20:20:05.41ID:sUWFXL3v
>>604
>>606
Fpsは平常時60、下がると50台です。
ただ、どのくらい下がったかより、
なぜさがるのか知りたくて…

色々と実行中のコンポーネント見てたら、
どうやらAudioManagerが
AudioSourceを大量に50個ぐらい生成しているのですが、
ゲームを普通につくったとき、
AudioSourceの数って皆さんそんなもんでしょうか。
同時に何音も鳴らしたいので、
多目に確保してるのですが…
0618名前は開発中のものです。2015/01/04(日) 20:25:14.29ID:bVSEXfCx
>>607
やはりその方法しかありませんか・・・
ありがとうございます!

>>608
ありがとうございます!
現状NGUIがまだまだ作りやすそうです。
0619名前は開発中のものです。2015/01/04(日) 20:30:32.13ID:sUWFXL3v
失礼しました、下がると40台でした。
0620名前は開発中のものです。2015/01/04(日) 20:39:04.84ID:134qrPMT
>>617
無理せずにアセットをかって使いましょう。
プログラムは難しいですからね
0621名前は開発中のものです。2015/01/04(日) 21:15:06.94ID:JdhIZp9d
40まで下がってると確かに重いって感じだよなぁ
プロファイラで見るのが常套だろうから
Pro版試してなかったらここが試用のしどころ!って感じはするかな
0622名前は開発中のものです。2015/01/04(日) 22:23:40.20ID:3XdxGF37
すみません質問です。
2Dのスプライトでアニメーションするキャラクターに、
別パーツで銃とかの、武器のオブジェクトを持たせたいのです。
キャラクターの子に武器のオブジェクトを入れれば一応くっつけることは出来るのですが
自分の作っているキャラクターはドットの一枚絵で描かれて、
パラパラ漫画みたいに一枚一枚ポーズが変わるアニメーションなので、どうしても武器の位置がずれます。
例えばキャラクターが腕を振って走っているアニメーションをしているときに、
動いている手の位置に武器を固定する方法はないでしょうか?
そういう機能があるアセットでも良いので、情報があればお願いします。
0623名前は開発中のものです。2015/01/04(日) 22:29:40.90ID:/RIyJaAQ
>>622
一回自分も同じようなことやりたかったから色々調べたけど
・武器を配置したい座標をリストにして時間毎に切り替える
・1枚絵じゃなく関節ごとに絵を分割して手首部分の子にする
のどちらかをしないとダメなんじゃないかな
0624名前は開発中のものです。2015/01/05(月) 01:02:33.13ID:HQqSMzB1
>>622
そういうアセットは無いです。
諦めましょう
0625名前は開発中のものです。2015/01/05(月) 01:07:01.01ID:SxAVaiSD
そういうのって絵を解釈してどこが手か、を決めなきゃならないので
基本的に自動化は無理なんだよなぁ。
手の位置を各スプライトとセットのデータとして持つしかないよね
0626名前は開発中のものです。2015/01/05(月) 01:28:52.59ID:LeCKPpi2
スプライトアニメをAnimationでやってるなら
同じキーフレームに武器オブジェクトのpositionやらrotationを指定してやればできそうな気がする
UnityのAnimationとAnimatorは難解だけど強力
0627名前は開発中のものです。2015/01/05(月) 01:36:15.37ID:K04l8kjf
アセットおじさんも匙を投げることがあるのかw
0628名前は開発中のものです。2015/01/05(月) 01:52:58.88ID:bs96uqu1
>>622
Unityではなく2Dプログラミングとしての話になるけど
重ねて表示する用の銃のスプライトを作っておいて
フラグがtrueだったら銃のスプライトを一緒のアニメーションで表示する
っていう風に作るよ
0629名前は開発中のものです。2015/01/05(月) 03:16:12.54ID:3DeaYSl4
>>617
取り敢えずオーディオマネージャー切ってfps下がるか確認して見たら?
06306222015/01/05(月) 08:22:55.68ID:VRohQKXl
みなさんありがとうございます。
一応方法としてはあるようで安心しました。なんとかやってみようと思います。
0631名前は開発中のものです。2015/01/05(月) 08:38:15.55ID:Aq8e6QR8
まあ2Dゲーム作るのにUnity使うなよって話だわな
0632名前は開発中のものです。2015/01/05(月) 10:01:55.88ID:4wRiZoij
>>622

自分はそういう場合は武器とかヘルメットとか鎧とかはキャラクターと同じ縦横ピクセル数、同じアニメーション枚数で作っておくな
画像作成ソフトの方でキャラのアニメーションパターン毎に「レイヤー移動」ツールなどで位置あわせしておいた武器のアニメーションパターンを作成(編集時にキャラの絵を下絵として表示しておいて武器や鎧の位置あわせ)

そうしておけばunity側ではアニメーションのタイミングとパターンをキャラと武器で同期させておくだけでよく、位置はキャラと一緒にすればフレーム毎に位置あわせする必要はなくなる
0633名前は開発中のものです。2015/01/05(月) 10:10:13.58ID:4wRiZoij
あと626さんが書いたみたいにunityのmecanimでフレーム単位で武器の位置や回転の値を変更するという方法もある
0634名前は開発中のものです。2015/01/05(月) 11:13:06.70ID:DSkeHC2C
VRAM usage について質問があります。

起動時は VRAM usage : 4.2MB to 4.7MB (of 64.0MB) なんですが
ゲームを進めているうちに VRAM usage : 4.2MB to 155.7MB (of 64.0MB) というようにどんどん値が大きくなってしまいます。

大きくなる原因はあるオブジェクトのMeshFilterに新しいMeshを入れて描画を繰り返しているからなんですが
64.0MBを超えていいのか、大きくなりすぎるとフリーズするのかが知りたいです。

今のところゲーム自体は処理落ちしたりしていないんですが、Windowsタスクマネージャの使用メモリも増えていくのが気になっています。
0635名前は開発中のものです。2015/01/05(月) 13:20:26.79ID:Aq8e6QR8
使えば増える、当たり前
0636名前は開発中のものです。2015/01/05(月) 13:39:43.11ID:SxAVaiSD
>>634
タスクマネージャ上の使用メモリの問題はちょっとここで示されている話からは
わからないがVRAMUsageの話についてはこの辺
ttp://forum.unity3d.com/threads/unity3d-only-detects-64mb-of-vram.274713/

ここで話されているのはC2Dの頃のオンボードチップだが今のIvyBridgeに載ってる
IntelHD4000とかに関してもベンチマーク動かすとVRAM64Mとかになってるんだけど?
という話はちらほらある。
その上の記事の内容にあるようにメインメモリをシェアするタイプのものは
動的にメモリを割り当てていくので(of64MB)の部分は初期化したときに
取得した値がそのままになっていて更新されないだけの話だろう。
何かしら処理がまずくて使用メモリが数GBとかになるならアレだと思うが
1GBに収まっている限りはイマドキの通常のカードで収まるしフリーズとかは
心配しなくてもいいと思う。
もちろんパフォーマンスの観点からよりよくできるとかそういう話はあるだろうけど。
0637名前は開発中のものです。2015/01/05(月) 15:21:44.32ID:VaX6/230
>>634
アセットをかえば、フリーズを回避できるかもしれませんよ?
0638名前は開発中のものです。2015/01/05(月) 18:23:59.89ID:lHVk+hwS
接地をisgroundedでやろうとしたら上手くいかない
いっぺんジャンプしたら接地を認識しない
そこで CollisionFlags.Belowを使って判定したらちゃんと動いた
欠陥機能なのかよ
0639名前は開発中のものです。2015/01/05(月) 18:43:03.19ID:cAWfPSK9
UGUIについてですが、
Canvas内にパーティクルを置いたんですが、エディターでは表示されるのに
いざAndroidやWindowsでプレイしてみる表示されていません。
Canvas下にパーティクルを置いて表示する方法はあります?

あと、UGUIで設定したテキストがAndroidでズレているとゆうか、フォントが細くなっているんですが
それもエディターに合わせることは可能でしょうか?
0640名前は開発中のものです。2015/01/05(月) 18:53:34.49ID:+NdkYs9T
>>638
isGroundedの精度は悪いって評判なんだよな〜。
リライアビリティが足りないとフォーラムとかでも沢山スレッドがある。
0641名前は開発中のものです。2015/01/05(月) 19:56:42.73ID:VaX6/230
>>639
Canvas下にパーティクルを置いて表示する方法は、アセットをかえばあるかもしれません
0642名前は開発中のものです。2015/01/05(月) 19:57:36.59ID:DSkeHC2C
>>636
ありがとうございます。
MeshTopology.Linesを使わなければそれで済む話なんですがとりあえずこのまま開発を進めてみます。
0643名前は開発中のものです。2015/01/05(月) 21:42:35.98ID:Hrwxwrw8
特定のカメラに物体が写っているかを判定する方法ないでしょうか?
一言でいうとパンツ見えてるか判定がやりたいです。

OnWillRenderObjectを使ってみましたが、
見えてるか否かではなくカメラの範囲内か否かしか判定できなくて、
隠れていても見えてる判定になりダメでした。
0644名前は開発中のものです。2015/01/05(月) 21:53:12.75ID:VaX6/230
>>643
アセットをかえばパンツが見えるかもしれません。
スカートの中身ですか?
0645名前は開発中のものです。2015/01/05(月) 21:55:51.99ID:8ZCO18T5
>>643
CameraのViewVolumeにあるオブジェクトが含まれるかって判定すれば良いだけだと思うのだが、これがパンツとなるとスカートその他で隠れているかを判定しないと行けないのでものすごい難しい処理になるよ。
現実解としてはOctreeである程度分解して処理するしか無い。

#要求仕様を明確にしてくれればある程度の答えはだせるけど、今の質問レベルだと隠れている部分を処理できないので無理
0646名前は開発中のものです。2015/01/05(月) 22:01:22.23ID:8ZCO18T5
簡単な部類だと、パンツの一部をしめす領域に向かってRayCastを確率的に(パンツのもつ領域にいくつかのRayCastターゲットを持たせる)
投げてパンツより手前の物体がHitしないならパンツが見えてるって判定はアリだとは思うけど。
0647名前は開発中のものです。2015/01/05(月) 22:03:01.84ID:+NdkYs9T
テラシュールウェアの人がそんなネタでブログ書いてる。
ttp://tsubakit1.hateblo.jp/entry/20140623/1403532205

まぁこれはうまくいってないようだが最後にちょっと書いてあるように
Pro版ならレンダーテクスチャーでパンツだけと全部をそれぞれ
デプステクスチャーでレンダーして比較して同じものがあれば見えてる、
とかは可能そう。
半透明オブジェクトがなければ普通にレンダーでもいいかとは思うんだけどね。
0648名前は開発中のものです。2015/01/05(月) 22:20:52.57ID:ZlhW65fg
パンツを独立したゲームオブジェクトとかにできるんなら、UnityTestToolsの
アサーションコンポーネントで出来そうだな
0649名前は開発中のものです。2015/01/05(月) 22:23:21.48ID:Hrwxwrw8
なるほど、やっぱりスカートなどの動的な障害物があると難しいのですね。
コロンブスの卵的方法がないかもう少し悩んでみます。
有難うございました。
0650名前は開発中のものです。2015/01/05(月) 22:58:52.30ID:8ZCO18T5
>>647
履いているのがスカートだったらスカートの裾部分の頂点情報を元にできるんだけど、リンク先みたいに隙間が見える系はもうどうしようもないと思うなー
計算機幾何学でRegionに点が内包されるかって判断で行うんだけど元図形に依存するから図形毎にデータを手で生成しないといけないし(Meshがアニメーションで移動する)
MeshをソフトスキャンするのはCPUコストかかるからUnity向けじゃ無い気がする。
パンツを含む領域を座標で切り取り(BoundingBox)、パンツだけ白、それ以外を全部黒でレンダリングして、
レンダーテクスチャのサイズを小さめに(2^nのnが小さい領域でフレーム毎に全部みても軽い大きさ)してそこが黒以外あればとか言う実装も無しではないんだけど。

この手のゲーム自体に依存する処理は元画像側も関係しちゃうから本気でめんどくさい。

#実際テクニック的にはやれることはたくさんあるのでもちっと説明くれれば他の方法も提供できるとは思う
0651名前は開発中のものです。2015/01/05(月) 23:50:43.46ID:+NdkYs9T
>>650
やっぱそれは重すぎかw
元ブログの人もレンダーテクスチャー比較の手法を試す!とかツイートしてて
でもその続報がないところを見ると「こらあかんわ」って感じだったんだろうな、
とは思っていたんだがw
■ このスレッドは過去ログ倉庫に格納されています