テストコードorコードの断片です。ほとんどがDxLibを使用しています。 なお、 動作させるには環境変数にDXLIB_DIRを作って、そこにDxLibの本体を入れておかないと動作しないので注意してください。 また、作った時の年代でVS2019だったりVS2022だったりするので適度にコンバートしてください。
2Dにおける比の表現。ピクセルシェーダと、DxLibの暈し表現を併用している。 チョットこの後は背景を歪ませるのもやりたいと思う。
動画↓ https://twitter.com/CTsuchinoko/status/1657570050596020224
なかにRaycastShadowとSpriteShadowというソリューションがあり、それぞれ
これは、光と障害物の当たり判定を想定して、どこまで光が届くのかをシミュレートしています。ステルスゲーとかに使えるかなと思います。
https://x.com/CTsuchinoko/status/1450440169706852356
こいつは2Dで陰影をつけるテストコードです。なお、2D画像から法線マップを作るツールとしてはLaigterというのを使っています。 https://azagaya.itch.io/laigter
実行するとマウスで点光源を動かすことができます。
ノイズのテストだの色々と混ざってますが、選択中のオブジェクトにだけ輪郭を付与するテストコードです なお、輪郭は「背面法」により生成したものです
特定の枠線をくるくると光らせるものです。選択中の選択肢などに使用するといいと思います DxLibにおけるDrawMaskのテストです
授業用のatan2のテストコードです。現在マウスがいる位置を、デカいカーソルが指し示します
音ゲーを作るテンプレート ※未完成※
DxLibにおいてシェーダを用いないで、ブルーム(グレア…光ってる)を表現するサンプルです。
グローブの位置と向き(手首の向き)で肘の位置を調整するサンプルです。自分の研究用なのでソースコードが見づらいかも。 EキーとRキーでグローブの向きが変わります
画面のスクショをメッシュ化して割るっていうやつですが、なんか先祖返りしてるのでそのうち修正します。
ComputeShaderのテストコードです(@koguchit氏のComputeShaderサンプル(https://github.com/kgussan/simpleGpgpu )をDirectX12仕様にしようとしています) 今のところ、スレッドIDを書き込むだけのサンプルです。 ComputeShaderに興味がない人はここは読まなくて大丈夫です(非DxLib)
オブジェクトがモヤモヤっ、と消えるエフェクトです
ドット絵ソフトEdgeのアニメーションデータコンバート用テストコード 未完成です
テキストからfscanfでデータを読み取って、それを3Dの向きに反映させるためだけのプログラム
職場のイベントで使用した抽選機用のソースコードです。 DxLibに対してクリップボードから、コピペをするときの参考にはなるかもしれません。
所謂、某社のグラディ〇スVにおける自機のぐにゃぐにゃレーザーを実装。 見た目だけなので当たり判定が必要ですが未実装です。
キーボードのカーソルキーで移動、ZとXでレーザーを回転します
HightはHeightのスペルミスです。高さ情報を法線情報に変換します。左上にプロシージャルな波のモノクロ画像を生成し、それを法線情報に変換して右上に出力しています。 真ん中の下はその法線情報を用いて画像を歪ませたものです。
1年生の数学の授業用のソースコードです。円と円の当たり判定を行います。 なお、コメントを書いておりますがこのコメント通りにコードを追加しないと当たり判定を行いません(教育用なので) そんなに難しくないので大丈夫でしょう。
HitCircleTestの実装済みのやつです
扇形と円の当たり判定です。 サーチライト判定とかに使えるんじゃないでしょうか。
何のために作ったコードか不明 あとで消す
ただモデルをロードするだけじゃなくて、シェーダでPBRっぽくしている
DxLibのマスクを使って某ゲームの「ブチッ!」を再現しようとしました。オサレ。
多重スクロールのテストコード(授業用)
なお多重スクロールと言いつつ、手前に流れる川に結構な工夫がしてあります(シェーダコード) また、実行中にBを押すと画面手前に血の雨が降ります(笑)
C++側でログをTCP/IPで送信し、C#側で受信して表示するサンプル これは完全に趣味と言うか実験ですね。CEDEC2020のニンテンドーの講演 https://cedec.cesa.or.jp/2020/session/detail/s5e7df23196221.html に触発されて作りました。
IREMの「最後の忍道」的なゲームをC++&DxLibで作ったサンプルです。
ゲームまるまる入っていますが 著作権の関係上、素材は抜いてます。 遊びたい場合はReadMeに必要な素材が書いてるので itch.ioあたりからダウンロードして、適切なフォルダに配置して遊びましょう。
nVidiaのDXRチュートリアル(HelloTriangleからレイトレーシングをやる)を参考に、モデル表示まで実装中 https://x.com/CTsuchinoko/status/1827547690680393850
OneFingerDeathPunch的なものを作ろうとして放置中のプロジェクト。現在タイトル画面のタイトルをラスタスクロールでぐにゃぐにゃ歪ませるテストだけ行っている。 なお、現状はアセットに「GothicVania Church」を使用しており(https://ansimuz.itch.io/gothicvania-church-pack )からダウンロードして、アセットを適切な所においてほしい。 もちろん未完成
DxLibを使用したパッド状態の出力サンプル。パッド差して何かを押すとそのコードが見れます。
##PeterShirley Raytracing One Weekendやろうとしてるやつ
職場のイベントで使用したランキング可視化のソースコードです(データがないと意味がないので見ても無駄です)
画面上の点から奥行き方向に向かう線と回転する直方体の交差判定。DxLibの関数を使わず数学的に判定を行っている。 https://x.com/CTsuchinoko/status/1828764083027333592
3DのSDFを用いたレイマーチングのサンプル
Laigter( https://azagaya.itch.io/laigter )を用いて出力したノーマルマップ画像から2Dで立体感を出すテスト
矩形の当たり判定のテストです。矩形の中に侵入できないような作りになっています。 ゲームを作る際の当たり判定や、地形との当たり判定に使えるかもしれません。
斬撃エフェクト(兼背景歪ませ)のためのテストコード。 ZとXで斬撃の角度調整。カーソルキーで斬撃を移動できます。スト5のナッシュの技に触発されて作りました。
SmoothDamp式を利用して、特定の点にぬるっと追従する点を表現 GemeProgrammingGems4の1章10項のSmoothDampを自分なりに解釈して、イージングに利用してみました。
Vector2f SmoothDamp(const Vector2f& from, const Vector2f& to, Vector2f& vel, float smoothTime, float deltaTime) {
float omega = 2.0f / smoothTime;
float x = omega * deltaTime;
float exp = 1.0f/(1.0f + x + 0.48f * x * x + 0.235f * x * x * x);//テイラー展開
auto change = from - to;
auto temp = (vel + change*omega) * deltaTime;
vel = (vel - temp*omega) * exp;
return to + (change + temp) * exp;
}
なかにSpriteOutlineとSpriteAuraというのが入っています。
これは、普通の画像に対して輪郭線を付けるものです。大したことをしてないように見えますがちょっとテクが必要です。
SpriteOutlineを応用し、時間経過でアニメーションさせて色んな効果を出すことができます。
ハイトマップによるTerrainテスト。高さマップじたいはシェーダを使っておらず、画像をLoadSoftImageで読み込んでおり、それをハイトマップとして利用している。 また、この元のマップ画像は左クリックで加算、右クリックで減算することで、リアルタイムに高低差を作る事ができるサンプル
動きによって尾を引くような画像を生成するテスト 画像だが、ベクトルの変化によっては曲線を描くように画像を歪ませている
様々な画面の画面遷移(トランジション)を設計 詳しい解説はQiita
https://qiita.com/tsuchinokoman/items/b6d7f500ab0d05478a2c
を参考にしてください。(画像はアイリスアウト)
Unityの3D空間上の配置データをスクリプトでバイナリ出力し、そのバイナリをDxLibで読み取り、Unityと同じ位置にオブジェクトを表示するサンプル