1 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 23:02:03.72 ID:t35CWy1R.net] 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質問スレッド9 peace.2ch.net/test/read.cgi/gamedev/1399506271/ ■本スレ 【3Dゲームエンジン】Unity総合スレッド22 toro.2ch.net/test/read.cgi/gamedev/1395140574/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/japan/ ・ユーザーガイド&リファレンス japan.unity3d.com/developer/document/ ・チュートリアル japan.unity3d.com/developer/document/tutorial/ ・スクリプトリファレンス docs-jp.unity3d.com/Documentation/ScriptReference/ ・FAQ answers.unity3d.com/index.html ・MSDN msdn.microsoft.com/ja-jp/ms348103 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
266 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 08:51:42.60 ID:FBnZyoZb.net] Unityで実装されたブラウザアプリの実行時速度を 外部からコントロールできるような手法やツールはあるのでしょうか。 Unityアプリのスピードを、速くしたり、遅くしたりということをツール等を 使ってできるのかがわかりません。 タスクマネージャからブラウザのプロセスの優先度を下げたり、上げたりして みましたがアプリのスピードを変える事ができませんでした。 どなたかご存知でしたらご教授ください。
267 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 09:04:00.69 ID:1ai0I56Z.net] >>260 その場合はopen_switchがnullのときだけ つまりopen_switchに何のGameObjectも代入されてない場合にifの先が実行される ・・・と思う 自分もまだ勉強中ゆえ本当にそうかはちょっと自信がない
268 名前:名前は開発中のものです。 [2014/07/06(日) 09:11:45.22 ID:+M1clTAW.net] >>262 ありがとうございます。 参考にしてみます。 ”!”の記入の仕方が色々あり、読み解くのが 難しいです。。。
269 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 10:31:59.86 ID:N5QQMiFF.net] >>263 ! variable は数値、真偽値、オブジェクトに対して variable == 0 variable == false variable == null として使う 明示的じゃないので嫌いな人も居るから読みやすいように書けば良いと思うよ。
270 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 10:34:02.81 ID:9dRES+AK.net] ∩___∩ |ノ⌒ ⌒ ヽ / ●) ●) | オツカレチャ━━━━━| ( _●_) ミ━━━━━ン♪ 彡、 |∪| 、` / ヽノ ヽ / 人 \\ 彡 ⊂´_/ ) ヽ__`⊃ / 人 ( (_ノ (_)
271 名前:名前は開発中のものです。 [2014/07/06(日) 10:45:03.89 ID:+M1clTAW.net] >>264 ありがとうございます。 勉強になります!
272 名前:名前は開発中のものです。 [2014/07/06(日) 11:08:05.44 ID:+M1clTAW.net] サウンドの組み込みについて質問です。 下記のような形で、 指定のゲームオブジェクトに当てはめられている「goalScript」 が「cleared==false」なら「voice」を再生しています。 現状の指定で流れはするのですが、 unity上でのゲーム再生ボタンを押したときに、 頭何フレームかだけ再生されたり、 他のアクションを起こしたときも、動揺に 数フレームだけ再生されたりと 不自然な挙動をします。 色々調べはしたのですが原因がわかりせん。 すみませんが、アドバイスをいただけませんでしょうか。 宜しくお願いします! var goalObj:GameObject; var goalScript:GoalScript; var voice: AudioClip; function Start () { goalScript=goalObj.GetComponent("GoalScript"); } function Update () { if(goalScript.cleared==false){ audio.Play(); audio.clip = voice; } }
273 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 11:13:39.06 ID:9dRES+AK.net] ∩___∩ |ノ⌒ ⌒ ヽ / ●) ●) | オツカレチャ━━━━━| ( _●_) ミ━━━━━ン♪ 彡、 |∪| 、` / ヽノ ヽ / 人 \\ 彡 ⊂´_/ ) ヽ__`⊃ / 人 ( (_ノ (_)
274 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 11:36:08.98 ID:W+VtYmCA.net] audio.Play(); audio.clip = voice; これ逆じゃね? あと毎回Play呼ばれてね?
275 名前:名前は開発中のものです。 [2014/07/06(日) 11:42:45.52 ID:+M1clTAW.net] >>269 ありがとうございます。 逆というと、こういうことでしょうか。。。 audio.clip = voice; audio.Play(); また、毎回プレイで呼ばれている、確かに 何かアクションを起こす度に音がなります。 それは、「audio.Play();」の再生方法が間違っているのでしょうか。
276 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 12:07:34.19 ID:/ZhdI6Tk.net] Updateメソッドは毎F呼ばれる falseにずっとなってても1度しか鳴らしたくないのであれば フラグでも立てればいいのでは? var flag : int = 0; function Update () { if(goalScript.cleared==false && flag == 0){ audio.Play(); audio.clip = voice; flag = 1; //再プレイ抑止 }
277 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 12:07:36.22 ID:A7UAPEqP.net] audio.Play()のつかいかた自体と言うよりも、 毎回、音がなってるからそれ制御してやって。
278 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 12:24:22.63 ID:www09xjy.net] >>270 アセットを購入しましょう
279 名前:名前は開発中のものです。 [2014/07/06(日) 12:24:31.86 ID:+M1clTAW.net] >>271 Updateの考え方が分かりました。 PG初心者なもので、ありがとうございます。 毎F呼ばれるので、スタート時や何かアクションを 起こしたときに再生されるのですね。。。 また、ご連絡いただきましたスクリプトですと、 「cleared==false」になったと同時に「flag = 1」に なってしまいます。 「audio.Play()」再生後に「flag = 1」にするには、 どのように対応すれば宜しいでしょうか。 すみませんが、宜しくお願いします。
280 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 12:46:49.69 ID:g+013jS2.net] どういう用途でサウンドを再生したいの? 「スタート!」とかBGMとか効果音とかでやり方変わるよ 初心者ならフローチャートみたいのを書いた方が楽にできるだろうし、 論理的な考え方も身につくんじゃないかな?
281 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 12:52:35.12 ID:/ZhdI6Tk.net] >>274 audio.Play(); audio.clip = voice; ここ2ステップの正当性については検証していませんが 処理順的にvoiceが鳴ったあとにフラグONされるはずですが・・・ デバッガでステップインしたらちゃんとそこを通っていますか? voiceにはちゃんと中身が入っていますか?
282 名前:名前は開発中のものです。 [2014/07/06(日) 12:57:30.13 ID:+M1clTAW.net] >>275 256です。 度々すみません "キャラを3Dフィールドで動かして、「goalObj」というアーチオブジェクトを 通過したら、「voice」を再生。 また再度通過しても、同様に「voice」を再生する。" という使用でサウンドを鳴らしたいと考えています。 宜しくお願いします。
283 名前:名前は開発中のものです。 [2014/07/06(日) 13:10:34.33 ID:+M1clTAW.net] >>276 256です。 いただきましたスクリプトで下記のように記述しています。 現状このような状態です。 ・再生すると「flag」が常に1の状態です。 ・「flag = 1」の部分をコメントアウトすると音声が流れます。 ・「cleared==false」になったときに「flag = 0」になり 「voice」の再生が終わったら「flag = 1」になるイメージでしょうか。 (書き方がちょっと分かりませんが…) 宜しくお願いします。 var goalObj:GameObject; var goalScript:GoalScript; var voice: AudioClip; var flag : int = 0; function Start () { goalScript=goalObj.GetComponent("GoalScript"); } function Update () { if(goalScript.cleared==false && flag == 0){ audio.Play(); audio.clip = voice; flag = 1; } }
284 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 13:27:50.82 ID:N5QQMiFF.net] goalScript.clearedって通過した瞬間だけ1になるようにできないの? あるいは goalScriptのclearedをクリアチェックして更新してる箇所で if(audio.isPlaying == false) { audio.clip = voice; audio.Play(); } ぢゃないの? も一つおまけにゴール通過した時とゴール地点に居座った時の区別とか付く?
285 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 13:33:54.41 ID:yBLHkZ9t.net] まず、Updateの仕様を理解するところからはじめようぜ。 そのスクリプトをつけたゲームオブジェクトがシーンに存在している間は、1秒間に60回とか永遠にUpdateは実行される。 なにかのボタンを押した時だけ再生したいとかなら、そのボタンを押したという情報をUpdate内で判断してplayを実行しなきゃならん。 それが、flagだ。 だから、ボタンを押した時にこのflagを1にしてやる処理を書かないと動かん。
286 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 13:46:21.21 ID:/ZhdI6Tk.net] >>278 アーチっていうのが何か分からないのですが100m走のゴールのようなK点ですか? そのK点に透明のIsTriggerオブジェクト置いてキャラとK点に置いた IsTriggerオブジェクトが接触したら(通過したら) var audioclip : AudioClip; // ボイスフィールド void OnTriggerEnter (Collider coll){ if(coll.gameObject.tag == "IsTriggerオブジェクト") { audio.PlayOneShot(audioclip); //ボイス再生 } } とかすればいい気がします Enterなら接触した瞬間なので一度しか鳴りません var audioclip : AudioClipはインスペクタから鳴らしたいボイスファイルをアタッチします
287 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 13:47:48.80 ID:yBLHkZ9t.net] まちがった。修正。 > だから、ボタンを押した時にこのflagを1にしてやる処理を書かないと動かん。 正)flagを0に
288 名前:名前は開発中のものです。 [2014/07/06(日) 13:47:52.35 ID:+M1clTAW.net] >>279 256です。 ”goalScript.clearedって通過した瞬間だけ1”そうなのですが、 書き方がわからず悩んでいるところです。。。 >>280 言われている通りで、 Updateが毎フレーム実行していることがようやく理解出来たところです。 ”flagを1にしてやる処理”ここが261さんの返答でも書きましたが、悩んでいるところです。 宜しくお願いします。
289 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 13:53:14.81 ID:9dRES+AK.net] ∩―−、 / (゚) 、_ `ヽ / ( ● (゚) |つ .オツカレチャ━━━━━| /(入__ノ ミ━━━━━ン♪ 、 (_/ ノ \___ ノ゙ / ヽ / 人 \\ 彡 ⊂´_/ ) ヽ__`⊃ / 人 ( (_ノ (_)
290 名前:名前は開発中のものです。 [2014/07/06(日) 14:19:05.13 ID:+M1clTAW.net] 256です サウンドの件ですが、 var goalObj:GameObject; var goalScript:GoalScript; var voice: AudioClip; var flag : int = 1; function Start () { goalScript=goalObj.GetComponent("GoalScript"); } function Update () { ーーここの部分に「cleared==false」なら「flag」を 0にする指定を書くいめーじでしょうかーー if(goalScript.cleared==false && flag == 0){ audio.Play(); audio.clip = voice; flag = 1; } } 宜しくお願いします。
291 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 14:57:57.08 ID:Ml1Wif2C.net] >"キャラを3Dフィールドで動かして、「goalObj」というアーチオブジェクトを >通過したら、「voice」を再生。 >また再度通過しても、同様に「voice」を再生する。" >という使用でサウンドを鳴らしたいと考えています。 キャラを動かしてgoalObjとの衝突判定取れるとこまでは出来てるんだよな・・・? 本でも買って一から勉強したほうがいいレベルのような気がするが 黄色い本がオススメだぞ
292 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 15:00:44.87 ID:N5QQMiFF.net] まず何が解っていないのかすら解っていないと思うので>>286 が述べているように書籍なりなんなりで一通りの事を覚える方が良いと思う。 ツクールとかと異なって細かい事までできる分Unityは言われているほど簡単じゃないから。
293 名前:名前は開発中のものです。 [2014/07/06(日) 15:21:00.72 ID:+M1clTAW.net] >>286 動きの方は問題ないのですが、 サウンドの制御が上手くいきません。 なるのだけれど、&qu
294 名前:ot;Updateが毎フレーム実行"というところで 引っかかり、余計なところで再生してしまう。 モーションもサウンドと似たようなスクリプトだけれど、 サウンドは上手くいきませんね。。。 unity入門は一通り目を通したのですが、 中々応用が厳しい状態です。 [] [ここ壊れてます]
295 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 15:25:03.44 ID:N5QQMiFF.net] >>288 本読んでいるってことはGoalオブジェクトとの衝突判定にはCollision使ってるんだよね? ならCollisionチェック(上でだれかが書いていたけど)のあるScript側でゴール音ならすだけじゃないの?
296 名前:名前は開発中のものです。 [2014/07/06(日) 15:44:08.47 ID:+M1clTAW.net] >>289 すみません、ちょっと話がループしてしまうのですが、 現状のスクリプト(下記のもの) でも音がなるのですが、 unity上で再生ボタンを押したときなど、 余計な時にも成ってしまう。 →"Updateが毎フレーム実行"の為に起こってします。 そこで、その部分の制御方法が知りたいです。。。申し訳ないです。 その他UIなどのからみもあり、出来れば現状のスクリプトで 解決したく思っております。 また、現状のものに過失修正するのでは、不可能の対応なのでしょうか。 度々お聞きして申し訳ございませんが、宜しくお願いします。 var goalObj:GameObject; var goalScript:GoalScript; var voice: AudioClip; function Start () { goalScript=goalObj.GetComponent("GoalScript"); } function Update () { if(goalScript.cleared==false){ audio.Play(); audio.clip = voice; } }
297 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 15:47:52.33 ID:BQWLChCY.net] goalScript.clearedをゴールの判定したところでfalseにする そしてUpdateで if(goalScript.cleared==false){ goalScript.cleared=true●●●ここを追加 audio.Play(); audio.clip = voice; } かね
298 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 15:48:31.46 ID:BQWLChCY.net] あーでもゴール判定するところをこれ以降呼ばないようにしないと何度も出るな
299 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 15:49:11.00 ID:BQWLChCY.net] あ、上にあることと同じこと書いてあるかもしれないごめn
300 名前:名前は開発中のものです。 [2014/07/06(日) 16:18:25.09 ID:kNYy9+kR.net] 書き込めるかテスト
301 名前:名前は開発中のものです。 [2014/07/06(日) 16:21:41.06 ID:kNYy9+kR.net] あー失礼 OnCollisionExitで cleared=falseしてやればいんじゃね 曲の途中でexitされるのがイヤならそれが終了するまで待つ必要があるけど
302 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 16:25:51.67 ID:www09xjy.net] アセットを購入したらそんな面倒なことしなくてもいいよ
303 名前:名前は開発中のものです。 [2014/07/06(日) 16:52:22.66 ID:+M1clTAW.net] >>295 ありがとうございます。 「OnCollisionExit」調べさせていただきます。 しかしながら、申し訳ないのですが、 「audio.Play(); 」を一回だけ実行する方法が知りたいです。 現状のスクリプトですと、 unity上で再生ボタンを押したときなど、 余計な時にも鳴ってしまう状態です。。。 宜しくお願いします。
304 名前:名前は開発中のものです。 [2014/07/06(日) 17:03:51.29 ID:kNYy9+kR.net] >unity上で再生ボタンを押したときなど、 cleared==false で鳴るんでしょー 初期値がfalseなら最初にUpdateが来たときに鳴るのは正常な動作だよ cleared=trueに初期化して 何者かがCollisionEnterしたときにcleared=falseにしてあげれば 一回だけ鳴るよ trueとfalse逆のほうが意味が混乱しないかもしれないけど
305 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 17:34:11.18 ID:www09xjy.net] >>297 アセット買えばいいと思うよ
306 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 17:44:36.50 ID:h+L1nGu/.net] >>297 自分だったらプレイヤーに function Goal { audio.clip = voice; audio.Play(); } というメソッドを用意して、ゴールオブジェクトのOnTriggerEnter(Collider other)で other.gameObject.SendMessage("Goal") とメッセージを送ります。Updateは使いません
307 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 17:45:49.89 ID:FOrSI5nd.net] >>262 たしか、if(x)が実行されないのは、x=0の時だけで、x=10とか、でも実行されるよな?不安になってきた
308 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 19:53:39.89 ID:1ai0I56Z.net] >>301 その辺は>>264 が完璧だと思う x=10でも実行される
309 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 20:08:00.79 ID:8bCjoDHE.net] まさか音源のコンポーネントの起動時に再生するチェックボックスにチェックが入ってるんではあるまいな?
310 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 20:12:44.73 ID:FOrSI5nd.net] >>302 サンクス
311 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 22:09:08.54 ID:1ai0I56Z.net] なぜだ・・・ 再生するたびにカメラの追従がガタガタになったり直ったりする
312 名前:名前は開発中のものです。 [2014/07/06(日) 22:12:20.98 ID:+M1clTAW.net] 256です どうやら上手くいきました。。。 >>271 さんのものをベースに再生指定方法を「PlayOneShot」に変更しましたら、 予定した再生方法に出来ました。 "function Update"だと"audio.Play()"は機能しないのですかね。 "function Start"だと再生されるのですが。。。 ひとまず、 色々アドバイスいただき、ありがとうございました!!!
313 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 22:38:43.47 ID:qYY8rbjF.net] Unityでゲーム作れる男の人ってステキ! みたいな感じでハーレム築けませんかね?
314 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 23:25:21.79 ID:6HL28AkK.net] >>305 オブジェクトを物理で動かしてカメラをUpdate()でうごかしたり オブジェクトとカメラをUpdate()で動かしたりするとそうなる、 かもしれない。
315 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 23:43:29.23 ID:1ai0I56Z.net] 自己解決しました Inspectorにカメラそのものかカメラが追従するもの(プレイヤー)が表示されたまま ゲームを再生するとカメラがガタガタになるらしい
316 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 23:48:26.75 ID:W+VtYmCA.net] Startは初回に1回しか実行されないんだからそりゃ上手く鳴るだろ・・・ 全然分かってないと思うんだが大丈夫かよ
317 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 23:59:03.64 ID:qYY8rbjF.net] StartやUpdateの仕様もそうだが、プログラムの基礎が怪しすぎて教えてあげたいが、教えられない。
318 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 06:22:04.29 ID:1a4GRbbJ.net] アセットを買えばプログラムもいらないと思
319 名前:「ます [] [ここ壊れてます]
320 名前:名前は開発中のものです。 [2014/07/07(月) 11:59:01.03 ID:NmVEc3Ia.net] Windows の Editer上で、WebViewみたく、Web表示できるアセットってないですかね? WebViewは、Android,いPhone,Macは、対応してるけど、windowsだけ対応してなくて。 現在開発がWindows中心なのでどうにかそこもカバーしたい。。
321 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 14:05:19.09 ID:HFPJwFqU.net] クラス内のpublicフィールドを全部一括でインスペクタに表示しない方法ってありますか? フィールドが2〜3個なら[System.NonSerialized]でいいんですが 50個くらいのフィールドを全てインスペクタに表示しないようにしたいんですが、 一つ一つに[System.NonSerialized]付けていくしかないですか? 一括でできる方法があれば教えて下さい
322 名前:名前は開発中のものです。 [2014/07/07(月) 14:28:44.66 ID:xmI8T3g4.net] >>314 方法はいくつかある。 その前にSystem.NonSerialized属性はフィールドをインスペクタに表示しない属性じゃなくて、 フィールドをシリアライズしない属性。非表示だけならHideInInspector属性を使うと良いよ。 んで一括で表示させない方法だけど、まずはそのフィールドが本当にフィールドである必要があるかを考える。 プロパティはシリアライズされないから、{get;set;}とかをつけてプロパティにしてしまう手もある。他クラスから取得できるけど設定できない値とかも作れるよ。 他にはカスタムエディタを定義しておく方法がある。 Editorってフォルダ内に適当に「(クラスの名前)Editor」みたいなスクリプト作る。 UnityEditor名前空間を参照して、Editorクラスを継承する。 CustomEditor属性を付けてフィールドを非表示にしたいクラスを渡す。 OnInspectorGUIメソッドをオーバーライドしてインスペクタの表示処理を書く。
323 名前:名前は開発中のものです。 [2014/07/07(月) 14:29:13.89 ID:xmI8T3g4.net] >>315 の例 <例> using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor(typeof(インスペクタをカスタマイズしたいクラス))] public class ExampleEditor : Editor { public override void OnInspectorGUI() { var selectedObject = target as インスペクタをカスタマイズしたいクラス; // ←これが選択中のコンポーネントのインスタンス // GUI,GUILayout,EditorGUI,EditorGUILayoutなんかを使ってインスペクタの表示を好きにいじれる。 EditorGUILayout.LabelField( "このクラスのフィールドは表示しないよっ!" ); // base.OnInspectorGUI(); ←このコメントを外すと普通にインスペクタが表示される。 } }
324 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 14:44:25.67 ID:HFPJwFqU.net] ありがとうございます。参照にします。 ちなみに、System.NonSerialized属性にするとセーブ機能なんかでバイナリ保存したい場合とか 保存できないですよね? あと、どっかのサイトにHideInInspectorよりSystem.NonSerializedの属性使う方が トラブルが少ないと書かれていたのでSystem.NonSerializedがいいのかなと思っていました
325 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 14:45:00.13 ID:HFPJwFqU.net] >ありがとうございます。参考にします。 すみません、誤字でした
326 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 15:15:53.35 ID:HFPJwFqU.net] すみません、あと一つお聞きしたいんですが デバッガ(デフォルトのMonoDepeloperです)で、 メソッド名やクラス名から、そのメソッドやクラスの定義場所に 飛ぶ事ってできますか? メソッド名にカーソル合わせてファンクションキーで MSのVisualStudioは確か、F5か何かでそういう事が出来ました
327 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 15:30:25.22 ID:eJFMJ6UC.net] 人物のアニメーションをレガシーで制御したいと思い、 適当なFBXファイルをhumanoidからレガシーに設定し直しました しかし何故か右下のアニメーション確認窓で動きが確認できないので、クリップを切り分けることもできずで困っています 人物型のアバターをドラッグ&ドロップなどしても窓に
328 名前:反映されない感じです 今さらレガシーもなんだとは思うんですが、どなたかわかる方いらっしゃいますか? [] [ここ壊れてます]
329 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 16:19:20.74 ID:N3XLjMKC.net] >>320 アセットを買えばいいと思います
330 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 17:03:34.34 ID:6DBZchmd.net] >>305 これ、アクションゲーム作るときに凄く悩まされたんだけど、 毎フレーム更新してるから、レンダリング云々でガクガクになるから カメラ追従の位置をslerp使って中間を取るといいんだよね?
331 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 18:27:13.35 ID:XCqy4kdt.net] >>322 自分はカメラのpositionをターゲットに追従させながらrotationを向けている positionはSmoothDamp、rotationはSlerpを使っているけど Inspectorに何か表示されてるとガクガクなる(特に>>309 の条件で確実に発生する) Inspectorに表示されてることでどういった影響が出てるのかはよくわからない
332 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 18:42:29.10 ID:zFT18/Wd.net] バグっぽいのは公式に報告しましょう
333 名前:名前は開発中のものです。 [2014/07/07(月) 19:24:12.84 ID:xmI8T3g4.net] >>317 >HideInInspectorよりSystem.NonSerializedの属性使う方が >トラブルが少ないと書かれていたのでSystem.NonSerializedがいいのかなと思っていました もちろんどっちが良いということはない。 ただし用途によって使い分ける必要はある。 その機能がなんのために提供さてれいて、どんなときに使うものなのか常に考えていこう。 >>319 ソースを右クリックしたらGo to declaration(宣言に移動)ってのがあるからそれ。自分の環境だとショートカットはF12になってたよ。 ちにみにその下のFind reference(参照を探す)ってのが選択したクラスやらメソッドやらが使われてる場所の一覧出すやつ。
334 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 19:46:31.46 ID:HFPJwFqU.net] >>325 ありがとうございます。 F12でいけました!
335 名前:名前は開発中のものです。 [2014/07/07(月) 20:10:33.03 ID:AkErnja1.net] 衝突判定についてご教示ください。 立方体をマウスクリックした際に、どの面がクリックされたかを取得したいのですが Ray ray = Camera.main.ScreenPointToRay( Input.mousePosition ); if( Physics.Raycast( ray, out hit ){ // 立方体のどの面がrayと交わった?. } hitにオブジェクトのワールド座標等が格納されていることは理解したのですが どの面がクリックされたのか判別の方法がわかりません。 立方体の頂点座標が算出できれば面もわかるのかも知れませんが、知識不足ですみません。 ご存知の方いましたらご教示をお願いいたします。
336 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 20:13:26.02 ID:Ljm9tBgH.net] 失礼、自己解決です。
337 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 20:15:20.63 ID:hxC6zxXd.net] >>320 の質問誰かお願いします FBXファイルがレガシーでのインポートに対応してないのかと思ったらそんなことないし よくわかりません 使ってるファイルは有名なフリーのアニメーションアセットです、たしかunity公式だったかな
338 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 20:43:00.20 ID:62bXAYEJ.net] スクリプトのエラーについて質問です。 先程まで普通に再生できていたのに突然NullReferenceExceptionという エラーが出るようになり再生できなくなってしまいました。 どうしたら元に戻るでしょうか? どなたかご教授宜しくお願いします。
339 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 20:54:38.50 ID:b1e9ZXbN.net] >>330 それがいわゆる有名な「ぬるぽ」というやつです。
340 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 21:46:09.56 ID:9cyM0yix.net] >>327 hit.pointで判定できると思うんだけど何か問題ある?
341 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 22:03:54.63 ID:T/C3A20J.net] >>330 そのエラーメッセージのとおりヌルを参照するとそうなる。 とりあえずそのエラーメッセージをダブルクリックすれば MonoDevelopが起動してスクリプトのどこでエラーが起きてるのか
342 名前:教えてくれる。 今まで何故動いてたのか、とかどうすれば動くようになるのかは みてみないことにはわからん。 >>329 とりあえずFBXで必ず起きるという現象ではない、とは言える。 手元にあるものはLegasyにしても表示されている。 ただ確かに表示されないという現象が起きたことがあるな〜、 という記憶はあるな。 [] [ここ壊れてます]
343 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 22:32:23.90 ID:YdReXL8o.net] 該当のスクリプトをいじってないのに急にNullエラーを吐き出した時はUnityを再起動すると直ったりする 直らない時もあったりするからバックアップは必須
344 名前:名前は開発中のものです。 mailto:sage [2014/07/07(月) 22:54:39.38 ID:WzLbsFo2.net] >>329 他のCGソフトに読み込んでアニメ確認が早い気もするがのー
345 名前:名前は開発中のものです。 [2014/07/07(月) 23:58:14.69 ID:xmI8T3g4.net] ( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ ←>>331 (_フ彡 /
346 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 01:10:11.26 ID:6jeNO0ogg] 大量のスプライトをそれぞれ個別にプレハブ化したいのですが 一括でできる方法はないでしょうか? ■環境 : Unity4.51 f3です。 ■目的 : 2Dゲームのマップチップ用の画像(スプライト)を テキストデータに記述したマップ作成用データを元にして チップごとにInstantiateで作成・配置したいのですが プレハブ化するために複数のスプライトをまとめて hierarchyビューなどにドラッグ&ドロップしてしまうと 「Create New Animation」と表示されてアニメーション 作成になってしまいます。 ご存知の方がおられればアドバイスいただけませんか。 よろしくお願いします。
347 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 09:25:06.86 ID:NX4W3vdm.net] アセットを買えばいいんじゃね
348 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 09:29:06.74 ID:Qd6T63my.net] >>338 ダメに決まってんだろこのアスペが。
349 名前:309 mailto:sage [2014/07/08(火) 09:51:12.27 ID:4qnhUGqB.net] >>332 ありがとうございます。 hit.pointは衝突した座標が取得できると思うのですが そこから立方体の各頂点、面はどうすれば判別できるでしょうか? 見当違いなこと聞いてたらすみません。
350 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 10:02:05.26 ID:ZJvtMt/G.net] >>333-316 返信ありがとうございます。 今度からはちゃんとバックアップ取っておくように気をつけようと思います‥‥ エラーが出てる箇所は if(transform.position.y < fallLimit || transform.position.x < cam.transform.position.x -8){ Application.LoadLevel("menu"); } Destroy(gameObject); } ↑の if(transform.position.y < fallLimit || transform.position.x < cam.transform.position.x -8){ この部分なんですが、どこがおかしいのかよろしければ教えて頂けないでしょうか?
351 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 10:28:29.63 ID:ytRwZWLO.net] >>313 ttp://uwebkit.com これがWindowsで使えるWebViewを提供してる、ただしプラットフォームがWin,Mac,iOSのみ Win側の実装は別プロセスでWebKitブラウザサーバが動いていてそいつにレンダリングさせた画像を取得する方式 俺はコレとGreeのWebViewのAndroidとをラッパーと#ifでAPIそろえてから使ってる。 uWebKit単体はテクスチャレンダリングとかも含んでるのでAndroidを捨てるなら3Dゲームのシーン内で看板にしたりとかもできる
352 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 10:28:45.55 ID:t1kUpUtT.net] >>340 恐らくだが、 コンタクトポイントは物理エンジンが 衝突検知したときに生成してよこしてくる。 ttp://docs.unity
353 名前:3d.com/ScriptReference/Collision-contacts.html The contact points generated by the physics engine. コリダー自体はメッシュコリダーだけではなくスフィアやカプセル、 キューブなんかもあるのでコンタクトポイント生成の仕組みに 頂点や面は常に関係している訳ではない。 ということはメッシュコリダーを使った時に頂点や面の情報を提供するには 特別にその為の機能が実装されていてその情報をストアするデータ構造が 用意されていなければならないはずだがそういうものはない。 てあたりから考えるにコンタクトポイント配列から一番近い面、頂点なりを 割り出す機能を自分で実装するしかない、のではないかな。 [] [ここ壊れてます]
354 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 10:33:31.76 ID:t1kUpUtT.net] >>341 その中身だと多分cam、が割り当てられていないとか 実行時に消滅しちゃってるとかそんな話じゃない?
355 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 11:08:22.80 ID:ZJvtMt/G.net] >>344 ご指摘通りcamが割り当てられていなかったみたいでした‥‥。 助かりました。ありがとうございます!
356 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 12:18:46.50 ID:QX88T4yM.net] >>333 >>335 ありがとございます Raw Mocap Dataってアセットを使ってたんですが、 どうやらここのFBXデータは軒並みレガシー化が出来ないようです 理由はよくわかりませんがメカニム専用に作られてるんでしょうね 他のアセットでは出来ました 使いたいモーションはここのやつだったので残念です
357 名前:309 mailto:sage [2014/07/08(火) 12:42:36.02 ID:4qnhUGqB.net] >>343 ありがとうございます。 そうですよね…… そもそも衝突したオブジェクトが立方体かどうかなんて エンジン側には関係ないわけで、自分で計算するしかありませんよね。 その計算方法がいまいちピンとこないのですが……数学がんばっとけばよかったな。 また質問させていただくかもしれません。 回答くださった方、ありがとうございました。
358 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 12:43:59.96 ID:Qd6T63my.net] >>338 ダメに決まってんだろこのアスペが。
359 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 12:48:54.92 ID:t1kUpUtT.net] >>346 ちょっと開いてみたがこのデータはモデル(メッシュ)が入ってないんだわ。 なのでレガシーにしてプレビューしたいならまずRawMocapDataの 一番上の階層のDefaultAvatarのリグをレガシーに設定した上で Animationsの中のクリップをレガシーにしてプレビューの右下にある 人マークをクリックしてotherを選べばFBXやPrefabの一覧が出てくるので そこでさっきレガシーに設定したDefaultAvatorを選べばプレビューできる。 少なくとも俺のところではできた。
360 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 13:23:17.22 ID:xirEgGux.net] >>349 アセットをかったほうがいいよ
361 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 13:57:39.34 ID:ddu7OeuU.net] RPG、SRPG系ゲームのセーブ・ロード機能を作りたいです。 ググってみるといくつかサイトが見つかったのでバイナリでデータを 保存するという処理を見つけました。 ttps://github.com/KentaYanase/KentaYanase/blob/master/Unity/SaveLoad/SaveLoad.cs これってRPG、SRPG系ゲームのセーブ・ロード機能として使えますか? あと実際ちょっとこの処理を使ってセーブをやってみたのですが、この処理の使い方に 「セーブしたい時はコードから"SaveLoad.Save();"とするだけです」と書いてありました。 なので、SaveLoad.Save();と書いてコールしてみましたが、以下のエラーが出ました。 IOException: Sharing violation on path C:\Users\user\Documents\RPG test\Save\SaveData.dat デバッガで追ってみると上記コードの137行目bf.Serialize(fs, data);でdataの中身がnullでした。 おそらくこれが問題だと思うのですが、dataの格納処理はCrateSaveFileメソッドでのみやっています。 しかし、SaveLoad.Save();と記述してコールするとCrateSaveFileメソッドはコールされないようです。 これではどうやってもdataに値は格納されないと思うのですが、これは上記の元コードが 間違っているのでしょうか?それとも私の解釈が間違っているのでしょうか?
362 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 14:07:46.08 ID:baCtLp31.net] >>348 回転していない原点中心の立方体だったら点がどの面上か判定するのは簡単でしょ 逆に言えば逆行列を掛けてその状態までもっていけばいいんじゃないのかな 力技でいいなら立方体のコリジョンを面ごとに分割してもいけそうな気がする 試してないからうまくいくかは知らん
363 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 16:59:41.35 ID:XshOldtu.net] >>351 見る限りは初回のみCreate、以降はSaveで呼び出すみたい。
364 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 18:29:48.19 ID:ddu7OeuU.net] >>353 確かにその分岐で起動するとエラーメッセージは出なくなりました この処理ってどう見てもsettingsクラスとconfigクラス内のものだけを バイナリファイルにセーブする、っていう意味ですよね? つまり主人公のパラメータだのセーブ時の主人公の位置だの シーン名だの敵の位置だのイベントフラグだの、それら全部を settingsかconfigクラスに列挙してdataの対象にする必要がある、という事ですよね?
365 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 18:43:34.20 ID:t1kUpUtT.net] そりゃそうだ。俺が何をセーブしたいか自動で判別してくれる セーブロードクラスとか怖すぎるだろw まぁゲームコントローラーで作った独自クラスの中身を セーブするように改造してもそれほど面倒ではなさろうだけど
366 名前:309 mailto:sage [2014/07/08(火) 18:45:16.78 ID:4qnhUGqB.net] >>352 私へのレスかな?(違ったらスミマセン) 実はその立方体は絶えず向きを変えながら動きまわってまして。。。 衝突点(RaycastHit.hit)と立方体の原点(RaycastHit.transform.position?)は取れると思うので どうにか導きたい。 考えてみます。ありがとうございます。