ゲーム作品
GunSwapShooter
- ・使用技術:unity c# blender gimp shadergraph git/github
- ・制作期間:2025/11月~2026/3月
- ・開発人数:一人
GunSwapShooter
このゲームについて
的の色に合わせて、赤い銃と青い銃を素早く切り替えながら撃ち分けるARシューティングゲームです。大学生活が落ち着いてきたタイミングで、約1年半ぶりに新規制作に取り組みました。
現時点で、プログラミング面・ゲーム性の両面において、これまでで最も完成度の高い作品だと感じています。ぜひ遊んでみてください。
学んだことについて
本作では初めて、AIエージェントであるGemini CLIとGit/GitHubを導入しました。AIについては、コードを生成させる(バイブコーディング)用途ではなく、設計方針や実装内容のレビューを依頼する用途として活用しました。
その結果、ジェネリックプログラミングという新しい考え方や、オブジェクトプール、CRTP、テンプレートメソッドパターンといった設計手法を数多く学ぶことができました。これらの学びが、冒頭で述べた「プログラミング面で最も成長を感じられた作品」という評価につながっています。
Git/GitHubについて
理解はまだ浅いですが、Git/GitHubのありがたみを実感する機会になりました。具体的には、開発の途中で大規模な変更が必要になった場面で、いつでも過去のコミットに戻れるという安心感は非常に心強く、今後さらに使いこなせるようになりたいと感じました。
PIRATE SHIP
- ・使用技術:unity c# blender shadergraph
- ・制作期間:2021/4月~2023/7月
- ・開発人数:一人
PIRATE SHIP
このゲームについて
前作の戦車ゲームの次のステップとして、船を題材にしたオープンワールドゲームに挑戦しました。結果として規模の見積もりが甘く、コンテンツ量が不足した状態での開発となりましたが、ビジュアル面の作り込みには力を入れています。
マップ上には町や敵の要塞などが配置されており、それらを巡ることでゲーム性を持たせています。現状、敵の出現間隔の調整が課題として残っています。
学んだことについて
- NavMeshによる索敵・追跡AI:前作では実装できなかった「障害物を避けながらプレイヤーに向かってくる」敵の挙動を、NavMeshを用いて実装しました
- Terrainによる地形作成:広大なマップを効率的に作成する手法を学び、オープンワールドのベースを構築しました
- ShaderGraphによるビジュアル表現:Skyboxの雲の動きや昼夜の変化、頂点アニメーションによる帆の揺れ、海面の表現などを実装し、ビジュアル面の大きな向上につながりました
一方で、ShaderGraph(GUIベース)での実装が中心だったため、Zバッファやレンダーパスといった、より低レイヤーな概念への理解はまだ曖昧な部分があります。当初はコードベース(CUI)での実装を試みましたが難易度が高く断念した経緯があり、今後はそうした低レイヤーの実装にも挑戦していきたいと考えています。
音ゲー※試作
- ・使用技術:unity c# blender gimp shadergraph
- ・制作期間:2023/7月~2024/5月中止
- ・開発人数:一人
音ゲー※試作
このゲームについて
マウスをフリックする操作が、IIDX(音楽ゲーム)のターンテーブル操作に近い感覚を生み出せるのではないかという発想から企画した、音楽ゲームです。 音楽ゲームは特に好きなジャンルであり、力を入れて開発を進めていました。
開発中断に至った経緯
開発を進める中で、以下のような課題が明らかになりました。
- 音楽理論(BPMや拍子)に関する知識が不足しており、譜面生成の精度に課題が残った
- 当時はC#の継承やインターフェースについての理解が浅く、内部設計に改善の余地が多く残った
- 開発途中でデータの一部を誤って削除してしまい、復旧に大きな時間を要した(以降、バックアップの重要性を強く意識するようになりました)
これらに加えて学業との両立が難しくなったことから、優先順位を見直し、一旦開発を中断するという判断をしました。
このプロジェクトで得られたもの
- GIMPとShaderGraphを組み合わせたビジュアル表現の手法を習得し、ゲームの見た目のクオリティ向上につなげることができました
- 操作性については、スライダーとターンテーブル間の切り替えに課題があったものの、コアとなるターンテーブル操作自体は良好な手応えが得られました
- 音楽ゲームというジャンルへの思い入れは強く、ここで得た知見は今後の制作に活かしていきたいと考えています
戦車のゲーム
- ・使用技術:unity c# blender
- ・制作期間:2021/2月~2021/4月
- ・開発人数:一人
戦車のゲーム
このゲームについて
オリジナル作品としては初めて制作した3Dゲームです。自機(戦車)を操作し、ステージ内の敵をすべて倒すとクリアとなるシンプルなゲーム性で、全3ステージで構成されています。
現在改めてプレイすると、特攻してくる敵の耐久値が高く、回避が難しいバランスになっている点が課題として残っています。
学んだこと
Blenderについて
このゲームで初めてBlenderを用いた3Dモデル作成を学びました。具体的には、頂点・辺・面を組み合わせたモデリングと、テクスチャの貼り付けまでの一連の工程を経験しました。
UV展開に関しては、シームレステクスチャとスマートUV展開を活用しており、手動でのUV展開は今後の学習課題としています。また、戦車の履帯(キャタピラ)についても再現を試みましたが、最終的には表現を省略する形となりました。
プログラミングについて
プログラミング面では、Physics.Raycastを用いた索敵処理を実装しました。具体的には、敵から自機に向けてレイを飛ばし、自機に当たった場合は「視認した」と判定して攻撃フェーズに移行する、という仕組みです。
一方で、障害物を回避しながら自機に向かってくるような敵AIは実装できず、まっすぐ進む、または決められたルートを移動するという形にとどまりました。この課題については、後の作品(PIRATE SHIP)でNavMeshを用いて解決に取り組んでいます。
2Dシューティング基礎練習
- ・使用技術:unity c#
- ・制作期間:2021/2月(短期間で制作)
- ・開発人数:一人
2Dシューティング基礎練習
このゲームについて
これまでの作品の中で最も開発期間が短い作品です。チュートリアル動画を参考にしながら制作した、シンプルなシューティングゲームです。
制作の動機については正確な記憶ではありませんが、それまでに2作品ほど制作した中でUnityの基礎がまだ十分に身についていないと感じ、復習を兼ねて取り組んだという経緯だったと記憶しています。
3D基礎練習:パルクールゲーム
- ・使用技術:unity c#
- ・制作期間:2021/2月(約1週間で制作)
- ・開発人数:一人
3D基礎練習:パルクールゲーム
このゲームについて
Unityを学ぶ動機である「3Dゲームを作りたい」を達成するため、最初のステップとしてチュートリアル動画を参考にしながら制作した作品です。
ゲーム性としては、女の子のキャラクター(※アセット使用)がさまざまな障害物を乗り越えながらゴールを目指す、シンプルな構成になっています。
学んだことについて
前作のシューティングゲームは2Dだったため、3D空間における回転や座標の扱いに慣れていませんでした。本作を通して、3D特有の回転・座標の考え方を学ぶきっかけになりました。
また、前作ではTransformコンポーネント(座標を直接指定する方式)で移動を実現していましたが、本作ではRigidbody、つまりUnityの物理エンジンを介して座標を操作する方法についても、基礎的な部分を学ぶことができました。
シューティングゲーム
- ・使用技術:unity c# Edge(ドット絵制作ツール)
- ・制作期間:2020/12月~2021/3月
- ・開発人数:一人
シューティングゲーム
このゲームについて
Unityで制作した1作目のオリジナル作品で、シューティングゲームです。時間の経過とともに敵が出現するシンプルな構成ですが、ドット絵を自作するなど、プログラミング以外の要素にも挑戦しました。
数年ぶりにプレイしてみると、難易度調整が甘く、初見では非常に難しいバランスになっています。
なお、これより前にもブロック崩しを制作した経験がありますが、データが手元に残っておらず、本サイトには掲載していません。チュートリアルを参考に作成したものだったため、当時整理した際に削除したと思われます。
学んだことについて
敵の出現タイミングの制御にはCoroutine(コルーチン)を使用しており、これが非同期処理に触れる最初のきっかけになりました。
現在は、よりメモリ効率や自由度の高いUniTaskを中心に使用していますが、この作品での試行錯誤が現在の実装方針につながっています。
その他
ポートフォリオサイト
- ・使用技術:Astro SCSS HTML TS GeminiCLI
- ・制作期間:2026/3月~現在
- ・開発人数:一人
ポートフォリオサイト
このWebサイトについて
これまでの制作物の振り返りと自己分析を目的として作成したポートフォリオサイトです。これまでの制作経験を整理し、技術的な成長を可視化することを目的としています。
普段はゲームプログラミングを中心に取り組んでいるため、Web制作には学習コストがかかりましたが、その分Webプログラミングへの理解を深める良い機会になりました。
学んだことについて
Astroというフレームワークを用いて、フレームワークを使ったWebサイト制作の基礎を学びました。また、言語面ではSCSSとTSを新たに習得しました。
技術の選定理由
以前、大学のサークル活動でホームページを制作した経験があり、その際はHTML・CSS・JSのみでフレームワークは使用していませんでした。その時に感じた課題が、今回の技術構成を選ぶきっかけになっています。
AstroやTypeScriptを選んだ詳しい経緯については、ブログ記事「ポートフォリオサイトを公開しました」で詳しく解説しています。