Advanced Search
Search Results
78 total results found
新しいDx11base設計方針(今進んでいるところまで)
✅ 主要クラスの役割一覧クラス名役割主な責務他クラスとの関係Dx11BaseDirectX初期化&基盤デバイス・コンテキスト・スワップチェイン・バックバッファなどの管理ビューポートやラスタライザ設定もここで一元化全クラスが依存。最下層の基盤クラスShaderBucketシェーダーの一括管理.hlsl を読み込んで、VS/PS/IL を生成・キャッシュキーでシェーダー切り替えを容易にするModelRenderer や Sprite など描画系から利用されるCameraカメラ情報の管理ビュー行列・プロジェクション行列を...
おま環とは
「おま環」とは、ネットスラングで「お前の環境が原因」の略です。主に以下のような状況で使われます:🧩 意味「他の人では再現しない問題が、特定のユーザーの環境だけで起きている」ということを指す言葉です。🧠 具体例Aさん:「Visual Studioのツールチップが文字化けするんだけど」Bさん:「再現しないな、それおま環じゃ?」という具合です。つまり「PC設定や環境(OS・フォント・IME・拡張機能など)の問題かもよ?」という含みを持っています。
へびゲーム
体験入学会プログラミング体験教材はじめに本日は体験入学会にお越しいただきありがとうございます。プログラミング初心者向けの体験授業として、C++を使った「スネークゲーム」を完成させます。コード中の TODO マークに沿って穴埋めし、動くゲームを作りましょう。HEBIGAMEを動かしてみようまずはいったん遊んでみようスペースキーでスタートキーボードのアローキー(⬆️⬇️⬅️➡️)で方向転換エサを食べると成長するよ!自分の体を食べちゃったり、壁に当たるとゲームオーバースペースキーでリスタートStep 1: 背景色を設定し...
ComptrとDirectXの話
マイクロソフト界隈のプログラミング環境で、度々見かける正体不明の言葉たち。DirectX関連のコードを書いているとちょいちょい見かけて、知らんうちに使ってるけど正体がよくわかっていない怖いやつ「COMオブジェクト」についてCOMオブジェクトって何ぞ?(ていがくねんむけせつめい)💡まず「COM」ってなに?COM(コム)は「Component Object Model(コンポーネント オブジェクト モデル)」の略です。でもそんなカタい言葉、いったん忘れてください。🍱 COMオブジェクトは「お弁当のおかず」たとえば「ゲー...
メモ
🎮 前提条件(仕様)プレイヤーは高さ 2ブロック分の大きさ(頭+胴体)ジャンプは1ブロック分のみ可能ブロック世界は world[x][y][z] のようなグリッドで表現「今立っている場所」と「前進方向」にあるブロックを調べて移動可能性を判定🔍 判定に使うブロック範囲(図)プレイヤーの足元 py として、進行方向の dx, dz を使って座標 (px+dx, py, pz+dz) などを調べます。上から見た進行方向(Z奥に進む場合) ↑ 進行方向 z | | [x][...
Windowsプログラミングの初めの一歩手前の穴
メッセージループとコールバックとWinProc🎮 たとえるなら…ゲームセンターの受付とスタッフの関係!🌀「メッセージループ」は、ゲームセンターの受付のお兄さん毎日ずっと、お客さん(メッセージ)が来るのを待ってる。お客さんが来たら、「どのゲームに用事があるのかな?」と考えて、そのゲームの担当スタッフに「お客さん来たよ!」と伝える。// ゲームセンター受付のお兄さん(これがメッセージループ) while (お客さんが来たら) { お客さんの内容を読む(TranslateMessage) 担当スタッ...
キャラクターの真下にShaderを使って丸い影を描く(投影丸影)
🎯 この影の作り方のイメージプレイヤーの下に「黒い丸いライト」を当てて、地面をちょっとだけ暗く見せるという工夫です。ライトなので、授業でやった点光源がわかっていれば全く同じように実装できます。しかも、現在のシェーダーにコンスタントバッファと、影付け部分を足すだけでできます。こんな感じの影です👇👦 ← プレイヤー(ジャンプ中でもOK) ↓ 黒い光を下に照らす ↓  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ● ← 黒い影(地面に丸く表示される)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄🧠 なぜこんな影を作るの?本物の影は、...
C++とWindowsと非同期処理
Windows向けのゲーム開発において、非同期処理や排他制御(mutex、semaphore、critical sectionなど)を行う場合、以下のように目的や状況に応じて C++標準ライブラリとWindows API を使い分けるのが実践的です。✅ 結論(簡潔版)用途推奨移植性が欲しい(Windows以外も視野)std::mutex など C++標準ライブラリパフォーマンス最優先・細かい制御が必要CRITICAL_SECTION や WaitForSingleObject など WinAPI軽量なロックを大量に...
自分でランダムな地形?を作って表示する。テクスチャもつける
🌱 ステップ①:データの設計(どんな情報を使うか?)地形を作るには「たくさんの点(てん)」が必要です。この点は「頂点(ちょうてん)」と呼ばれていて、1つ1つの頂点には次のような情報があります:名前何の情報?positionその点がどこにあるか(x, y, z)normal光の当たり方(かたむき)uv絵(テクスチャ)の貼り方これをたくさん集めて、「地面の形」を作っていきます。地面の形は三角形をたくさん並べてできていて、三角形のつなぎ方を indices という番号のデータで管理します。🧺 ステップ②:データの準備(ど...
必要なクラス(Terrain class)を作っていく
🛠 ステップ⑤:Terrain クラスを作ろう!ゲームに出てくる「地面」や「山」をつくるために、Terrain(テレイン)という 地形クラス を作ります。これは「地形を作ったり、描いたり、調べたりする便利な道具」だと思ってください。🧱 1. 必要な情報(メンバ変数)地形を作るには、「点」や「三角形」、サイズなどの情報が必要です。class Terrain { public: Terrain() = default; // 何も設定しない初期状態のコンストラクタ void MakeTerra...
あいつは自分から見て右にいるの?左にいるの?
🌟目的自分の向いている方向から見て、「ターゲットが右にいるのか、左にいるのか」を判断し、その方向に回転させたい。🧭前提知識1. atan2(y, x) の意味ベクトル (x, y) の角度(ラジアン)を、原点から見たときのx軸との角度として返します。範囲は [-π, π]。2. 基準ベクトル自分が向いている方向をベクトル forward とし、右方向を基準にする場合は、通常 right = {1, 0} などとします(右向き単位ベクトル)。🧮方法1:atan2による角度の差で判断// 自分の向きとターゲット方向 ...
ランダムな三角形で地形を作っていく
🌱 地形の高さをランダムに決めて、頂点を作ろう!💡目的:地面の形を作るには、まず「高さのある点(=頂点)」をたくさん並べます。そしてこの点の高さをランダムに決めることで、でこぼこした地形になります。📦 使うデータ前回までに作った TerrainParams を使います。struct TerrainParams { int width = 128; // 横に何個頂点を並べるか int height = 128; // 奥に何個頂点を並べるか float scale...
GPUリソースを作っていく!→ Draw関数
🎮 GPUリソースを作るってどういうこと?💡まずはイメージ!「頂点の情報(場所や高さなど)」を作るだけでは、画面に出せません。作った情報を GPU に渡して、「これを描いて!」とお願いしないといけません。そのために、**「バッファ」**という入れ物を作って、GPUに渡す必要があります。📦 GPUに送るデータは2つある!名前説明頂点バッファ点(場所・高さ・向き・UV)の情報インデックスバッファどの点とどの点をつないで三角形にするか🧪 具体的にどうやるの?🎯 頂点バッファを作る部分(簡略)D3D11_BUFFER_DE...
まずは、プレイヤーをつくる
これは、いつものモデル読んでGameObject継承したPlayerクラス作る感じでいいと思う。必要な情報はあとで追加していこう。最低限必要なところで考えると。以下のようなクラスになりそう。✅ 例:クラス構成の改善案(関数分割)class Player : public GameObject { public: void Initialize() override; void Update() override; void Draw() override; void Rel...
XMVECTORとXMFLOATどっち?問題
XMVECTORXMVECTORは、DirectXMathライブラリの中核をなすデータ型です。その特徴は以下の通りです。SIMD (Single Instruction, Multiple Data) 最適化: 複数の浮動小数点数を同時に処理できるCPU命令(SSE/AVXなど)を利用するために設計されています。これにより、ベクトル演算や行列演算が非常に高速に行われます。アラインメント: SIMD命令が効率的に動作するために、通常16バイト境界にアラインメントされています。レジスタでの操作: 多くの場合、CPUのレ...
ダイアログ
🪟 1. ダイアログってなに?ダイアログ(ダイアログボックス)は、ユーザーに何かを聞いたり、設定を入力させたりするための小さなウィンドウです。例:ファイルを保存するときの「名前を付けて保存」画面「OK」「キャンセル」などを選ばせる小さなウィンドウ設定画面(オプション、プロパティ)🔄 2. モーダル vs モードレス種類特徴例モーダル他のウィンドウを操作できなくなる(完了するまで)「保存しますか?」などの確認ダイアログモードレス他のウィンドウも同時に操作できる検索ウィンドウ、ツールパレット💡 イメージモーダル:呼び出...
アルゴリズムの授業
1. 線形探索 (Linear Search)1.1 概要配列(またはリスト)の先頭から順番に目標値と比較し、一致したらその位置を返す。見つからなければ最後まで調べ終えて「未発見」を返す。1.2 計算量最良ケース:O(1) … 先頭にあった場合平均ケース:O(n/2) ≒ O(n)最悪ケース:O(n) … 存在しない場合や末尾にあった場合空間計算量:O(1)1.3 特徴・利点・欠点利点ソート不要。要素の順序を問わない実装が非常にシンプル欠点要素数が大きいと比較回数も増大し、性能悪化頻繁に検索する場合は不向き1.4 ...
キャラクターAIを作ってみよう
今日の目標今日の体験実習では、2Dボンバーマン風ゲームのキャラクターAIのプログラムを作りながら、C++によるゲーム開発の実際の雰囲気を体験してほしいと思います。開発環境Windows11Visual Studio 2022プログラミング言語C++使用ライブラリDxLibC++によるプログラム開発の流れBuild → ソースをビルドして実行Edit → 指定の行番号の定義を『書き換え』Test → 動作を確認し、発見・改善POINT: 小さな変更を加え、すぐにビルド&実行。これを繰り返すのが開発サイクル!ゲームAI...
避けゲー
実習課題 避けゲー目的(これを体験で学ぶ)ゲームエンジニアリングの基礎を知るC++ と Visual Studio で実際に動くゲームを作る流れを体験するソースコード → ビルド → 実行ファイル という開発の基本パイプラインを理解するプログラミングの基本(変数/順次・分岐・反復の3つの構造)を使えるようになるエラーが出たときの「原因を調べて直す」デバッグの流れを身につけるDxLib(ゲーム用ライブラリ)を使って画面に描画し、ゲームの構成要素を組み立てるゲーム構成(この体験で作る「避けゲー」の要素)実行してみてみよ...
Unity使うときのプロキシの設定
サインインのためにプロキシを設定する スタートメニューで「環境変数」と検索 → 「システム環境変数の編集」を開く 「環境変数(N)...」ボタンをクリック 「ユーザー環境変数」または「システム環境変数」の欄で 新規 を押す 変数名:HTTP_PROXY値:http://172.17.0.2:80OKで保存 同じ手順で HTTPS_PROXY も作る(変数名はHTTPSだけどURLはhttpのままなので注意!)変数名:HTTPS_PROXY値:http://172.17.0.2:80...