[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild1 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
312: 名前は開発中のものです。 [] 2018/08/04(土) 04:54:34.40 ID:nYTIxyUA 基本的にゲームプログラミングでは シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね? for文でその配列の要素回して抜き出したり。 でもUnityの2Dシューティングとかのチュートリアルを確認してみると 次々と生み出された敵を配列に入れ込む処理が見当たりませんが これ、個々のオブジェクトの把握はどうやってるんですか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/312
315: 名前は開発中のものです。 [sage] 2018/08/04(土) 07:35:21.25 ID:uwGBYqQ5 >>312 7.2は読んだか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/315
333: THE・シンプル先生 [sage] 2018/08/04(土) 15:07:18.36 ID:KOItUBKr >>312 自分で工夫する事で昔の「main()ループ」に近い物が作れる。 ?:空のゲームオブジェクト(Empty)を適当な位置に作る。名前は仮に"GameMain"としておく。 ?:次に適当な場所に"GameMain.cs"と仮の名前でC#スクリプトを作る。 ?:?を?にアタッチ ?:?の中にprivate属性などGameObject型の動的配列の"元だけ"を宣言 → 例:GameObject[] Enemy; ?:?の"start()"などで実際に必要な数の配列を作成 → 例:Enemy = new GameObject[3]; ?:"GameObject.Find("※オブジェクト名").gameObjectを使い、先程作成した配列にシーン上のGameObjectを関連付けていく → 例:GameObject[0] = GameObject.Find("Enemy0").gameObject; ?:後はGameObject[0]を使う 当然他のやり方も無数にある。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/333
334: THE・ステップアップ先生 [sage] 2018/08/04(土) 15:19:06.70 ID:KOItUBKr >>312 次の内容はおまけなので意味不明な場合は気にしなくていいよ。 ソース上でのオブジェクトの管理のしやすさはメモリー使用量に反比例する。 今までのやり方(main()ループのやり方)だと扱いたいオブジェクトを最初に配列に全て格納するのでそれだけ沢山メモリーを占有し続けることになる。 旧型のゲームを作る場合はこのやり方でも問題ないし今でもこっちの方が扱いやすい場面が多々ある。 とくに小規模ゲームの場合はこっちのやり方で全然いいと思う。 じゃあUnityがこの古き「main()ループ」のやり方になっていないのは何故かというと 中〜大規模のゲーム作成も想定して作られてるのもあると思う。 この規模になると次の事を実現しないといけない。 ・必要な場面にだけメモリだけを使いこまめに確保と解放を繰り返す節約型モデル ・もともと非常に重い3D物理演算を実用レベルで運用する ・もともと複雑で重い3Dの当たり判定処理(コリジョン)をプログラマが手軽に扱えるようにする これの実現でメモリー制約の厳しいスマホで苦労せずに3Dゲームを作れたり MMOやオープンワールド系のゲームを作れるポテンシャルを実現している。 FCマリオやテトリス作るなら"main()ループ型"でいいけど、モンスターハンター作るなら"main()ループ型"では死ねるよという感じ。 実際に何かを作ってみると分かるが当たり判定(コリジョン)は"main()ループ型"で回して中でいちいち判定するより オブジェクト1つ1つにC#スクリプト埋め込んで当たった時に勝手に「当たったよ!」とイベント通知してきてくれる方が100%楽。 余談だが、UnityやVisualStudioのようなGUIでモデルを配置できるエディッタ時代ではなく、コマンドプロンプト時代のCUI時代にソースで扱っていたクラスのカプセルの概念、あれをビジュアル的にも再現できている今のUnityのモデルだとも感じてる。 今のUnityのやり方が、昔に目指されていたオブジェクト指向プログラミングの1つの完成形・理想形なんじゃないかと思う。 アセットの概念なんかはまさにオブジェクト指向プログラミングのカプセル可の恩賜だと思うよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/334
349: 312 [] 2018/08/05(日) 01:31:28.80 ID:CyFJgm7j >>334 とても勉強になる回答内容に感激しました。 私はその昔ながらのmain()ループのやり方で生きて来たクチなので Unityのマニュアルやチュートリアルに目を通し(熟読はしていませんが、 非常に困惑しているところだったんです。 ステップアップ先生の話を聞いた限り、仮にUnityでFCマリオを制作するとしても、 昔ながらのmain()ループのやり方をUnityで実行するより、 本来はUnityモデルを覚えて作った方が"ラク"だよ、ということですよね? 例えば当たり判定〜のくだりは確かにそっちの方が確実にラクなのが理解できますし。 それとも「いや、FCマリオくらいのゲームしか作る気ないなら、 この先Unityを覚えて制作せずとも、>>333のUnityの中で擬似main()ループで作る方が断然ラクだよ」とかですか? というのもmain()ループのやり方が染み付いてしまっている私自体、 ゲームの処理には中心となるがループを置いて、 そこからすべての流れを構想してしまうオツムなんです。 Unityモデルは全オブジェクトが個々で処理され、バラバラに存在している感じ?というか 各オブジェクトや処理に非常にふあふあしていると感じました。 もちろん自分のUnity理解度がまだ足りないせいなのは重々承知してますが アセットやツールで解決するそれぞれの処理がブラックボックスすぎて、 初心者としてはそれらの応用が難しい。 アニメーション描画も、正直配列に各画像を入れ込んでフレームで回す方がラクなのに、 AnimationEventを使ってメモリを動かしてイベントの制作をしなければならない?のも余計ややこしく感じます。 結局、ソースだけで解決できないエンジンなので例えFCマリオであっても Unityを覚えないと作れないことにちょっと面食らっています。 それらもステップアップ先生のおっしゃる通り 3Dや中〜大規模のゲーム作成も想定されたUnityだからこその仕様なのだと理解しましたが どうなんでしょうか、私が2Dオンリーのゲーム制作目的であっても Unityモデルで制作方法を覚えた方があとあと必ずラクになりますか? 変な相談ですみません。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/349
359: 312 [] 2018/08/05(日) 16:09:57.60 ID:CyFJgm7j >>352 昔ながらのゲーム制作方法を交えてアドバイスして頂けること 非常にわかりやすく助かります。ありがたいです。 そのため、どうしてもこの機会にアドバイスを受けたいのですが シンプルに説明しますと、私のやってきたことは ゲームマネージャーを作り、そこですべてを把握させ、 各オブジェクトは属性を振り、配列に入れ、属性同士でコリジョン判定。 真になった場合に相手を見てそれぞれの処理をする (厳密には、プレイヤーなどは専用にコリジョン判定を回したり)。 各マップチップとの判定も同じで、ブロックごとに属性を振り配列に入れ込んで判定します。 シーン遷移についてもシーンマネージャーを作り、マネージャーより命令がくれば指定のシーンに飛ぶ、それだけです。 サウンドもシーン遷移の要領でサウンドマネージャーを作り、命令がくれば切り替える感じです(SEは各オブジェクト内で鳴らします)。 もちろんこれらはご存知かと思いますが、ソースは多かれどこんなシンプルなものでしたので 今はUnityの方が面倒に感じて、参っております。 理解度が低いのはもちろん、ご指摘を受け、全部Unityのやり方でやろうとしていたせいだと思いますし、 確認してみたチュートリアルが昔ながらの作成方法では無い説明ばかりなのも弊害のひとつですし、 あとネットで探す場合3Dの方の情報とこんがらがっているのも弊害といえます。 私の様な時代錯誤なゲーム制作者が、初Unityで試しにFCマリオみたいな 2Dアクションゲーム(もちろん簡単なレベルに落とします)を制作してみるとして、 どこの処理を「Unity式のハイブリット型」を選ぶのがベターなんでしょうか。 古きも新しきも理解し、両方の比較ができるステップアップ先生 どうか教えて頂けませんでしょうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/359
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.057s