- 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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
- 212 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 00:52:10.48 ID:VBk62LKo.net]
- >>198
チュートリアルみたら分かるけど、3dには無い要素も結構含まれてるからなぁ 唐突に2dを作れるようにはならないね
- 213 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 01:01:00.52 ID:q9drZTxa.net]
- >>202
パーツをバラバラにして動かす奴のほうがメインじゃね?公式チュートリアルがそのタイプだし
- 214 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 01:56:45.63 ID:MtaEHS9A.net]
- cubeオブジェクトを長方形にしてlocalscaleのX軸を1F単位で
増減させる事で格ゲーのライフバーのような、内部数値によって 伸縮するゲージを作ったんですが、起点が中心にあるせいで 伸縮させると片側が伸び縮みするのではなく、左右両側から 中心に向かって伸縮していまいます。 これを解決する方法はありますか?(起点をオブジェクト左端に置くとか)
- 215 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 02:16:17.53 ID:wR5yBZ5m.net]
- >>209
座標の中心がどちらかの端面にある立方体モデルを作るといい
- 216 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 02:35:35.75 ID:MtaEHS9A.net]
- >>210
それをしたいのですが、それってHierarchy→Create→Cubeなどではなく 完全自作っていう事ですよね?
- 217 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 02:43:37.29 ID:wR5yBZ5m.net]
- >>211
うむ、Unityの標準プリミティブって融通が効かないから(球とかポリゴン数やばい) なんらかのモデリングソフトでそれぐらいは作れるようになっとくといいかと スクリプトでモデルを出力する手もあるけど
- 218 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 03:47:34.42 ID:MtaEHS9A.net]
- >>212
なるほど・・・ ありがとうございました
- 219 名前:名前は開発中のものです。 [2014/07/04(金) 07:22:33.68 ID:hc2kb0Fa.net]
- NGUIのUILabelで縦書きをしたいのですが
何か方法はありますか? 調べても出てこなくて。
- 220 名前:名前は開発中のものです。 [2014/07/04(金) 07:29:08.51 ID:WsivLMs6.net]
- >>214
アセットを購入するという方法がありますよ。
- 221 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 07:51:51.54 ID:cjLco/W6.net]
- lookatがiPhone実機だと適用されないのですが
pro版のみの仕様だったりしますか? 4.5.1を使っています
- 222 名前:名前は開発中のものです。 [2014/07/04(金) 08:05:46.38 ID:hc2kb0Fa.net]
- >>214
ありがとうございます! 縦書きする為に有名なアセットがあれば お勧めしてください。
- 223 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 12:14:25.34 ID:NPAj8i2R.net]
- >>217
アセットストアで検索したらいいと思うよ
- 224 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 12:20:27.58 ID:58i9wtLO.net]
- >>217
アセットでは解決しないよ
- 225 名前:名前は開発中のものです。 [2014/07/04(金) 12:43:12.82 ID:X8NyIDls.net]
- >>213ちょっとしたモデリングができた方が良いのは確かだけれど、
1.空のゲームオブジェクトを作る 2.↑の子としてキューブを作る 4.キューブのローカルX座標をキューブのスケールXの半分にする(大きさが1,1,1なら、座標を0.5,0,0にする) 5.ゲームオブジェクトのスケールXをいじる っていう方法でもできるよ 回転や拡大の中心点変えたい時は空のゲームオブジェクトを親にするのが楽ちん >>205そうだねごめん。今度はちゃんと客席から眺めるだけにするよ
- 226 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 12:45:49.24 ID:WsivLMs6.net]
- >>219
アセットを「購入」しなければ解決はしませんよ?
- 227 名前:名前は開発中のものです。 [2014/07/04(金) 12:51:21.07 ID:X8NyIDls.net]
- >>216
ルックアットはモバイル端末でもフリー版でも使えるはず。 予想できるのは… ルックアットを呼ぶ前の処理でエラーが起きてて向きを変える処理まで辿り着いていないとか… (実機でエラーが起きてもアプリは停止しない) それならApplication.RegisterLogCallbackとか使って例外を画面に表示すると捗るよ。 タッチの判定をInput.GetMouseButtonとかInput.mousePositionみたいなマウス系の命令でやってるとか… (マウス系の命令でモバイル端末のタッチは取得できない) それならInput.touchCountとかInput.GetTouchのタッチ系の命令を使うと良い。 ただタッチ系の命令はエディタで反応しないから、エディタ用のマウス命令と実機用のタッチ命令両方書いとく必要があるよ 知ってたらごめんね
- 228 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 12:55:51.90 ID:WsivLMs6.net]
- >>222
アセットを買うことで謝らなくて済むようになりますが どうでしょう?
- 229 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 13:38:39.76 ID:MtaEHS9A.net]
- >>220
出来ました! これで単純なゲージ類はすぐ作れそうです ありがとうございました
- 230 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 18:58:10.31 ID:9Bc+cY7U.net]
- ラグドールを設定してみて、パーツの対応関係を間違えたのでやり直したいんですが
どうやって再設定すればいいんでしょうか 各パーツのキャラクタージョイントを一つずつ選択していって削除するしかないですか?
- 231 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 19:35:39.47 ID:NPAj8i2R.net]
- >>225
アセットを買えばいいと思いますけど
- 232 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 20:11:20.22 ID:58i9wtLO.net]
- アセットでは解決しないよ
- 233 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 21:33:21.35 ID:wR5yBZ5m.net]
- >>220
それは盲点だったわ・・・スクリプトや外部ツール使わなくても工夫次第で意外となんでもできるもんなんだな
- 234 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 21:38:35.28 ID:WsivLMs6.net]
- >>228
アセットを購入すればもう少し賢くなれるでしょうね
- 235 名前:名前は開発中のものです。 mailto:sage [2014/07/04(金) 22:51:43.24 ID:8iwJAlvh.net]
- >>222
アセットを買え、って言う人は、スレに粘着している基地害なので、気にしちゃいけない
- 236 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 00:35:34.45 ID:fwhKGKE3.net]
- >>230
アセットを買うのは間違いなんですか?
- 237 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 00:36:14.68 ID:ZH3A8ic4.net]
- アセットはアシェットというほうがかっこいい!!
- 238 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 07:00:17.73 ID:adPva+FU.net]
- >>222
処理をすっきりさせたらLookatが効きました。 ありがとうございます
- 239 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 08:30:15.26 ID:Tl1GrWSu.net]
- アセットでは不可能だ
- 240 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 09:28:48.81 ID:P/6a1HI3S]
- Unityで実装されたブラウザアプリの実行時速度を外部からコントロールできるような
手法やツールはあるのでしょうか。
- 241 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 11:31:47.10 ID:4hned8nP.net]
- xx
- 242 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 14:40:33.98 ID:uavTcDyB.net]
- public int hp { get; set; }
これを public int hp { get { return this.hp; } set { this.hp = value; } } って書き換えると下記のエラーがでる。なんでさ。。。 StackOverflowException: The requested operation caused a stack overflow. PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13) PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13) PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13) PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13) PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13) PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)
- 243 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 15:10:24.46 ID:yKo8Fb0P.net]
- >>237
getter, setterの名前とインスタンス変数に付けた名前が一緒だから this.hpを左辺値で解釈するとsetterが、右辺値でthis.hpとしてもgetterが呼ばれる。 222のsetterとgetterは永遠に自分を呼び出す
- 244 名前:222 mailto:sage [2014/07/05(土) 15:20:48.23 ID:uavTcDyB.net]
- >>238
あ〜、なるほどー。 理解しました!ありがとうございました。
- 245 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 18:51:37.42 ID:DdQVwyxA.net]
- そういやダークおじさんってこのスレだったけ?
グラボのスレ見てたら出没してて戦慄を覚えたw
- 246 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 19:01:05.79 ID:yKo8Fb0P.net]
- >>240
またそういう「いあ、いあ、くとぅるふ」みたいなこと言うと来るかもしれないぢゃないか!!
- 247 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 19:53:00.68 ID:LqlDa1fK.net]
- >>241
Assetを購入することで 来るのを阻止できると思いますよ。
- 248 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 19:58:22.49 ID:oSqj5Eii.net]
- 一匹いるだけで十分うざいのに昔もう一匹いたの?それとも同一人物?
- 249 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 20:30:09.68 ID:fwhKGKE3.net]
- >>243が一匹目
- 250 名前:名前は開発中のものです。 [2014/07/05(土) 20:48:21.60 ID:SilqY6PO.net]
- すみません、一昨日透明な方法について質問した>>186です。
今起きた現象の意味が分からなかったのでまた質問させて頂きます。 スタンダードパッケージのFX water(Pro Only)シェーダー(頂点/フラグシェーダー)の最初のサブシェーダーの中に Blend SrcAlpha OneMinusSrcAlpha と透明になってもらうためにブレンディングを付け足して透明度を自由に変えることができるようになったのですが その水の中(カメラから見て水より向こう側)に置いたオブジェクトがまったく見えません… シェーダーのいらない部分を確かめながら消していき カリングやデプス、ブレンディングをいくつか追加したり消したり と試行錯誤してみたのですが結局うまくいきませんでした。 しかしその後アルファ値を少しいじって 適当にオブジェクトを水に出し入れしたら さきほどやりたいことどおりに水の中で映ってくれました… 驚いてその時のコードをもう一度見返しましたが結局自分が最初に付け足した Blend SrcAlpha OneMinusSrcAlpha とオールドカードの部分を消していた ぐらいしかやってることはありませんでした。 一応チャンスと思い保存しといたのですが、Unityを再起動すると 元の向こう側のオブジェが見えない状態になっていました。 ブレンディングを変えればいいのか カリングやデプスなどが必要なのか 一時的にGPUの質が落ちてIF文で別の方向に行ったのか それともUnity Pro限定とかのせいなのか 一体なにが原因だったのか意味が分かりません。 どなたか原因はわからなくてもいいので水の向こう側をちゃんと映す方法を教えてもらえないでしょうか…? 無知な長文本当に申し訳ない。
- 251 名前:名前は開発中のものです。 [2014/07/05(土) 21:07:22.01 ID:BMnfLCcxE]
- 質問です。Unity初心者です。
NGUIでiOS/Android向けのアプリを作ろうと勉強中です。
複数のスプライトを利用してパラパラ漫画のようなアニメーションを作りたいのですが、 やり方として下のように大きく2つに分かれるかなと思ってます。
1. 標準のAnimation(Animator?)を使う 2. NGUIのAtlas内のSpriteを入れ替えまくる
こちら、どちらの方がパフォーマンスに優れていますかね? スマートフォンなので、あまり負担のかからない処理にしたいのです。 1. の方かなと個人的に思ってますが・・・。
ちなみに、アニメーションは自由に止めたり再生したいです。 お詳しいかたいらっしゃいましたら、ぜひご教授いただきたいです。
- 252 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 21:02:02.66 ID:LqlDa1fK.net]
- >>245
Assetを購入しなければ 一生オツムが弱いまま終わってしまいますよ。 本当にそれでいいのですか?
- 253 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 21:11:58.63 ID:5RDMk77l.net]
- >>245
シェーダを下記のように変更したらどうでしょうか SubShader { Tags { "RenderType"="Transparent" "Queue"="Transparent+1"} Blend SrcAlpha OneMinusSrcAlpha ZWrite Off 〜略〜 }
- 254 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 21:24:05.24 ID:yKo8Fb0P.net]
- >>245
水とか透明表現の関係は描画順序とかにも依存するので一概にコレが原因って言うのは非常に難しいよ
- 255 名前:名前は開発中のものです。 mailto:sage [2014/07/05(土) 21:48:11.50 ID:6/5YeGIR.net]
- >>245
反対側からみてみ? 描画順の問題だったら見え方が違うかもしれないよ モニターの裏から見ろって事じゃなくて、おぶじぇくとのむこうからみるってことだからな
- 256 名前:名前は開発中のものです。 [2014/07/05(土) 21:53:25.70 ID:SilqY6PO.net]
- >>248,233,234さん
非常に助かりました! 透明にする時はTagでの描画順序的なものを考慮するべきだったんですね。 これでやっとモーション作りに移れそうです。 迅速な返答、ありがとうございます。
- 257 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 00:00:05.93 ID:N5QQMiFF.net]
- >>251
最近のunityスレは殺伐としてるのでとっても心あたたまったよ 頑張れ
- 258 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 01:27:30.34 ID:+x1vY1xa.net]
- >>232
幼女っぽい
- 259 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 02:18:14.83 ID:1ai0I56Z.net]
- Shuriken(ParticleSystem)のrotationの回転軸は変えられないのでしょうか
波動エフェクトを様々な角度にして生成したいのですが
- 260 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 02:45:22.90 ID:jnVGzpVR.net]
- >>254
アセットを買えばいいと思うよ
- 261 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 06:22:10.29 ID:hlWRxZH9e]
- Unity2Dで
モンスターを次々と左右から出して中心に向かって歩かせたいのですが、 scaleをx=-1にして反転画像を使うとドローコールがどんどん増えます。 始めから反転画像を用意する以外にドローコールを増やさない方法はありますか?
- 262 名前:名前は開発中のものです。 [2014/07/06(日) 09:57:14.52 ID:b+O76MgTq]
- ちょっと疑問に思ったんだけど
質問スレのアドレスってググると2つあって レスは同じものがあるのだけれど、 微妙にレスの番号とか、レスのあるなしがあるけどなんで? toro.2ch.sc/test/read.cgi/gamedev/1403791323/980 peace.2ch.net/test/read.cgi/gamedev/1403791323/
- 263 名前:名前は開発中のものです。 [2014/07/06(日) 08:34:29.99 ID:+M1clTAW.net]
- javascriptでゲーム制作を勉強中です。
"!"の使い方について教えてください。 ちょっと詳細を省きますが、 下記のような式がありまして(色々省いています) var open_switch : boolean ; var temp_open_switch : boolean ; if (temp_open_switch != open_switch) →これは比較演算式で左右の値が等しくない場合は”ture”ですよね if (!open_switch) →このように、先頭に来る場合はどのような意味になるのでしょうか? ググったけれ見つけられず、 申し訳ございませんが、宜しくお願いいたします。
- 264 名前:名前は開発中のものです。 mailto:sage [2014/07/06(日) 08:41:02.52 ID:1ai0I56Z.net]
- >>258
if (!open_switch) は if (open_switch==false) と同義
- 265 名前:名前は開発中のものです。 [2014/07/06(日) 08:50:31.77 ID:+M1clTAW.net]
- >>259
なるほど、ありがとうございます! そうすると下記のような場合だと var open_switch:GameObject; if(!open_switch) → ”open_switch”が"GameObject"とイコールではないとなるのでしょうか… すみません、宜しくお願いします。
- 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"だと再生されるのですが。。。 ひとまず、 色々アドバイスいただき、ありがとうございました!!!
|

|