【ゲームエンジン】Unityなんでも質問スレpart10
■ このスレッドは過去ログ倉庫に格納されています
unrealのほうがきれいとされている理由ってなんでしょうか? >>285
知らぬ
Unityのほうが光の表現力は高い unityがぼんやりしてるのは写実的とも言えるんでしょうかね 知らんといってる割にはUnityの方が光の表現力は高いと断言してるのなんなの? >>288
UEはテカテカしてるのと多光源でカクつくってのは知ってる
だから光の表現力は劣る ID:EFqMvqeP
こいつUnity本スレやUEスレ荒らしたりQiita荒らして追放された奴だし
次からワッチョイ付けた方がいいんじゃないの ゲームじゃなくてお芝居やらせたいんだが
unityじゃなくて適したものある? https://itest.5ch.net/mevius/test/read.cgi/tech/1663067298/
そいつ昔はMAUI HS(HighSchool)ってコテつけて.NET絡みのスレで暴れたやつ
1月ぐらいまでは.NET MAUIにご執心してたけど今はUnity https://github.com/VipperNanashi/5chBrowser
5chブラウザ作ると言ってが全然プログラム書けなく挫折して1ヶ月で逃亡
まぁ、今回も挫折してすぐにいなくなると思うよ probuilderってすこぶる使いづらくないでしょうか?
私の主観かな >>294
どこに挫折したか言ってくれる?
Unityやりだして時間が取れないから止まってるだけだが? 一般論としてはそれを挫折したと言う
あるいは端からやる気がなかった()か
とはいえあくまで一般論なので、本人の主観において挫折したかは話の俎上にない 今から2023に馴染んでおくのに、2023.1ベータと2023.2アルファの差が
いまいちわからないのだけどどこで調べればよいでしょうかね イエローライトよりもブルーライトのほうが奇麗な印象あるだろ?
そんな感じの理由じゃ? こんにちはいつもお世話なります
prehabの拡張子のファイルを見かけるのですがこれは変更をうかつにしないように別ファイルにしておけるってことなんですかね おまえらユニティスレで何やってん?
ユニティ以外は無視でOK >>302
プレハブはそれ以下のデータ構造(スクリプトだのナビメッシュだのトランスフォームだの)の設定を保存してそれを1オブジェクトとして扱えるようにするためのものだ
そのプレハブをヒエラルキーに出したらその中身も維持れるようになる(オーバーライド)
いじったやつをもう一度プレハブ化したければ右クリックでアンパックしてそれをプロジェクトウィンドウにドラッグドロップするとその名前でプレハブが生成される >>306
こんにちはお世話なります
詳しく教えてくださりありがとうございます
どうやらUnity2018版だとプレハブモードが使えないらしいのです
とはいえ基本的に同じことはできるみたいです >>306
オーバーライドって呼び方はプレハブの上書き保存も同じ呼び方するから混同しやすいのよな
弄ったやつをプレハブ化したいときはアンパックする必要はないぞ
HierarchyからProjectウィンドウにD&Dすればオリジナルプレハブを作るかバリアントプレハブを作るかの選択肢がでる
”オリジナル”を選べば現在の設定で新しいプレハブになる
”バリアント”を選ぶと元のプレハブへのリンクを残したまま現在の設定を反映させたネスト構造のプレハブができる ユーティリティツールを魔改造しまくってたらもはや別物になってしまった
最初から自分で作ったほうが早かったなあ… マテリアルってプレハブみたいに個別にパラメータを変えるのはできないんでしょうか
うっかり数値をいじるとそのマテリアルを参照しているモノが全部変わりますよね?
トラブルが多そうな気がするんですが、そうでもないです? >>312
必要に合わせてCtrl+Dで複製(Duplicate)しろ
実は同一データなのはエディタの中だけでPlay中になると元のマテリアルからインスタンス化したマテリアルに変更されて独立するんだけどね… マテリアルのパラミタを少しでもいじると、すぐ上書き保存されるのでしょうか(Play中ではない)
マテリアルの保存とシーン保存とは無関係ということですかね >>314
そうだよ
基本的にオブジェクトはHierarchy上にしかなくて、そこについているコンポーネントも基本はHierarchy上にのみ存在するデータだ
だからシーンの保存をしないと更新されない
でもコンポーネントの中で参照されているデータは別
マテリアルとかメッシュとかアニメーターとかはアセットというデータをそのまま参照してる
だから、中身を弄る=元データそのものを弄るってことになってシーンの保存と無関係に上書きされる 壁ジャンプにおける壁貼り付きって、摩擦で壁に貼り付けるか、スクリプトで縦移動を制御するか、どちらが一般的ですか?
摩擦だと常に一定の結果にならない ステートマシンってswitch caseみたいなものだと思うけど、if分岐とは何が違うんでしょうか? >>320
本式で作ると全くの別次元、ステートでclass間を行き来するから
class化の最大の利点のカプセル化と隠蔽が効く
そうでないものは唯のまがい物でバグの温床にしかならないから
if文やswitch文と大差ない >>321
enumで作ってますが、このステート1つ1つがクラスなんですか? そうなるかな
デザインパターンのステートパターンを使う。
例えばIStateインターフェイスを定義して、idleState、moveState、jumpState
を派生させたらメソッドの中身を書く
例えばJump中に横移動させたくないならメソッドの中身に横移動する処理自体なかったら
ステートを変えてclassが変わると横に移動しなくなる。if文やswitch文だとフラグによるから
自分が意識してない想定外のフラグの立ち方が計算式的に成立してしまうとそれがバグになる。
そういう可能性が完全になくなる。 ありがとうございます
今のところ有益な部分がわかりませんが、使っていきます
完全に分離すると簡単に理解します(´・ω・`) まぁ普通は自分で書いたんだから規定通りに動くに決まってんだろって思うじゃん?
デバッガで追ってみて初めてまさかそんなことが起きるのかよって事が起きるからバグるんだよ
https://d.ku★ku.lu/pgkt7ukuu (ngワードになるので★入れたけど、ホント面倒くさいな)
インターフェイスを使ったシンプルなfsmを適当に作ってみた
赤は1、青は2、緑は3しかキーが効かないようになってる
メソッドがないから他の動作はしない
敵のAIに使って例えば、patrol、serch、chase、attack、escapeのように
stateを分解してしまえば、最初からstateで既定した動作以外しなくなる
複雑怪奇なif文を書くより遥かにスッキリするよ if文使うと条件次第で、状態が数十と出来そうですもんね こんちゃ例の奴ですいつも質問すみません
マテリアルの、アルベドにjpgでテクスチャを置きました
そのとき右隣のカラーピッカーはどんな役割をするんでしょうか?
たとえば赤にするとなんとなく赤が乗算されたようなレンダリンになるようですが
すなおにjpg画像の色を再現してほしいときは、真っ黒?真っ白?
以上よろしくおねがいいたします だね。
まばたきの制御をフラグ管理でやったら目を閉じかけた途中でキャンセルされて
目が全開になるからじゃあフラグ増やすとかやってたらどんどんフラグが増えていくとか
intが1→2→3→4と1つづつ増える筈なのに、2→4になったりして頭抱えるとかね
2時間位デバッガでガチャガチャやってた事あるから流石に懲りた 時々わけのわからん致命的なエラーが出てくるよな
あれを直してほしいわ >>328
マテリアルのパラメーターについて聞くときはどのシェーダーを使っているのか言ってくれなきゃ分からん
乗算っぽいって言ってるんだから乗算してるシェーダーなんだろうと仮定するが
その場合は白を使え
白=RGB全部1 黒=RGB全部0
ってのだけでも覚えてけば「乗算」だろうが「加算」だろうが「減算」だろうがすぐイメージが付くようになるぞ >>331
こんにちは今起きました遅れてすみません
シェーダはstandardですちなみにunityバジョーンは2018です
白にしておくことにしました。ありがとうございます どういうわけか素直にテクスチャの色が出なくなったんです
白っぽく彩度が落ちてグレイッシュです
こういうときに前のマテリアルを復活したくても、複製していなかったらもうアウツなんですよね?
そのへんがどうにも・・・ >>333
standardは環境光の影響を結構受けるからそれかもよ
あと反射の設定が何か影響してるかも
もしくは、流石に無いと思うがポストエフェクトをかけてるとかか unityのコード読んでるとさ
アトリビュート邪魔すぎて読みにくいんだけど解決策ある? アトリビュートが邪魔…とは…?
それ自体にも機能があるんだから読み飛ばしちゃダメじゃね? コマ送りでのアニメーション表現をするにあたって、シェーダーの_MainTexに与えるテクスチャを動的に変更するのってパフォーマンスとか保守性的に大丈夫だと思うか?
Quadにマテリアルを貼り付けてビルボード表現してるからスプライトみたいにアニメーション使えないってのもあってそうしてるんだけど。 パフォーマンス的には1枚のテクスチャにまとめて、アニメーションするシェーダー使った方がいいが、使いすぎなければどっちでもいいんじゃね? 規模小さければ気にしなくていい程度か
なら気になってから変えればいいし一旦このまま行くわ
アニメーション増やすたびに画像くっつけるのだるいしな
さんきゅ DirectXから2D処理無くしたって
てっきり全部ビルボードにテクスチャ貼って2D再現してるんだと思ってたが違うのか? 数年ぶりにUnityで自作ゲーム開発をしたいと考えているのですが
Unityの再学習のため公式チュートリアルを色々とやっていこうと思うのですが
想像以上に数が多く、どれから手を付ければよいのか……
ジャンルは不問で、とりあえず2Dゲームを作りたいとは考えているのですが
何か良いチュートリアルはありますか? 公式のは1つはやっとくべきやね
それと各マニュアルにあるサンプルもね
意外と、おおーってなるの沢山あるよ >>341
少しのお金出しても良いならudemyの講座はどうよ?
今セールで1200円くらいだしな。
ただ買う前に講座内で一部無料で見れるとこあるから、それ見てから買うこと。
こんなんが有料なの?ってレベルのもあるので。 ちゃす
enumでステート作った場合、どうやってステートを切り替えていくんでしょうか?
enum State{
idle,
run
}
var current_state = idle
match current_state{
idle{
print("アイドル時の処理")},
run{
print("走るときの処理")}
}
こんな感じにでステートマシンを作ってるのですが、current_stateの切り替えはどうやるんでしょうか?
キー操作をトリガーとする感じですか? Goto〇〇State関数を作る
stateプロパティを作ってこのstateプロパティに
GotoNormalState()
{
state=State.Normal;
}
のようにして切り替える >>347
>>348
どうもす
変数に代入して切り替えるのはわかるんすけど、その代入のタイミングはキー操作が行われたときなんですかね?
例えば、idleからrunに遷移させる場合、右キーを押しますね。このときにstateをidleからrunに切り替えるんでしょうか。 >>349
どこでもいいよ
例えば入力からAnimatorに何か送るメソッドとかあるならその中でもいい
俺の場合はInputクラス、Attackクラス、Animationクラス、Stateクラスを作っててInputからAttackクラスのメソッドを呼び出したときそのAttackメソッドの中にStateクラスのGotoStateメソッドとAnimatorクラスのAnimatorにパラメーターを送るメソッドを含ませてる こいつはアイドルからランに移る仕方まで教えないとダメやん
そんなん乱数でいいよ
十秒に1回乱数発生させてそれで分岐
これで敵AIの完成じゃ >>346
カッコ付けてFSMの真似事してもそれだと何のメリットないから
普通の平文に戻せば? 言っちゃ悪いけどステートマシンのこと全く理解してないでしょ、この人
生兵法はケガの元っていうし、中途半端な理解で使うくらいなら素直にSwitchで分岐させたほうがいいと思うよ キャラクターの動きをステートマシーンで作りたいならUnityちゃんがアニメーターの中に用意してくれてるんだからそれ使えばよくねって思うんだが
それじゃダメなのか? こんにちはいつもの奴です
マテリアルが白っぽい件はまだ解決しておりませんが
また困ったことがおきました
シーンを開くとハイアラーキの中がMissingPrefabばかりで何もなくなりました
これはシーンファイルを別プロジェクトに移動したせいとおもわれますが
何のプレハブが本来あったかは見つける方法ありますか
もしくはかたっぱしのプレハブをシーンと同階層に置いたら復活するとかありますでしょうか
以上よろしくお願いします >>357
ハイアラーキはネイティブすぎるw
日本ではヒエラルキーの方が通じるぞ
移動っていうのがどうやってやったかにもよるかな
metaファイル毎移動してれば復旧はできるけど、metaファイルを移動してなくて新プロジェクトで再生成されてたらGUIDがズレてしまってるから助からないな シーンファイルはアセットファイルへのリンクが書かれてるだけのファイルだからリンク先のデータも一緒にコピーしていかないと意味ないぞ
そしてファイルの階層は関係ない
リンクはmetaファイル内のGUIDというIDを目印にしてるからmetaファイルさえ無事ならばmissingにならない missing修正してくれるのあった気がする
前使ったことあったが100%じゃないんでガッカリすんな >>345
ありがとうございます
Udemyについても調べてそっちで良さそうなのあったら見て見ます! >>355
継承とインターフェース勉強した方が良いのと、アニメーターとアニメーションイベントで代用出来ないか検討すべき。 前後左右どこでも向けるオブジェクトの向きを、Y軸のRotationから判定して4方向と8方向に分類したい
4方向ステータスと8方向ステータスを作るわけだが、Enumはどんなのが良いと思う?
NEWSかUDLRか……
XZ+Positive or Negative が本来の意味通りなんだろうけど文字数が長くなるし……
いや好きにしろという話なんだけど普段ゲーム開発してる人の肌感感を聞きたくてだな 時と場合によるとしか
3Dか2Dか、キャラを回転させて表示するのか切り替えるのか、
マップを意識した移動なのか、etc カメラはキャラに完全追従トップダウン
キャラグラは4方向のビルボード
移動は8方向だがキャラから出るRayはグラフィックに合わせて4方向
そんな感じ
カメラ回す予定はないが……万が一があるかもしれんのでUDLRはなしだな! 全く何の必要もない無駄な工程だろ何の意味があるんだよ
だって向きを求めればグローバルでどっち向きなのか出るだろ >>367
まあ、分かるんだけどさ
特に頻出するEnumとかで文字数抑えると脳味噌が楽になるのよ
一回動いたらもう読まないかもしれない関数名とかなら、ここまで悩まないし長くてもいいとも思ってるよ
>>368
アホ?
お前のコードが見てみたいわ
絶対読みたくねえ~~~w 式で求めりゃいいだけだから頭で認識する必要すらない訳だが。
固定ならキー入力でスプライトの向きは決定できるしそもそもRaycastに必要のない情報
カメラ変えたいならMatrixでいいじゃん 出来ないの? 昔はUpDown使ってたけど最近はNorthSouthだな 位置ベクトル/向きベクトルの合成式/計算式が分かってないだけじゃねえのか? >>370
そんなマネ出来ないですw
>>371
Z軸の正の方向を北に固定して弊害でたことある?
パッと思いつかないしNEWSにしようかなって思い始めてきてる
>>372
方向ステータスを作ることにメリットがない前提なら、そういう予想になるのも意味は分かるけどな
違います 毎回計算で求めるのは微調整したい時に詰むから普通にダメだよね 二度手間だし蛇足としか思えんな
効率的だとするならソースコードやチュートリアルで頻出しないのは何故? >>375
方向求めるたびに計算書き直す方が二度手間だろ >>373
弊害はないかな
ただ東西南北使うのはenumだけでほとんどはベクトル使うから書いててちょっと違和感はある >>377
弊害ないならNEWSで行ってみるわ
違和感については「アメリカの下のほうにブラジルがある」くらいの感覚でリンクしてみるw
さんきゅ いいんじゃねー
何が弊害かなんか作ってる物によるしな >>376
>方向求めるたびに計算書き直す
キー入力で方向を代入するorスプライトのみ切り替えるだけで
計算の必要すらない事をなぜ毎回計算を書き直すとか意味不明な話になる?
だからあるっつーなら、ソースコードやチュートリアル出してみ
見た事ねーからなんだそりゃって言ってんだろ 意味不明なんだよ >>380
いや、移動は360度行けるんじゃないの?
と思ったけど8方向なのか
まあ見やすくなるならいいんじゃない ■ このスレッドは過去ログ倉庫に格納されています