- 1 名前:名前は開発中のものです。 [2015/04/19(日) 12:16:54.53 ID:Erl+lZnN.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質問スレッド16 peace.2ch.net/test/read.cgi/gamedev/1425192691/ ■本スレ 【3Dゲームエンジン】Unity総合スレッド26 peace.2ch.net/test/read.cgi/gamedev/1429375487/ ■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 注意事項:アセットおじさんは優しく愛でましょう
- 918 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 16:28:11.17 ID:QuPIwIBV.net]
- いらないね、リアルタイム要素が無くても良いからね。
- 919 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 16:50:13.74 ID:QONkVbLK.net]
- >>877
別にフローって程の話じゃなくて 攻撃するって決定したなら targetUnit.SendMessage("ApplyDamage",attackPower); とか targetUnit.GetComponent<StatusScript>().ApplyDamage(attackPower); とかやってやりゃいいんじゃね、って話。 どのユニットを攻撃するかは決定されてるんだから当たり判定とかする必要ないでしょ。 まぁ実際SRPGとか作るんだったらそんな素朴な仕組みで済むわけねぇ、 って気もするけどねw
- 920 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 17:02:55.50 ID:u8t3nFDP.net]
- >>881
ありがとうございます!
- 921 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 20:47:28.12 ID:akexgdFi.net]
- Unity5に対応したUnity Remoteはない?
- 922 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 20:58:13.74 ID:4PYZyh53.net]
- 対応してるだろ
- 923 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 00:42:28.56 ID:aSLNqENz.net]
- Unity Remote4でいけるのか?
軽く試したら動かなかったし、Unity5に対応してるって表記もなかったから聞いてみた
- 924 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 11:04:20.38 ID:kZkekiRh.net]
- terrainってキューブを押し出したり出来るようにならないですか?
出来たら
- 925 名前:キごく便利そうなのですが… []
- [ここ壊れてます]
- 926 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 11:08:57.77 ID:YIWblpIx.net]
- 基本的に無理。terrainがどういう仕組みのものか理解すればすぐわかることだが
- 927 名前:名前は開発中のものです。 [2015/06/08(月) 12:05:31.41 ID:BQpnpSLF.net]
- UGUIのinput field ってiOSだと虫眼鏡が出ないのですか?
カーソルを移動できなくて困ってます。
- 928 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 12:47:34.79 ID:iuPArvFT.net]
- spriteRendererとmeshRendererの違い・・・というか使い分けが分からない・・・
基本的な使い分け方ってありますか?
- 929 名前:名前は開発中のものです。 [2015/06/08(月) 13:02:08.24 ID:dT5E5UEQ.net]
- ゲームでspriteというと板状の物でmeshというと3Dモデルのような
立体物の頂点の集合体というイメージ
- 930 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 13:18:57.72 ID:waI6fIS8.net]
- これおもしろいの?
https://twitter.com/kohnosuke/status/601940455366889472
- 931 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 13:34:06.08 ID:iuPArvFT.net]
- >>890
あ〜、なるほど! ありがとうございました
- 932 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 13:37:28.96 ID:jmOEGYhf.net]
- あっ信じたww
- 933 名前:名前は開発中のものです。 [2015/06/08(月) 20:12:37.93 ID:gWpCM+TJ.net]
- >>885
いけるよ つーか そもそもそんなの自分でやれば聞くまでもなく終わりじゃね? ここの連中はあんまり役には立たないがw
- 934 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 20:21:49.46 ID:dC1EXGpl.net]
- 試したと言ってるのに自分でやれば〜とか言っちゃうお前もな
- 935 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 20:23:21.67 ID:aSLNqENz.net]
- >>894
ありがとう 一度やってみて失敗したから、つまらないところで自分がミスしてるか、実は対応されてないのか判断つかなくてね 対応してないとも書かれてないが、対応してるっていう情報もなかったから聞いてみた さらっと答えてもらえるの本当に助かります 初めてAndroid5.0.2使ってみたし、どこが原因か掴めなくて困ってた
- 936 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 21:03:10.96 ID:zGnPuvCD.net]
- ・端末を繋ぎなおす
・Unityを立ち上げなおす 何度かやってればUnityRemote4がちゃんと動くよ
- 937 名前:名前は開発中のものです。 [2015/06/08(月) 22:25:05.21 ID:MMeNg1NY.net]
- unity5でMonoDevelop使いながらC#を学んでるんですが
参考書に書いてあるConsole.Write()やConsole.Read()が上手く使えず、 Console.Write()はDebug.Log()で代用出来ましたがConsole.Read()の代わりに なる関数が見つからないので有れば教えてもらえないでしょうか? Input.inputStringやOnGUI()の中でEvent.keyCodeを使うのは扱いが面倒で、 もっとこうサクッと無いもんかと
- 938 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 22:32:38.40 ID:KIneyryI.net]
- Unityでゲームと関係ない勉強をするのはやめた方がいい
Console.Read()がゲームのどんな場面で活躍するか想像してみろ
- 939 名前:名前は開発中のものです。 [2015/06/08(月) 22:38:09.46 ID:xr0aE/Nq.net]
- どうやってもinput fieldのキーボードからdone cancel のボタンが消せない。
これも、assetを買うしかないのか。
- 940 名前:892 [2015/06/08(月) 22:41:52.70 ID:MMeNg1NY.net]
- Console.Read()だと一文字入力なんで使い道あんま無いですね・・
質問が悪かったです、文字列や数値のキーボード入力に便利な関数が無いか探しています
- 941 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 22:49:32.84 ID:f6VUMDUu.net]
- VSのフルバージョンがタダで使える時代になんでわざわざそんなことするんだ
- 942 名前:名前は開発中のものです。 mailto:sage [2015/06/08(月) 22:55:52.26 ID:KIneyryI.net]
- 文字の入力/取得ならUnityに入力ウインドウを作る機能がある
Unityでゲームを作りながら勉強するかUnityを忘れてC#の勉強をするかどちらかにしろ
- 943 名前:892 [2015/06/08(月) 23:02:36.27 ID:MMeNg1NY.net]
- >>902
初心者故にUnityバンドルのMonoを素直に使い続けて慣れちゃったからですかね・・ VSforUnityも今タダですもんね
- 944 名前:名前は開発中のものです。 [2015/06/08(月) 23:07:13.85 ID:xr0aE/Nq.net]
- ディバインゲートも友達の番号検索の所のキーボード入力、done cancel だ
- 945 名前:わ。
もうあきらめたわ。 [] - [ここ壊れてます]
- 946 名前:名前は開発中のものです。 [2015/06/08(月) 23:25:50.04 ID:xr0aE/Nq.net]
- iOSの虫眼鏡出したかったら、asset購入するしないぽいな。つくる技術もないし。
- 947 名前:名前は開発中のものです。 [2015/06/09(火) 12:29:55.57 ID:uKp1plplC]
- 長文での質問失礼します。
Unityのスクリプトについてですが、Update関数で animation.CrossFade("walk"); のような呼び出しをしているサンプルを良く見ますが、これではUpdate関数が呼ばれる度に CrossFade関数が呼ばれてしまいますが、 CrossFade関数はアニメーションが変化しない限り2回目以降の呼び出しは無効かされるという 認識で良いのでしょうか?
- 948 名前:名前は開発中のものです。 [2015/06/09(火) 14:36:05.32 ID:siB026JJ.net]
- うーむ
上手くいかない webglビルドして一応出力できたのだがそれをブラウザで開いてもプログレスバー の画面から一向に変化がない 試しにサーバにアップしてやってみてもやっぱり同じ画面でゲーム本体が 起動しない webglビルドやってる人ちゃんとゲーム起動できてますか?
- 949 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 15:49:29.36 ID:W1r5MKhq.net]
- >>908
firefoxぐらいでしかまともに動かないよ
- 950 名前:名前は開発中のものです。 [2015/06/09(火) 15:53:18.92 ID:siB026JJ.net]
- >>909
その事はググれば出てきたのだが俺がやったらfirefoxでも全くゲームが起動しない どういうことなんだろうか そもそもぐぐってもunityでwebglやってる人はあまり引っかからない ひょっとしてこの分野はまだ時期尚早なんだろうか ビルド設定の所にプレビューとか書いてあるし
- 951 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:02:32.16 ID:jB1qVXwq.net]
- 俺なんかそもそもWebGLでのビルドが出来ない
他は全部出来るんだが
- 952 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:26:23.79 ID:siB026JJ.net]
- >>911
俺もビルドが出来なかった それまでは設定を実行速度ファースト、ビルド速度ロウ でやってたけどそれじゃまったくビルド出来なかったので 実行速度ロウ、ビルド速度ファーストの設定で 試しにやってみたらビルド出来た どうもこのunityのwebgl対応って話題になってたけど まだまだ使い物になるレベルではないようだ
- 953 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:33:05.90 ID:W1r5MKhq.net]
- >>912
自分は特に問題なくビルドできてたんで使ってる機能に依存してるんじゃないかと思うね ただ実用的かって聞かれたらfirefox以外ほぼ全滅(safari,chrome,ie)だったのでなんとも言えない ちなみにビルド環境はMac版(Windows版は64bit版入れないとだめらしいので)
- 954 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:40:19.29 ID:siB026JJ.net]
- >>913
俺もMacなんだけどね 2010年版のMacminiでスペックは低いけども アセットも変わった物は一つも使ってない 爆破エフェクトのを一個入れてるくらいで 何がまずいのかな
- 955 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:52:44.71 ID:jB1qVXwq.net]
- マジか
WinでGLビルドって64bitじゃないとダメなのね じゃあ俺はそれでエラー吐いてるわ
- 956 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:58:38.23 ID:W1r5MKhq.net]
- >>914
自分買ったアセットのテスト(マップね)でやってみただけなのでUIとか特に入れる前だからかも(UGUIじゃなくてレガシーのGUIのまま) どの機能がダメなのかは把握してないです なお、自分のMacもAirのチープ環境だぜ Winを64ビット環境にしたいけど予算がグラボに化けるのでどもならん >>915 マジだぜ、ここの一つ前の過去ログに書いてあって、ぐぬぬってなった。
- 957 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 01:25:57.69 ID:j6flma8y.net]
- 透過PNGをプロジェクトにドラッグしてインポートするとプレビューやアイコンが
真っ黒で表示されるようになったけど何が原因ですかね? 以前はちゃんと真っ黒でなく表示されてたと思うんですが
- 958 名前:名前は開発中のものです。 [2015/06/10(水) 01:44:26.41 ID:hrgXNaoL.net]
- Input field 使わない方が良いな
消せない textで十分足りる
- 959 名前:名前は開発中のものです。 [2015/06/10(水) 04:46:20.64 ID:4gNbWE28A]
- Raycastで物体に当たった時に別のスクリプトにtrueを返したいけどやり方が分からないです。sendmessageでtrueって返せますか?
- 960 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 04:54:14.85 ID:VZG8lS4L.net]
- プロジェクト管理はやっぱgitでやってるの?
- 961 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 05:50:18.04 ID:bAHz+jSD.net]
- そうだよ
- 962 名前:名前は開発中のものです。 [2015/06/10(水) 09:41:24.59 ID:d5dSgTVd.net]
- 過疎りすぎ
unityやるひと少ないのかな
- 963 名前:名前は開発中のものです。 [2015/06/10(水) 09:45:16.03 ID:J+3G96eD.net]
- そもそもUnityのメインコミュニティはここじゃないし
- 964 名前:名前は開発中のものです。 [2015/06/10(水) 10:41:23.11 ID:d5dSgTVd.net]
- そりゃそうだけど、あまり広がってないな。
やっと使い慣れてきたが、割と癖があって色々知ってないと難しいところもあると感じてる。
- 965 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 11:13:11.16 ID:VZG8lS4L.net]
- >>921
gitクライアントってunityと同時にずっと起動してる?
- 966 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 11:17:55.84 ID:bAHz+jSD.net]
- 何故そんなことをする必要があるんだ…俺がしってるGitとは別のものなのか?
一日の作業が終わったらやったことコメントしてコミットするだけだろ…
- 967 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 11:46:05.84 ID:VZG8lS4L.net]
- 1日の作業を2つ以上ブランド切って進めたりしないの?
- 968 名前:名前は開発中のものです。 [2015/06/10(水) 11:46:22.08 ID:VZG8lS4L.net]
- Xブランド
○ブランチ
- 969 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 11:52:33.67 ID:bAHz+jSD.net]
- 処理で迷った時はありえない訳じゃないと思うけどそんな頻繁にやる?
いや別に悪いわけじゃないから必要に応じてやるときはやるでいいとは思うんだけどさw
- 970 名前:名前は開発中のものです。 [2015/06/10(水) 12:06:28.57 ID:d5dSgTVd.net]
- >>925
sourcetreeで検索
- 971 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 12:09:44.04 ID:VZG8lS4L.net]
- >>929
すまん、確かにそうだなw 必要があれば起動してブランチ切って閉じればいいだけか・・・ >>930 昨日それ知って(というか昨日git知って)徹夜で弄ってる
- 972 名前:名前は開発中のものです。 [2015/06/10(水) 16:39:01.40 ID:DPM6+qhr.net]
- Manual Activation したいのですが、
ネット環境切断しても aif 作るためのダイアログが出ません。 メニューなどから作れないでしょうか。 OSX 10.9 Unity 4.6
- 973 名前:名前は開発中のものです。 mailto:sage [2015/06/10(水) 19:47:05.17 ID:PhPlUVXw8]
- 初心者です
c#でSystem.Drawingなどを使いたい場合 ・MonoDevelopで参照にSystem.Drawingを追加 ・スクリプトのはじめにusing System.Drawingと記述 これ以外に何か必要なことがありますか? ちなみにMacです
- 974 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 00:14:39.05 ID:kgj0JjTF.net]
- またダウンロードしたが。
制作しようにもキャラやらなんやらですすんでねー。
- 975 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 00:44:02.12 ID:BquZSw1+.net]
- >>934
ギャルゲならキャラありきかもしらんが ゲームシステムありきで作るならキャラクタなんざAssetStoreから無料のひろってとりあえず作ればよかろうに
- 976 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 08:49:22.12 ID:e1btvZMr.net]
- とは言え自前で用意したいもんだよ。
- 977 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 11:41:48.99 ID:09ITQIR6.net]
- その手の言い訳してる内は一歩も進めないからな
フリー素材使って完成させてから自分で描くなり人に頼むなりすればいい
- 978 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 11:47:44.97 ID:8ZHfQKuA.net]
- 一歩も進めない結果8年かけてプログラミングと絵と音楽と3dができるようになってきたけどまだゲーム作ってない
- 979 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 12:07:17.94 ID:gW5Gw3ZX.net]
- 順序としてはまず素材が作れるようになったほうがいい
プログラマーやデザイナーになると素材作る能力が成長しなくなるので詰む
- 980 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 12:27:53.29 ID:h2BC4VRT.net]
- でもそれって一人でやってる場合だ
- 981 名前:よね・・・
デザイナーとかと組めばいいじゃん [] - [ここ壊れてます]
- 982 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 12:37:58.46 ID:gW5Gw3ZX.net]
- 組めるんだったら組めばいいさね
組めないんなら詰むよって話
- 983 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 13:52:57.61 ID:Kp77RUO4.net]
- >>938
100%ネタだと思うけどそんな長期間やってたらモチベが死ぬだろ
- 984 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 14:03:18.35 ID:MrWQbCni.net]
- 死んでるから8年かかったとも言える
- 985 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 14:15:15.04 ID:8ZHfQKuA.net]
- 素材は作れるに越したことはないがある程度見る目が養われていればよほどの超人でない限り分業したほうが確実に質が良くなるな
特に絵と音楽はプロレベルの人材が無数に転がってるし上手くやれば無料で使えるし自分でやるのは無駄 >>938 もはや趣味だから練習するのにモチベはいらない ゲームを作るモチベという意味なら基本死んでるけど面白いゲームをやるたびにちょっと復活する
- 986 名前:名前は開発中のものです。 [2015/06/11(木) 14:33:51.84 ID:H5D7NBog.net]
- 開発効率を上げるため、フレームワークを作ろうと思ってたらいつの間にか自作スクリプト言語にまで手を出してたでござる。
- 987 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 14:39:47.47 ID:gW5Gw3ZX.net]
- モチベーションには4つあると思う
1、作る行為が楽しい。 2、作った結果で競う競争意識。 3、今まで見たことも聞いたこともないものを作る創造性 4、見返りや報酬を求めて作る。収益性。 4つのモチベが減ったり増えたりするのがゲーム開発というゲーム。異論は認める。がんばれ。
- 988 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 20:39:07.36 ID:Kp77RUO4.net]
- 5、完成したゲームで遊ぶところを妄想する
も追加で
- 989 名前:名前は開発中のものです。 mailto:sage [2015/06/11(木) 21:20:31.86 ID:Bstu9tzk.net]
- Unity5になってからtransform.Translateさせるだけでもカクつくようになったんですがどうすればいいんですか。
- 990 名前:名前は開発中のものです。 [2015/06/12(金) 00:10:30.85 ID:yyAtXoS2.net]
- MonoDevelopが毎回モニターいっぱいに表示されて困っています。タスクバーすら表示されません。
- 991 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 01:09:04.65 ID:mbqz7iSU.net]
- @シーン1でTimeクラスを使ったスクリプトAを走らせる
Aシーン2に遷移するとスクリプトAは使ってないが、deltaTime使った別のスクリプトBを動かそうとすると Bシーン1で動いた時間が加算された状態になっており、スクリプトBの挙動がズレてしまいます。 どのような対策を取ったらよいでしょうか?
- 992 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 01:19:47.02 ID:hWrk7D/h.net]
- こりゃまたかなりのエスパー案件だなぁ…
正直何を言ってるのか全くわからんレベル。
- 993 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 01:25:58.19 ID:Qx6QZuPl.net]
- スクリプトAかスクリプトBが悪いんだと思います
それ以上のことは言えません
- 994 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 01:44:04.12 ID:2yEcBp3P.net]
- シーン読み込みにかかった時間がdeltaTimeに加算されてるってことじゃね
遷移する前にTime.timeScaleを0にしてみるとかどうだろう
- 995 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 01:49:02.37 ID:mbqz7iSU.net]
- 伝わりにくくてすいません
シーン1で演出に10秒使って シーン2に遷移 シーン2で15秒の演出としようとしたところ シーン2の演出が5秒だけになっていた と言った感じになります
- 996 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 02:19:38.24 ID:hWrk7D/h.net]
- 100億ドルの大作ならいざ知らずUnityでロードに10秒かかるから、とは
思えないからその10秒を数えちゃってるってことではあるんだろうが。 ただいずれにせよそれはUnityの問題じゃなくて書いたプログラムのバグだから そのプログラムを見る以外ねぇよ
- 997 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 03:10:47.36 ID:51BuC/sy.net]
- とても初歩的な質問で申し訳ないんですが、アニメーションパラメータがスクリプトで動作しません
関係しそうなところ以外省きますが private Animator animator; void Start(){ animator = GetComponent<Animator>(); } void Update(){ animator.SetBool
- 998 名前:("A",true);
} Aがtrueの時アニメーションを変更するように組んでいるのですが、変更されずうまくいきません どこか間違っていたら、ご教授いただけたら光栄です 或いはAnimator Controllerの設定自体が間違っているのかもしれませんが [] - [ここ壊れてます]
- 999 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 03:20:08.65 ID:hWrk7D/h.net]
- そこに書いてある式に誤りはない。
それだと毎フレームAをtrueにセットし続けるが多分それはわかっているんだろ? まぁAnimator内部の設定が間違えている、もしくはAのつづりを間違えている、とか そんなあたりだろうな。
- 1000 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 07:27:16.81 ID:51BuC/sy.net]
- >>957
ありがとうございます 内部の設定が間違ってるみたいですね Entryというステートが良く分かってなくて...、これは無視していいんですか?
- 1001 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 08:41:04.85 ID:yT7Nup/Q.net]
- >>948
追従するカメラをFixedUpdateで動かすとカクつきが抑えられました パソコンのファンが鳴り響くようになりましたが・・・ rigidBodyはFixedUpdateで動かしたほうがいいと先ほど知りました FixedUpdateで動かしたほうがいい場合と動かさないほうがいい場合を教えていただけませんか Unity4のときはUpdateでもカクつかなかったのは何故なんでしょうね
- 1002 名前:sage [2015/06/12(金) 11:33:05.44 ID:rdo3cS8y.net]
- 主人公キャラが一部の壁にめり込んでしまいます。
特に斜め移動(↑と左右キー同時押し)時に発生しやすいです。 rigidbody.position = new Vector3 ( Mathf.Clamp (rigidbody.position.x, xMin, xMax), Mathf.Clamp (rigidbody.position.y, yMin, yMax), Mathf.Clamp (rigidbody.position.z, zMin, zMax) ); 以上のようにRigidbody.positionで強制的に正しい位置に戻したいのですが ・キーを押して移動している間 → 壁にめり込み続ける ・キーを離す → 正しい位置に戻る という動きをし続けます スクリプトは公式のspace shooterのものをアレンジしたのですが、より良い方法で 壁にめり込まないようにできれば教えて頂けませんか
- 1003 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 11:53:07.30 ID:hWrk7D/h.net]
- >>958
Entryはステートマシンに入ったときに分岐させるためのステート、じゃなかったか? >>959 RigidBodyって何かっていうと 物理エンジンにしたがって自動でTransformを動かすコンポーネント、 な訳だがこれはFixedUpdate()の周期で動作する。 だから物理エンジンがらみのものはFixedUpdate()に書く。 カクつかなかった理由はわからん。カクツキが生じる理由は 複数考えられるので処理を全部見なければ特定しようがない。 >>960 そもそもMinMaxの設定値がキャラの大きさとか考慮しきれてないのではないか あとUpdate()はFixedUpdate()と違った周期で実行されていて壁へのめりこみを 自動で押し返す機能を持ったRigidBodyはFixedUpdate()の周期で実行されているので FixedUpdate()でRigidBodyが押し返す→Update()で壁にめり込ませている ということに恐らくなってる。 正確にはRigidBodyの処理はFixedUpdate()の直後に実行されているはず docs.unity3d.com/Manual/ExecutionOrder.html
- 1004 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 12:19:08.13 ID:ESSmrvBP.net]
- 今日はUnityにも通じているA級エスパーさんが頑張ってくれているとはいえ
質問は他人にも内容が理解できた方が好ましいから質問者は気をつけるようにな
- 1005 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 13:36:16.27 ID:p4RcDMh7.net]
- >>954ですが
状態マシンを使って、タイトルシーンで public class Title : State{ float timer; float wait = 2.0f; public StateManager manager; pubic Title(StateManager SM){ manager = SM; } public void StateUpdate{ timer += Time.deltaTime: if(timer >= wait){ TitleActio
- 1006 名前:n();
} if(Input.anykey){ Application.Loadlevel(”Play”); Time.timeScale = 1; manager.Switch(new Play(manager) ) } } と言った感じでするとプレイシーンで public class Play : State{ publc Transform moviePoint; publc Transform startPoint; public float speed = 1.0f; public StateManager manager; pubic Play(StateManager SM){ manager = SM; } void StateUpdate(){ transform.position = Vector3.Lerp(moviePoint.position, startPoint.position, Time.deltaTime * speed) }}と言った物ですが、Lerpが途中の位置から始まってしまう挙動となってます [] - [ここ壊れてます]
- 1007 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 13:45:43.88 ID:6d9MVPBA.net]
- お前のオツムが弱くて理解出来なかったからって
悔しがんなよ
- 1008 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 13:46:13.08 ID:/NdS7CrW.net]
- >>959
Updateは負荷によって間引かれる(フレーム落ち)が、FixedUpdateは基本的に間引かれない ファンが回り始めたということはFixedUpdateに相当重い処理を入れたんだろう フレーム落ちしてもdeltaTimeで補完できる部分はUpdateに分割したほうがいいよ
- 1009 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 14:37:36.40 ID:Qx6QZuPl.net]
- >>963
>transform.position = Vector3.Lerp(moviePoint.position, startPoint.position, Time.deltaTime * speed) Lerpの使い方が悪い。第三引数で与える値は補間係数なので時間経過で0から1に変化させるようにする ついで言うと第一引数が開始位置で第二の方が目的位置だから逆になってるよ
- 1010 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 14:51:25.35 ID:hWrk7D/h.net]
- >>963
15秒かけたいならこうだろう。最初の方は多分関係ない。 public class Play : State{ publc Transform moviePoint; publc Transform startPoint; public float speed = 15.0f; float timePass=0f; public StateManager manager; pubic Play(StateManager SM){ manager = SM; } void StateUpdate(){ timePass+=Time.deltaTime; transform.position = Vector3.Lerp(moviePoint.position, startPoint.position, timePass/speed); }
- 1011 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 17:24:51.57 ID:yT7Nup/Q.net]
- >>965
キャラを追いかけるカメラはこんな感じの処理です。 もしかしてSlerpってすごい重いのですか? キャラはまっすぐ進ませてるはずなのに横にガクガク動いて見えるんですよねぇ public float distance = 5.0f;//被写体との距離 public float height = 3.0f;//被写体との高さ void freeCamera(){ //start freeCamera // Transform target = GameObject.FindWithTag("Player").transform;//被写体 // float distance = 5.0f;//被写体との距離 // float height = 3.0f;//被写体との高さ // float heightDamping = 2.0f;//大きくするとカメラがはやくついてくる // float rotationDamping = 3.0f;//大きくするとカメラがはやくついてくる float smoothTime = 5f; if (!target)return;//ターゲットがいないときはなにもしない Vector3 basePosition = target.position; basePosition -=target.forward*distance; basePosition +=target.up*height; // transform.position = Vector3.Slerp(transform.position,basePosition,smoothTime * Time.deltaTime); transform.position = Vector3.Lerp(transform.position,basePosition,smoothTime*Time.deltaTime); // transform.position = Vector3.Lerp(transform.position,basePosition,smoothTime*Time.deltaTime); //Vector3 targetVelocity = target.GetComponent<Rigidbody> ().velocity; //Vector3 targetVelocity = target.transform.forward; Quaternion wantedRotation = Quaternion.LookRotation(target.position-transform.position); // transform.rotation = Quaternion.Slerp(transform.rotation,wantedRotation,smoothTime*Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation,wantedRotation,smoothTime*Time.deltaTime); //end freeCamera }
- 1012 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 17:32:20.74 ID:hWrk7D/h.net]
- >>968
そういうカメラはLateUpdate()でやるべき、というのがUnityでの作法
- 1013 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:01:24.03 ID:ESSmrvBP.net]
- >>968
> ,smoothTime*Time.deltaTime); これの意図がイマイチ判らん 5.0f/Time.deltaTime になるわけだけどdeltaTimeは前フレームからの経過時間だから 補間の係数Tに使えるものじゃなくね fixedupdateで安定したのは試してないけど定期的に呼ばれるからdeltaTimeのブレがなくて 変な数値で固定できていたからでは? そもそもどういう挙動を意図してるかどうかわからんけど、それをアルゴリズム化できていないという コーディング能力の問題じゃないですかねこれ
- 1014 名前:名前は開発中のものです。 [2015/06/12(金) 18:15:26.45 ID:yT7Nup/Q.net]
- >>970
キャラクター側 private Rigidbody rigid; private int sppedForce = 10; public float maxSpeed = 20; private GameObject player; // Use this for initialization void Start ()
- 1015 名前:{
//start Start rigid = GetComponent<Rigidbody>(); player = GameObject.FindWithTag ("Player"); //end Start } void FixedUpdate() { //start FixedUpdate if(rigid.velocity.magnitude<maxSpeed && !Input.GetKey("space") )rigid.AddForce(transform.forward*sppedForce); //end FixedUpdate } void Update () { //start Update float smoothTime = 5f; Vector3 wantedVector; wantedVector = player.transform.position-transform.position;/*操作できるやつ= new Vector3(Input.GetAxis ("Horizontal"),0,1);*/ Quaternion wantedRotation = Quaternion.LookRotation(wantedVector); //transform.rotation = Quaternion.Slerp(transform.rotation,wantedRotation,smoothTime * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation,wantedRotation,smoothTime * Time.deltaTime); //end Update } 公式のsmoothCameraを参考にしていましたがおかしかったのですか。 全オブジェクトのUpdateのあとにLateUpdateが呼び出されるのでfreeCameraをLateで呼び出せばいいんですよね。 [] - [ここ壊れてます]
- 1016 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:16:28.69 ID:yT7Nup/Q.net]
- ageちゃったよ・・・ごめんなさい
- 1017 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:45:53.98 ID:ESSmrvBP.net]
- >>971
おかしいかどうかは知らんが補間の係数Tが1以上の場合は終点側の値になり、結果的に補間が無意味。 想定している動きがわからない以上正しいかどうかの判断はこっちにできない カメラのがたつきが追尾したいgameobjectとカメラの実行順が問題だった場合はLateupdateで解決する
- 1018 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 19:06:29.22 ID:keOW9Bgo.net]
- いや、この補完の仕方は別におかしいって程のことじゃないよ。
FPSが高くなればなるほど補完にかかる時間が伸びるという意味で 安定しないのは確かなんだけどお手軽なやり方ではある。 公式のサンプルでも多用されてるし実際30FPS切るようじゃゲーム的に問題あるしね
|

|