SlideShare a Scribd company logo
1 of 16
Download to read offline
Galaxy
Shooter
@Takanas0517
作品概要
OpenCVを活用して本格的なシューティングゲームを制作した。
作成にあたり意識したこと
・画像処理は原則全てOpenCVで行う(外部サイトになるべく頼らない)
・エンジニアとしてオブジェクト思考プログラミングをしっかり意識する
・画像だけでなく音楽、SE、エフェクト、敵の挙動、UXにも拘る
・面白いと思うものを作るために妥協しない
・2Dゲームの面白さを知ってもらう
・色んな人にプレイしてもらってフィードバックを受ける
画像処理
背景透過
・ゲームの画像素材は右図のように
背景が単色の物が多い
・この単色の部分を透明にすれば
使い勝手が良い画像が得られる
Applecat.png
背景透過
・OpenCVで画像を読み込むとBGR形式で読み込まれる
・データ構造的には(Height, Width, Channels(BGR))の配列にすぎない
・Channelsの数字を変えても画像の色が変わるだけ
・背景透過のためには画像をBGRから透明度を表すChannel(A)を追加した
BGRA形式に変換して、特定の色の部分を透過させる必要がある
背景透過
画像処理
・シューティングゲームのフィールド
は画像を重ね合わせて表示させる。
・そのために、背景と
ゲームオブジェクトの画像を合成する
画像処理
画像処理
実装方針
・RGBAで読み込んだ画像のうち透明でない
ところの背景画像の色を全て数値的に0とする
・そのあと, 透明ではない部分を
背景画像に足し合わせる
画像合成
画像処理
・For文などで繰り返せば複数枚の
画像を貼ることができる
オブジェクト思考プログラミング
敵の挙動
・やりごたえのあるゲーム体験のため敵のAIは工夫をした。
角度的に回り込
んだ方が良さそ
うだ
こっち側に
プレイヤーがい
るから、
こっちの方向に
30フレーム追尾
する弾を打とう
UX
友達に遊んでもらって不満点改善点を上げてもらった
・ボス前が単調すぎる
・敵がストップする機能はアイテム制にしたい
・ボスのHPバーが欲しい
・レベルアップの演出が欲しい
・使えるキーが増えた時の演出が欲しい
・タイトル画面が欲しい
・敵の攻撃が1フレームに多段ダメージを
与える仕様になってるバグがある
・OPをもう少し2Dゲームっぽく
UX
映像をドット絵にする処理
・映像を縮小->拡大の処理をしてモザイク加工
・KMEANS処理で減色
ドット化
UX
レベルアップ演出とキーの表示
・レベルアップ演出でプレイヤーの
上達度を感じてもらうようにした
・使えるキーが増えた場合は
プレイヤーに見えやすい形で通達

More Related Content

Similar to GalaxyShooter.pdf

インタラクティブ・ストリーミングが変えるゲームコンテンツの未来
インタラクティブ・ストリーミングが変えるゲームコンテンツの未来インタラクティブ・ストリーミングが変えるゲームコンテンツの未来
インタラクティブ・ストリーミングが変えるゲームコンテンツの未来Takaaki Ichijo
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームsairoutine
 
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化UnityTechnologiesJapan002
 
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話Satoru Takai
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたKohei Kadowaki
 
[120915] igda sig indie9
[120915] igda sig indie9[120915] igda sig indie9
[120915] igda sig indie9IGDA Japan
 
【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)
【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)
【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)PlayCanvas運営事務局
 
ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】
ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】
ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】亘 中谷
 
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」Web Technology Corp.
 
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote MobbingRegional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote MobbingKeiji Kikuchi
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめDaisuke Nikura
 
SurfaceTextureとシェーダを使って遊んでみる
SurfaceTextureとシェーダを使って遊んでみるSurfaceTextureとシェーダを使って遊んでみる
SurfaceTextureとシェーダを使って遊んでみるTatsuya Matsumoto
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】Junya "Jun" Shimoda
 
ゲームに学ぶUXデザイン
ゲームに学ぶUXデザインゲームに学ぶUXデザイン
ゲームに学ぶUXデザインAkihiro Moriyama
 
ゲームクリエイター就職大作戦「Debugger」
ゲームクリエイター就職大作戦「Debugger」ゲームクリエイター就職大作戦「Debugger」
ゲームクリエイター就職大作戦「Debugger」Shun Okabe
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainerYuta Matsumura
 
Unity チュートリアル
Unity チュートリアルUnity チュートリアル
Unity チュートリアルMasaki Katoh
 
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところXNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところIGDA Japan
 
[DENX LT]ゲーム制作はじめよう
[DENX LT]ゲーム制作はじめよう[DENX LT]ゲーム制作はじめよう
[DENX LT]ゲーム制作はじめようDoshisha Univ.
 

Similar to GalaxyShooter.pdf (20)

インタラクティブ・ストリーミングが変えるゲームコンテンツの未来
インタラクティブ・ストリーミングが変えるゲームコンテンツの未来インタラクティブ・ストリーミングが変えるゲームコンテンツの未来
インタラクティブ・ストリーミングが変えるゲームコンテンツの未来
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲーム
 
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
 
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
[120915] igda sig indie9
[120915] igda sig indie9[120915] igda sig indie9
[120915] igda sig indie9
 
Enchant.js入門
Enchant.js入門Enchant.js入門
Enchant.js入門
 
【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)
【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)
【HTML5 Conference 2018】あんずフォト:PlayCanvasでリッチアドコンテンツを開発して発信してみた(2018/11/25講演)
 
ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】
ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】
ガリュウケンドー 大決戦プレゼンテーション 【ゲームクリエイター就職大作戦】
 
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
 
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote MobbingRegional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
Regional Scrum Gathering Tokyo 2023 Keiji Kikuchi Remote Mobbing
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
 
SurfaceTextureとシェーダを使って遊んでみる
SurfaceTextureとシェーダを使って遊んでみるSurfaceTextureとシェーダを使って遊んでみる
SurfaceTextureとシェーダを使って遊んでみる
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】
 
ゲームに学ぶUXデザイン
ゲームに学ぶUXデザインゲームに学ぶUXデザイン
ゲームに学ぶUXデザイン
 
ゲームクリエイター就職大作戦「Debugger」
ゲームクリエイター就職大作戦「Debugger」ゲームクリエイター就職大作戦「Debugger」
ゲームクリエイター就職大作戦「Debugger」
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
Unity チュートリアル
Unity チュートリアルUnity チュートリアル
Unity チュートリアル
 
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところXNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
 
[DENX LT]ゲーム制作はじめよう
[DENX LT]ゲーム制作はじめよう[DENX LT]ゲーム制作はじめよう
[DENX LT]ゲーム制作はじめよう
 

GalaxyShooter.pdf