[過去ログ] ゲーム制作 雑談スレ【part39】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
57: 09/06(土)19:50 ID:w/QEgYfo(4/4) AAS
>>56
俺は野球ボーイで上の者ではない
上の者は上の者で自力で頑張ってください
58: 09/06(土)20:30 ID:gwr+bGfK(10/10) AAS
>>55
平行線だな。低レベルの描画エンジンが視野外カリング・テストを行わないのは考えられない
だから俺は、そのLLMの回答はPythonスクリプトレイヤの話だ、と言っている
59: 09/06(土)20:58 ID:/kpwELhX(1) AAS
今週もよく進んだ
着実にBlenderに近づいてる
画像リンク
画像リンク
画像リンク
画像リンク
60: 09/06(土)21:17 ID:EXmAikSr(3/3) AAS
これからは質問されたらChatGPTに投げたほうがいいかもな
どうせ荒らしだろうし
61(1): 09/06(土)22:37 ID:zOtGPqEd(1) AAS
>>55
チャッピーに騙された可哀想な人がいる……
もう一度これで質問してみ?
Q: 以下の問いについて事実に基づいた解説をせよ。
1. pygameのSurface.blit() は、ソースのピクセルをdest Surfaceに転写する処理である。
2. この転写時にソースが出力先の範囲を超える場合、その領域は自動的にクリッピングされ、省略される。
3. ソースと出力先が完全に重ならない場合、描画処理は行われず内部的に早期リターンされる。
62: 09/07(日)00:45 ID:qucJSDY/(1/8) AAS
野球マンは、Unity使いなんだし朝から同じ話題に辟易してChatGptで調べただけだから、別にPygameがNinateやLumen使えてもどうでもいいだろう。
63: 09/07(日)00:54 ID:qucJSDY/(2/8) AAS
GoogleGeminiで聞いてみたよ
カリングとblit()の最適化
「カリング」という用語は、一般的にゲーム開発において、描画パイプライン全体で不要なオブジェクトを描画リストから除外する手法を指します。これには、フラスタムカリング(カメラの視錐台の外にあるオブジェクトを無視する)、オクルージョンカリング(他のオブジェクトに隠れて見えないオブジェクトを無視する)などが含まれます。
PygameのSurface.blit()は、このような広義のカリング機能自体は提供していません。つまり、開発者が自分でオブジェクトの座標を確認し、画面外にある場合は描画関数を呼ばないように制御する必要があります。
しかし、以前の回答で述べた「早期リターン」の機能は、blit()関数内部で行われる描画処理の最適化です。これは、特定の描画命令(この場合はblit())の引数(ソースとデスティネーション)が描画対象として無効である場合に、GPUやCPUへの負荷をかけずに処理を終了させるためのものです。
まとめ
Pygame自体が、シーン全体の不要なオブジェクトを自動的に描画リストから除外するような、高度なカリング機能は提供していない
blit()の内部最適化:blit()関数は、引数で渡されたソースとデスティネーションの矩形が重ならない場合、内部的にピクセル転送処理をスキップするという最適化を行っています。
これは、Pygameの描画関数の効率を高めるための実装レベルの工夫であり、広義の「カリング」機能とは異なります。
64: 09/07(日)01:09 ID:qucJSDY/(3/8) AAS
すでに5の質問とはかけ離れてるし、平行線で続けて長くなるんなら別スレ作れば?
65: 09/07(日)01:30 ID:qucJSDY/(4/8) AAS
最後にABCをGeminiに質問してみた
100X100 32Pix
A. 巨大なマップ全体を描画してスクロールする:3200x3200ピクセルの巨大なSurface(マップ全体)をメモリに作成し、そのSurfaceの描画位置をずらすことでスクロールを実現します。
描画負荷: 非常に軽い。画面に表示されるのは、その巨大なSurfaceの一部を切り取って描画するだけなので、CPUやGPUへの負荷は最小限です。
メモリ負荷: 非常に重い。3200x3200ピクセルの画像は、約40MBのメモリを消費します(RGBA形式の場合)。現代のPCでは余裕の範囲ですが、ゲーム全体のメモリ使用量によっては問題になる可能性があります。
今回のようにマップサイズが固定されている場合、最もシンプルでパフォーマンスが安定します。実装も非常に簡単なので、手軽にゲームを作りたい場合に最適です。
B. 毎フレーム「必要な範囲だけ」タイルを描画する。画面に見えている11x11タイル(121枚)を、マップデータから読み取って毎フレーム個別に描画します。
描画負荷: 毎フレーム121回のSurface.blit()呼び出しが発生します。メモリ負荷: 最小限。各タイルの画像データのみをメモリに保持すれば済みます。
今回の規模(100x100タイル)であれば、A方式と比較して目に見えるパフォーマンスの差は出ないでしょう。しかし、blit()の呼び出し回数が多いため、わずかにCPUへの負荷が高くなる可能性があります。
C. ハイブリッド
B方式とほぼ同じです。マップをデータとして保持し、画面に表示される部分だけを描画します。マップデータを配列として持つことで、ゲームロジックとの連携(例:タイルごとのイベント)が非常に簡単になります。
今回の規模であればB方式と性能差はありませんが、プロシージャルダンジョンなどゲーム開発のベストプラクティスとして最も推奨される方法です。
66: 09/07(日)01:31 ID:qucJSDY/(5/8) AAS
Geminiの総括
最終的な結論と最適な選択肢
100x100タイルの規模であれば、A方式とC方式はどちらも十分に高性能です。
手軽さ、シンプルさを最優先するなら「A方式」
巨大なSurfaceを最初に1回だけ作成すれば、あとはblit()のオフセットを調整するだけで済みます。コードが非常にシンプルになります。
拡張性、将来的な複雑なゲームシステムを考えるなら「C方式」
マップデータが配列として存在するため、ゲームの規模が大きくなったり、タイルごとに異なるプロパティ(通行可能か、イベントが発生するかなど)を持たせる場合に柔軟に対応できます。
どちらの方式も今回の条件では問題なく動作するため、あなたのゲームの要件や実装の好みで選ぶと良いでしょう。
67: 09/07(日)02:09 ID:w+4ozsCS(1) AAS
Geminiに聞いたことをコピペして意味なんか無いから
お前は荒らし
68: 09/07(日)02:19 ID:c3Q3zl9k(1/2) AAS
のたうちまわった末に出てきた歪なうんこ、みたいな回答
69: 09/07(日)04:34 ID:cdtbdgBv(1) AAS
AIの回答は質問者のレベル以上にはならないってのがはっきり分かるなぁ
70: 09/07(日)06:56 ID:qucJSDY/(6/8) AAS
一気に60ぐらいスレ進んだな。忍者みたいなのがいるのか
71: 09/07(日)10:53 ID:5TMUfK9O(1) AAS
>>61
問いになってないと思うのだが
72: 09/07(日)11:34 ID:4AU0/eMl(1) AAS
この時代に2Dスクロールが問題になるとはなぁ
73(1): 09/07(日)12:01 ID:ahzATgAC(1) AAS
2DLODによって
例えば32pixel*32pixelの画像が
画面の端に行くにしたがって
16*16, 8*8, 4*4,2*2の画像に置き換わる
これによってテクスチャ使用料は大幅に下がり
VRAMをより自由に使うことが可能になる
ドローコールは80%以上下がる計算だ
人間は画面のプレイヤーを表示する中心点の周りしか見ないため
このような技術を使っても実際の見た目はプレイ感ほぼ変わらずできる
74(3): 09/07(日)12:36 ID:c3Q3zl9k(2/2) AAS
# 低評価のレビュー
画面の端に向かって何故かボヤけが強くなっていくというバグがあって製作者に問い合わせしましたが、泥コーラがどうのこうのと意味不明な説明をされ、さらに見た目はほぼ変わらないので対応できないと返信がありました。
そのため即返金要求しました。
この製作者からは二度と購入しません。
こうなるだけだぞ、余計な最適化はすんな、もう一度言う、無駄な最適化はすんな
75: 09/07(日)12:48 ID:W/Q1K9c6(1) AAS
中心窩レンダリングかぁ?
76(1): 09/07(日)12:57 ID:8iqlIUfk(1) AAS
画像リンク
pythonでゲームを作ったよ
でもデプロイ先がねーよ(公開するほどのクオリティでもないけど)
やっぱりフリゲはUnityRoomに落ち着くな
77: 09/07(日)14:23 ID:emCB4qtY(1) AAS
>>74
急に泥コーラとか言われてもこっちだって分からんよ
単純に実装がバグってるけど開発者がアホだから直せないだけでしょ
それ最適化と何の関係があるの?
78: 09/07(日)14:41 ID:Z+uha7Ru(1) AAS
君はROMってなさい
79: 09/07(日)15:32 ID:EFCEmLLF(1/2) AAS
>>74は悪ノリレスであって
どう見たってこれがマジレスなわけないだろ
気付かないのはゲ製エアプだけだよ
これに対してそんなことしたらこうなるだけだ
余計な最適化はすんなもう一回言うぞとかクサすぎるでしょ
80: 09/07(日)15:36 ID:EFCEmLLF(2/2) AAS
>>74
>>73は悪ノリレスであって
の間違い
こんな意味不明な実装するやつ世の中に一人もいないよ
81: 09/07(日)16:17 ID:qucJSDY/(7/8) AAS
3Dカメラで写実的に見せるためにDirtLense(レンズ汚れ)、VignetteやChroma AberrationとかDOFあたりをPostEffectsしたんでしょ
ポストエフェクトマテリアルは解像度で調整してないと4Kモニタでアウトラインが細くなったり見た目変わるから注意な
82: 09/07(日)16:22 ID:qucJSDY/(8/8) AAS
>>76 完成おめでとう。itchIoあたりにアップロードしてくれれば遊ぶよ
83: 09/08(月)03:58 ID:2dY4F7bt(1) AAS
市販のフィルターも画面サイズで見た目変わるのあるから結局自分で書くようになるね。
84: 09/09(火)21:22 ID:DuHc0YCK(1) AAS
『レポ with 館山4人衆2』
▽雑談→Steam
協力型ホラーゲーム「R.E.P.O.」
×UNKちゃん×布団ちゃん(活動休止中)
×天狗ちゃん×よっちゃん
外部リンク[tv]:iplogger.info
85(1): 09/10(水)00:48 ID:1yIDrEYz(1/2) AAS
ミラー編集機能作れた
画像リンク
画像リンク
画像リンク
86(1): 09/10(水)08:29 ID:Sv534i0u(1) AAS
>>85
それいずれ公開するん?
それとも自作エンジンの中で動的にオブジェクト作ったりするため?
上下前次1-新書関写板覧索設栞歴
あと 916 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.014s