【ゲームエンジン】Unity初心者質問スレBuild2

■ このスレッドは過去ログ倉庫に格納されています
1ageteoff
垢版 |
2019/05/08(水) 14:35:37.58ID:VDHuk8YT
ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
2019/12/23(月) 11:59:46.20ID:1LXdjT/9
>>793
当然、うまくいかない
AutoGenerate を Off にしてみて
GenerateLighting なんて
ここに質問する前に試してる
2019/12/23(月) 12:22:30.97ID:pYCu230k
>>796
遷移後のシーンでも設定したか?
ライティング設定はシーン毎に存在するんだぞ
2019/12/23(月) 12:49:48.11ID:FxAWIlzu
諸事情でoculusのコントローラー&ヘッドセットを用いた市販のゲームをプレイ中に、同じヘッドセットにunityプロジェクト内のカメラ映像(上記市販ゲームとは別)を表示させたいのですが、どちらかのウィンドウをアクティブにすると映像も切り替わってしまい困っています
何か良い方法はないでしょうか?
unity内のカメラは位置を固定する予定なのでoculusヘッドセットのトラッキング情報は使用しない予定です
799名前は開発中のものです。
垢版 |
2019/12/23(月) 13:03:19.97ID:1LXdjT/9
>>797
当然、全シーン設定した
でもだめだった
2019/12/23(月) 13:27:55.19ID:pYCu230k
>>799
exeにビルドした後はどうなんだ?
2019/12/23(月) 13:30:10.95ID:ogLWGvuy
最初の質問がシーンの遷移についてで、そして影がどうたらこうたらで・・・
で、周りがエスパーして一生懸命考えると、それは当然やった!キリッ
だから最初からやった事全て言えばいいんだけど、そんなのは無理なのね

こういうのはまず原因を特定しないといけない、シーンの遷移なのか、ライティングなのか、
じゃそのシーンだけなら問題なく動くのか?
ホントにシーン遷移がちゃんとTrueになっているのか?
ライティングがいくつあるのか?DirectionalなのかSpotなのか?

そいう事が全然分からない状況で適切な答えを探す場合、最低限のオブジェクトで再現できるプロジェクトにしてみるしかない

問題切り分けと特定をするためにも一番は本プロジェクトがいいけど
事情があってあげられないなら再現する物を作る
オブジェクトもキューブだけにしてみるとかね

じゃないと何言っても、あ、それ試したで終わるだけ
試してどうなったのかすら書いてない
試した前と後で何か変化はあったのかきっと分からないのだと思う

せめて前後のSSとかあってもいいけどね、それすら上げないのではどうしようもない
2019/12/23(月) 13:32:15.21ID:ZyHOHxaK
>>798
>1にも書いてるけどここは初心者向けであって以前にもVR関連の質問あったけど、ここでは煽りさえつかないから
他のUnityスレかVR関係を新設して質問した方がいいと思いますよ
2019/12/23(月) 14:11:43.33ID:AcrLtPEc
とりあえず原因がライトでないことだけは分かる
こんなところで訊いてる奴が原因特定できるわけがない
804名前は開発中のものです。
垢版 |
2019/12/23(月) 14:15:28.43ID:ysH3ymve
言うことコロコロ変わるから僕はもうこの子を諦めました
現場からは以上です
2019/12/23(月) 14:18:26.20ID:WEUQ8qvt
Unityゲーム制作初心者の知り合いが
今時HDサイズのスマホゲー作ろうとしているから
フルHDにしろって注意してやったわ

フルHD当たり前でもうすぐ4Kの時代なのに何考えてるんだろ…

キャラとかソコソコ動くとか言ってたがそれでもHDは無いと思うw
2019/12/23(月) 14:19:12.37ID:kzv3mU/b
私なんかだいぶ前からやべぇ奴だってわかってたのでスルーしてましたねw
まぁほとんどの人もわかってたみたいだけど
2019/12/23(月) 15:22:12.61ID:N5vbaV+F
使い始めたばかりの初心者です。
ローポリUnityちゃんをVuforiaでマーカーの上に出して遊んぼうと思いましたが、iPhone7の実機では髪の毛が背中の方に水平になびいています。
なぜでしょうか?
ついでにHead controlで顔がカメラの方を向くようにしたら、首を曲げたときに髪の毛が前の方にねじれてきました。
Unity 2018のLTS版です。
2019/12/23(月) 15:41:48.88ID:6XB9KHyH
>>798
オキュラ使ったことないから不確かだけど、カメラのビューポート設定を、xy0.5とかしてみて表示されるか?みてみて。
2019/12/23(月) 15:44:24.22ID:6XB9KHyH
>>807
unityたゃんのデータ、サンプルプログラム古くない?
古い頃のデータを最新に入れたら角度が90度が曲がってる不具合を見たことあるので。(データは5の頃、当時の最新が2018)
2019/12/23(月) 17:16:05.18ID:N5vbaV+F
>>809
ありがとうございます。
モデルを新そうなoptimized SDとかいうのに入れ替えましたが、やはり挙動がおかしかったです。
ビルドしながら調べていて気がついたのですが、Rigidbodyが付いていないと重力が働かないという理解でもいいでしょうか?
もしかしたからそこが原因かもと思いました。
2019/12/23(月) 18:58:50.09ID:N5vbaV+F
>>810
自己レスになります。
Rigidbodyを付けたらモデルが見えなくなりました。
無限遠の彼方に落ちていったようです。
PositionのY方向を固定したら表示されました。
首の傾げ方がおかしいのはHead Controlのミスかな…
まさか重力で俯いているとかないよね…

駄文失礼しました。
812弟子
垢版 |
2019/12/23(月) 22:32:52.10ID:ZyHOHxaK
まずvuforiaの問題かunity ちゃんの問題かだよね
公式のvuforia のサンプルアセットは正常に動いてるのかな?
2019/12/24(火) 10:42:56.56ID:ynZGnrJ7
>>802
>>808
回答ありがとうございます
ビューポート設定いじってみたのですがダメでした…
よく考えてみるとunityというよりハードウェア側の問題のような気もするので無理そうですね、諦めます…
2019/12/24(火) 15:49:38.03ID:yizThn3q
>>813
アセットを買ってみては?
2019/12/24(火) 16:23:39.89ID:r43F73Of
>>813
たぶんできると思うけど、まだそのレベルじゃないと保留にして先へ進むのも一つ。がんばれ。
816名前は開発中のものです。
垢版 |
2019/12/24(火) 17:55:24.10ID:HXl23O7t
Unityの最新バージョンがリリースされるたびに
いつもそれをインストールして置き換えていますか?
けっこう頻繁に更新されるのでめんどくさくて。
2019/12/24(火) 18:24:58.01ID:/v00/EN1
>>814
おすすめアセットの紹介くらいしないと、初心者にはわからないと思いますよ。
本当にいいアセットを紹介してくれるなら、買います。
2019/12/24(火) 18:26:56.25ID:/v00/EN1
>>816
むしろ長期サポを使ってます。
参考書と違う画面になるとついていけなくなるので。
819816
垢版 |
2019/12/24(火) 18:32:08.52ID:HXl23O7t
>>818
助言くださってどうもありがとう。

バージョンのせいなのか、エラーが出てしまった。
スポットライトを追加したら
Realtime indirect bounce shadowing is not supported for Spot and Point lights.
だって。
2019/12/24(火) 19:39:27.60ID:Ro81EzRQ
>>812
公式のサンプルアセットってなんだろうというレベルなのですが、Vuforiaは問題ないみたいです。
Head controlは一旦諦めて、SD Unityちゃんに付属していたサンプルのモーションを付けたらマーカーの上でポーズをつけてくれました。
次はSDサイズのままCandy Rock Starでも踊らせてみようかな。
2019/12/24(火) 23:11:34.86ID:nLh3sUCv
>>816
しない
バージョン移行すると基本的にエラーが出ると思った方がいい
実際の開発ではプロジェクト開始時点での安定版を使用してリリースまでそのバージョンを使い続ける
ソシャゲとかでアプデ必要な場合はプロジェクト移行を別環境で行うってバグを潰す予定と人員が組まれるレベル
2019/12/25(水) 02:36:15.94ID:qoag/aFK
>>816
マイナーバージョンアップは都度最新にしてる
Unity Hub使ってないの?ぜんぜん面倒くさくないよ
823名前は開発中のものです。
垢版 |
2019/12/25(水) 07:50:46.33ID:oSD3s+gd
unity初心者です
ざっくりとした質問ですが失礼します
今unityとvision pose というシステムを連携して欲しいという依頼をされているのですが
連携の仕方等わかる方いらっしゃいますか?
もしくは説明しているサイト等教えて頂ければ幸いです…。
2019/12/25(水) 08:48:50.25ID:sudzgq0A
初心者板の話じゃないなw
iO調べて作るのがきみの仕事だろw
ここで聞くよりposeの会社のTECと直接話した方がいいよ。
2019/12/25(水) 09:01:54.59ID:UVDcFNfJ
>>821
うちは開始時点から中期までは極力最新版使ってるな
場合によってはβ版に手を出すこともある

運営中に古いバージョンからアップデートする場合、いろんなアセットが対応しなくなってたりして地獄だからな
826弟子
垢版 |
2019/12/25(水) 11:01:24.75ID:19YWrwdS
>>823
確かにここ初心者スレなんであなたがunity初心者としてもその話題はどうなのっていうね
公式みたら
>※Unityは今後ご提供予定
って書いてあったから待てばいいんじゃね


まさかそれやってるの?
なら依頼先間違えてるとしか
2019/12/25(水) 12:42:35.80ID:LFCmpZs7
>>816
インスコはハブ使っていろんなバージョン入れてる。
プロジェクトはバージョン上げて使いたい機能があるならあげるのにトライしてもいいけど結構破壊的変更も最近多いからがんがれ
まあフォルダごとコピーしてやれば失敗したところで痛くも痒くもないだろうし手間かかるだけだけど。
2019/12/27(金) 11:25:51.72ID:CBqToL3L
背景用に木を作ってるのですが以下の問題にあたり詰まってしまいした
初めにcreateでquadを出して木の画像を貼り付けました
次にterrain の place treeにてedit treeから上のquadを追加してterrianにブラシで設置するまではうまくいきました
しかし出来た木は半分が地面に埋まっていてしまっています これはどう直したらいいのでしょうか?
下の画像 左がプレハブ 右がブラシで設置したものです
https://dotup.org/uploda/dotup.org2025843.png
2019/12/27(金) 13:07:40.61ID:pIdvb840
>>828
なぜクワッドなのかあまり知らなくてすまない。
クワッドではなく、ブラシの設定時に直接木の画像指定してみて。
それでできる気がする。うちはそうしてる。
2019/12/27(金) 15:05:49.38ID:CBqToL3L
3dオブジェクトに画像貼り付けるやり方じゃないと指定自体が無理でしたちょうど良かったのがquadだったので使ったのです
画像だと指定できないのは私の環境のせいだと思います
2019/12/27(金) 15:11:21.81ID:pIdvb840
無茶するなぁ、と思ったけどよく知らんからどうでしょう。
とりあえず起きてる事は、地面接地位置がクアッドの中心という気がしますので、その座標をコントロールしてやる必要があるかなぁと思います。
2019/12/27(金) 15:13:01.00ID:pIdvb840
クアッドの中心に木の根元が来るような画像にしたり、クアッドのセンターをずらしたり。
この辺初心者ですまぬ。
知ってる人が現れるのをお待ちくだされ…
2019/12/27(金) 15:36:00.79ID:CBqToL3L
いや申し訳ないです
画像自体いじったら目的は果たせたので解決ですありがとう
2019/12/28(土) 14:28:02.71ID:nbosvN83
画像いじっても解決するだろうけど、素材なおすの面倒そうだから
1.CreateEmptyでGameObjectつくる
2.quadをGameObjectの子にする
3.GemeObjectをy=0に配置したときに木の根元が地面に合うようにquadのyを調整
この状態でGameObjectをprefabにすればいいんじゃないかな
2019/12/30(月) 15:00:43.51ID:MefacUP9
質問失礼いたします。
スクリプト等をいじって保存後に再生ボタンを押して動作確認するとエラー等が出ていないのにうまく動かず、
何回か繰り返していると何も変更していないのにうまく動作する様になる事があるのですが、保存以外にも何か条件や方法あるのでしょうか?(ブラウザの更新ボタンみたいに全て読み込み直す等)
2019/12/30(月) 15:33:19.42ID:7cSOiqUU
無いよ
2019/12/30(月) 15:43:15.90ID:MefacUP9
>>836
どこか保存されてないなど自分の勘違いかもしれないのでもう少し様子を見て頻繁に再現する様なら再インストールも考えてみます。
ありがとうございました!
2019/12/30(月) 22:51:24.73ID:p/zM1Bwy
開発機 Windows 10 では XInput のゲームパッドを bluetooth接続で使用してて、
ビルド先の実機 Android 9 では同じゲームパッドを DirectInput モードで bluetooth接続してるんだけど、
XInput と DirectInput でボタン、軸がバラバラで途方にくれてる。

ゲームパッドは 8Bitdo N30 Pro 2

コードからは、Input.GetAxis("Vertical") == 1 とかで呼んでるけど、
なんかベストプラクティスとかあるのかな?

[プロジェクト設定]→[入力]で、ボタン、軸の違う XInput と DirectInput コンパチで設定する方法とか?
2019/12/31(火) 02:21:30.45ID:5UwvHbim
>>838
InputManagerでのゲームパッド完全対応は既製品を網羅して決め打ちするしかないから皆途方に暮れた末にアセットに頼ってるのが現状だよ
2019/12/31(火) 08:35:26.33ID:Y8q/9GVB
>>839 どうもありがとう。
なるほど、最終的にはキーコンフィグを自力実装か、アセット頼りになるのか。

Unity 側でOS判定は出来そうだから、開発中は Windows なら XInput で、Android なら DirectInput の
デフォルト設定をコード内で選択するようにするか。

でも、それだと InputManager をコードからいじることになるのか。
Input.GetAxis("Vertical") ← ここの "Vertical" をコードから指定する感じだよね。
結構めんどくさいね。

というか、Input.GetAxis には仮想軸の文字列しか渡せないの? オーバーロードも一つもない?
そんなバカな…
2019/12/31(火) 09:24:48.90ID:Y8q/9GVB
今、InputManager にかわる新しい入力システム InputSystem が出てたことを知った。
キーパッド入力部分のソースコード全部書き直せってか。
ぐぬぬ
2019/12/31(火) 10:07:49.31ID:D9jsx8E3
>>835
シーンに何も置いてない状態で起こるならエディタ側の問題
空のシーンだと正常に動くならライトやらスクリプトやらが悪さしてる
2019/12/31(火) 12:42:41.52ID:CcuSFy9r
>>841
大改修になるけど、今までキー入力のバッファリングが無くて不便だったのがやっと解決されるからアクションゲームとか作ってるなら乗り換えた方がいいよ
2019/12/31(火) 15:12:13.49ID:5UwvHbim
Input Systemのドキュメント読んで来た
Xbox, PS4, Switchのコントローラーは公式対応で、
その他は汎用HIDを識別とあるがやっぱり自前のマッピングが必要っぽい
未知のコントローラーを検出したらジョイスティックを順番にぐりぐりさせて識別するオートコンフィグさえ実装したら実用レベルだな
2019/12/31(火) 15:17:52.78ID:Oh+ty5S6
やはりアセットの方が楽そうだね。
500円とかなら間違いなく買うw
2019/12/31(火) 18:06:11.29ID:Y8q/9GVB
>>843 ありがとう、さっそく InputManager から InputSystem に換装してみた。

ゲームパッドは 8Bitdo N30 Pro 2 で検証。

【結果】
// Dpad:十字キー
Gamepad.current.dpad.up.isPressed
Gamepad.current.dpad.down.isPressed
Gamepad.current.dpad.left.isPressed
Gamepad.current.dpad.right.isPressed
⇒ XInput と DirectInput で同じキーが取れる。

// ボタン
Gamepad.current.aButton.isPressed
Gamepad.current.bButton.isPressed
Gamepad.current.xButton.isPressed
Gamepad.current.yButton.isPressed
⇒ XInput :(※N30 Pro 2のボタン表記では取れない)
 aButton → Bボタン
 bButton → Aボタン
 xButton → Yボタン
 yButton → Xボタン
⇒ DirectInput :
 aButton → Aボタン
 bButton → Bボタン
 xButton → Xボタン
 yButton → Yボタン
2019/12/31(火) 18:06:35.38ID:Y8q/9GVB
【状況】
十字キーは XInput と DirectInput のコンパチが実装出来た。
ボタンは XInput では XBOXコンのボタン配置で取れた…
DirectInput では N30 Pro 2 の表記の任天堂配置で取れた。

InputSystem の XInput でも任天堂のボタン配置で取りたい。
どうにか出来ないものかな?

L、Rはまだ試していない。
2019/12/31(火) 20:58:22.95ID:p26duGZu
みんなアセットを買って解決してるよ
2019/12/31(火) 21:17:07.92ID:Y8q/9GVB
>>848 申し訳ない、今回はアセットを購入しない方針で問題を解決したいんだ。
2019/12/31(火) 21:59:33.07ID:Y8q/9GVB
※L、R は XInput と DirectInput のコンパチが実現してた。
Gamepad.current.leftShoulder.isPressed
Gamepad.current.leftTrigger.isPressed
Gamepad.current.rightShoulder.isPressed
Gamepad.current.rightTrigger.isPressed
⇒ XInput、DirectInput とも
 leftShoulder → L1ボタン
 leftTrigger → L2ボタン
 rightShoulder → R1ボタン
 rightTrigger → R2ボタン

で、結局、ボタンの数だけ ButtonControl 型のフィールドを作って、
OSを判定してボタンの参照を渡して解決した。

自分のコードの中では任天堂のボタン配置で入力処理を書いた。
多分、XInput で ABXYボタンがXBOX配置か、任天堂配置で問題が起こるのだろう。
2019/12/31(火) 22:12:50.69ID:Y8q/9GVB
InputSystem 良いね。でも、Unityの初心者向けサイトはまだ InputManager 使うやり方で
説明されてるので、これから Unity 始める人は InputSystem が使いやすいと思う。

さあ、ひとまず開発環境でのゲームパッド問題は解決した。教えてくれた人ありがとう。

次はフレームレートの問題だな。開発機の Windows 10 では普通に 60fpsで開発してたんだけど、
Android 9 の実機では 60fps では厳しくて、30fps にしようと思ったが、さらに古い Android 5 で
動かしたら、20fps 程度じゃないと安定しなかった。

作ってるのは、64マリオみたいな3Dアクションだけど、判定に Ray 投げまくりなので、
fpsが異なる設定の Android の実機で動かすとバグ出まくりだよ…
2019/12/31(火) 23:02:42.59ID:Y8q/9GVB
あと ゲームパッドの振動だ。
XInput と DirectInput のコンパチでゲームパッドを振動させる方法があるのかな?
2019/12/31(火) 23:50:33.51ID:Y8q/9GVB
というか、InputSystem なら
Gamepad.current.SetMotorSpeeds(1f, 1f);
とかで、開発環境 Windows 10 で XInputモードの 8Bitdo N30 Pro 2 は振動した。
InputSystem やるじゃん! 公式にゲームパッドの振動に対応したんだと思ったが、
デプロイ先 Android 9 で DirectInputモードの 8Bitdo N30 Pro 2 は振動しなかった…

Windows 版は振動対応だけど、Android 版は振動未対応って、ぐぬぬ
2019/12/31(火) 23:55:47.91ID:Y8q/9GVB
いや、8Bitdo N30 Pro 2 自体が、DirectInputモードでは振動未対応って可能性もあるね。
誰か、InputSystem の SetMotorSpeeds で、DirectInputモードのゲームパッドを振動させることに
成功したら、教えてくだせえ。

振動ありとなしでは、ゲームの面白さが段違いだよ…
2020/01/01(水) 00:35:54.56ID:cBmOpE+o
というか公式に振動の解説あったわ。
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Gamepad.html
> PS4, Xbox, and Switch controllers, when connected to their respective consoles.
> Only supported if you install console-specific input packages in your Project.
> PS4 controllers, when connected to Mac or Windows/UWP computers.
> Xbox controllers on Windows.

InputSystem の Rumble が Android に対応していない…
2020/01/01(水) 01:00:44.65ID:Kx2wbxr1
>>851
そういうときのfixed updateだよ!
そしてそこでinput systemが活きてくる!
2020/01/01(水) 01:23:21.99ID:cBmOpE+o
>> 856
自分は Unity は初学者だけど、Unity の作法通り、FixedUpdate() で Rigidbody に対して処理書いてオブジェクトの動作させてる。
それでも、fps が変化すると、壁を上りきる時とかハシゴを降りる時とか、Ray 処理の微妙な判定で細かい動作バグが出てる現状…
※オブジェクトの動作は全て自前実装。

ゲームパッドのキー入力は Update() で取ってるけどね。
2020/01/01(水) 02:48:39.67ID:Kx2wbxr1
>>857
通常のupdate(描画)のフレームレートはいくら下げてもいいけど、fixed updateのフレームをさげちゃダメだよ
2020/01/01(水) 10:35:52.59ID:p4TYEv+8
InputSystemとMRTKのイベント周りは同じ思想になってる?InputSystemよく知らんのでわからんけど
2020/01/01(水) 11:09:32.19ID:cBmOpE+o
>>858
アドバイスありがとう、FPSは自前で計測するコード書いて表示させてたけど、
FixedUpdate のFPSを確認する発想はなかった。

ゲームのFPSは、設定で vSync を無効にして、コードで Application.targetFrameRate = 20;
とか設定して 20fps にしてた。

で、FixedUpdate のFPSも計測するコード書いて確認したら、50fpsだった。
あれ? FixedUpdate って 50fps なの?って思って調べたら、設定の固定タイムステップが
0.02 になってたんで、0.0167 にしたら、FixedUpdate のFPSも 60fps になってなるほどと思った。

あと、1GB RAM の非力な Android 5 タブレットでも、固定タイムステップ:0.02 で
FixedUpdate 50fps 出てたので、演算は出来てんだと思い、表示が間に合わないのかと推測した。

>>859
ごめん、MRTKのイベントという言葉自体が分からないので調べるわ。
2020/01/01(水) 11:18:18.28ID:ya7ysYpY
2018くらいからデフォルトが0.0167になったはず
2020/01/01(水) 11:40:01.82ID:cBmOpE+o
fpsを変えると細かいバグが出る件は、Ray 判定の処理を Update から呼んじゃってるからだと気づいた。
物理処理が一定なのに、Ray 判定を 60fps で呼んだり 20fps で呼んだりしたらそりゃ豪快にバグるわな。

プレイヤーがブロックにめり込んだり、地形に埋まったりする。

でもここの処理を弄るのは、コードの根幹部分からの大改修でへこむは…

あとMRTKは複雑で今の自分には必要ないかな。
2020/01/01(水) 11:47:41.22ID:cBmOpE+o
Unity でのゲーム開発において、Update でやるべきこと・やってはいけないこと、
FixedUpdate でやるべきこと・やってはいけないことを、本質から丁寧に解説してる参考サイトは
本当に少なくて、なおかつ自分のような初心者がテキトーにコードかいても、
ゲームとしてそれなりに動くから後で困る…
2020/01/01(水) 12:22:19.23ID:cBmOpE+o
ざっとネットをあさっても、やはり Raycast は Update に書いて着地判定するとかあるけど、
同じスクリプトで 60fps、20fps で Update で着地判定したらバグるよね? 物理演算は 50fps 固定と想定して。

上からモノ(オブジェクト)が落下してきてるけど、着地(衝突)判定が 20fps なら、着地判定が間に合わなくて、
地面をすり抜けるバグがある。

※アセットとキャラコントローラは使用しない方針

この辺が納得出来ないのは、まだ自分の理解が足りていないからだろうな。
2020/01/01(水) 13:18:50.68ID:R9RtkJsN
あと百ちよい
完走がんば
2020/01/01(水) 13:28:22.32ID:BX/jaV5P
>>864
アセットを買いましょう
時間の無駄です
2020/01/01(水) 15:36:56.99ID:7Vde49Ia
アセットおじさんをこのスレからDestroyするアセットが欲しい
2020/01/01(水) 16:08:02.37ID:Ntemfi/A
DestroyImmediate(キチガイ.アセットおじさん);
2020/01/01(水) 22:15:05.52ID:e+07kdzD
>>864
たったあれだけの俺のレスでそこまで気づけたのはすごいね
物理挙動がシビアなものを扱うときはfixed updateで、そうじゃなければupdateでいいよ
2020/01/02(木) 18:59:32.06ID:x3JqZiKy
明けましておめでとうございます!
今年も頑張ってアセット購入しましょう!
2020/01/03(金) 02:22:15.17ID:uin/GZHr
Invokeで遅延かけてAudioSourse.PlayOnShot呼びたくて色々調べてたんだけどやっぱりどうしようもない?
コルーチン定義すると散らかって悔しいというだけの理由ではあるんだけど
2020/01/03(金) 02:56:56.21ID:no3xsoMJ
>>871
汎用コルーチン作ってAction使って呼び出せば散らからない
2020/01/03(金) 09:11:45.49ID:+tiiP7aR
>>871
アセットを購入してみては?
2020/01/03(金) 12:26:28.20ID:MQKQya2C
>>869
アドバイスありがとう。
おかげでスクリプト改善して、致命的な個所は大体追い込めた。

今、3Dアクションゲームの水の面を作ってるんだけど、水中を判定する上手い方法はないかな?
複雑にしたくないので、水面オブジェクトはスタンダードアセットの "Water" で進めてる。

水面の判定はコライダーで出来たけど、水中の判定で良い方法はないかと悩んでた。
ざっくり思いついたのは、プレイヤーが上に Ray を投げて水面があり、かつ水面より自分が低ければ水中みたいな。
2020/01/03(金) 12:33:18.47ID:uin/GZHr
>>872
一応それがあるのかありがとう
結局コルーチンになりました
2020/01/03(金) 13:27:05.58ID:SKNp78X0
>>874
水面って水平じゃないの?
水平なら単純にtransform.position.yでやる
2020/01/03(金) 13:32:48.28ID:MQKQya2C
>>876
なるほど、とてもシンプルな解決策だと思う。
ありがとう自分では思いつかなかった。
Raycast で想定通り出来なくて困ってたとこだった。
本当にサンキュー
2020/01/03(金) 21:49:56.16ID:MQKQya2C
おかげで良い感じに水中の挙動実装中だけど、
泳ぐアニメーションを適用したら、泳いでる時、プレイヤーがブロックや壁にめり込むようになった。
確認すると、アニメで3Dモデルは前傾してるのに、カプセルコライダーは立ってる時のままの位置だった。

これは、アニメで3Dモデルが傾いたら、カプセルコライダーも自前で傾ける感じ?
そもそもカプセルコライダーで衝突判定してるのが間違い?
でも、もういろいろ調整して面倒くさいので出来れば、プレイヤーモデルのコライダーの種類は変えたくないなあ。
2020/01/03(金) 21:53:27.57ID:4PHsCaGr
>>878
腰ノードにカプセルコライダー付ければいいんでない?
2020/01/03(金) 22:34:44.77ID:MQKQya2C
>>879
なるほど、3Dモデルは腰では分けてなかったので、体ノードにカプセルコライダーつけたら、水中の前傾でのめり込みが解消した。
でも、もともとの歩く時も傾斜しないカプセルコライダー基準で、オブジェクトを掴む判定や、上る・下りる判定をしてたので、
地上と水中でカプセルコライダーを切り替えることが必要かな。

ありがとう。自分では気づけない発想で本当に勉強になって助かる。
2020/01/04(土) 03:22:30.69ID:kwztwMX9
前々からちょっと気になってたので質問させてください。
オブジェクトAのクラスAにpublic GameObject objB
としてオブジェクトBをインスペクタ上からクラスAにアタッチした場合って
メモリの使用はBは参照してるって認識でいいんでしょうか?

例えばオブジェクトBのデータ量が100MBあったとして、
Aにアタッチしたらゲーム内で200MB使用してることにならないのかって意味です。
882名前は開発中のものです。
垢版 |
2020/01/04(土) 06:09:49.67ID:6CzwS6io
それアタッチじゃなくて参照じゃね?
ゲーム立ち上げてメモリーマネージャーとかで見ればよくね?
2020/01/04(土) 17:59:07.23ID:XO34IPeI
質問させて下さい。

update内で
if(enemy.hp == 0)
を条件にエネミーオブジェクトをデストロイして新しいエネミープレファブを生成する処理を書いたとすると、新しいエネミーが出現するまでの間コンソールにenemyがありません的な警告が出続けてしまいます。

この警告は無視しても良いのでしょうか?
それともhp == 0という条件を辞めて他の関数でhpが0になったらenemyAlive = falseなどのフラグをたてて管理すれば良いのでしょうか?

もっと良い方法もあるのでしょうか?
初歩的すぎる質問だと思いますが先輩方の知恵をお貸し頂きたいです。
よろしくお願いいたします。
2020/01/04(土) 17:59:19.32ID:kov3mgdb
珍しくまともに質問スレしてるな
3年ぶりくらいか?
885883
垢版 |
2020/01/04(土) 18:02:59.33ID:XO34IPeI
書き忘れてしまいました。
作っているのはRPGの様なバトル画面でプレイヤーとエネミーの攻撃力を交互にHPから引くという動作をさせている物です。
今は1vs1で雛形作っていますが、完成後には敵を複数出現させたいと思っています。
2020/01/04(土) 18:59:09.06ID:kNbEhA8/
>>883
無視しても影響は無いと思うけど、警告は意図しない使われ方だから出てるわけで、出来ればステータス管理用のクラスを別で作ってそれを持たせておいた方がいいね
2020/01/04(土) 19:30:16.09ID:yESk8dXK
>>883
ありません的なじゃなくて正確な警告文書こうや
2020/01/04(土) 19:39:48.33ID:XO34IPeI
>>886
回答ありがとうございます!
同じスクリプト内でいろいろ処理してしまってるので管理クラスを別にする方法もためしてみます!

>>887
本当にその通りだと思います、申し訳ありません、、
色々試行錯誤して警告が出なくなってから、もっと良い方法があったのかな?と書き込みしてしまったので警告内容がわかりませんでした。
(nullの文字があった事だけ覚えていたので曖昧な表現になってしまいました)
今後は気をつけます!
ありがとうございました!
2020/01/04(土) 21:24:53.94ID:2v8PE2Fo
>>883
if(enemy != null)
とかで、エネミーが存在するときだけ処理すればいい
2020/01/04(土) 21:33:48.90ID:hGDO8YfT
if文は重いので可能な限り減らしましょう
最初のenemyが出てから呼ぶようにしましょう
891名前は開発中のものです。
垢版 |
2020/01/04(土) 21:55:45.93ID:6CzwS6io
まぁぃまのパソコンやスマホでifの分岐なんかどうでもいい処理
gameobject.find ですら問題ない
結論、気にするな
2020/01/04(土) 22:00:43.39ID:hGDO8YfT
updateで毎フレーム呼ぶなんて論外ですよ
2020/01/04(土) 22:51:48.38ID:yESk8dXK
>>890
それ最初のが出てから、をどうやるの
894弟子
垢版 |
2020/01/04(土) 23:26:41.70ID:6CzwS6io
もっと良い処理は所謂オブジェクト思考
enemyさんのhpを減らしてる処理がどこかに在るわけさ、それはenemyさん自信が持ってる可能性あるので、そこで0になったら次のenemyさんを生成してあげるように管理者へ働きかければいいのさ

攻撃あたる→ダメージ分だけhp減らす
ってやってるはずだお
895弟子
垢版 |
2020/01/04(土) 23:30:14.89ID:6CzwS6io
一応公式のupdate のサンプル貼っとくよ
https://docs.unity3d.com/ja/current/ScriptReference/MonoBehaviour.Update.html

あれif 分使ってるわ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況