SlideShare a Scribd company logo
Cocos2d-x と SpriteStudio を
使った音ゲー開発のお話
登壇者紹介
髙井 知
・ 株式会社ウェブテクノロジ R&D部
SpriteStudioチーム アルバイト
・ 東京工芸大学 芸術学部 ゲーム学科 4年
・ 遠藤研究室所属(ゼビウスで有名なあの人)
プログラミングを専門にゲームデザインについても勉強中
言語:Java,C言語,C#,C++,JavaScript
Cocos2d-xでの開発経験はいくつかあり
今日のお話について
「学生」がCocos2d-xとSpriteStudioを使って
ゲームを開発しましたよ というお話
■ ポイント
・ SpriteStudioの組込み
・ 学生視点からのCocos2d-xの使い心地
ゲーム内容
ゲーム概要や開発背景について
どんなゲーム?
■ タイトル 
Amane☆Dance
■ ジャンル
いわゆる音ゲー
■ ゲームコンセプト
かわいいダンスアニメ
ゲームのデモ
開発背景
■ なぜCocos2d-xとSpriteStudio?
・ C++の学習目的
→ C++でのゲーム開発未経験
・ SpriteStudioの改善
■ なぜ音ゲー?
音ゲーに興味があり自分で作ってみたいと思っていた
開発環境
■ Cocos2d-x Ver.2 を使用
→ 開発当時、Ver.3はα版だった
■ Microsoft VisualStudio 2010 を使用
■ windowsで制作
→ Macの情報がほとんどで
windowsでの環境構築には苦戦
■ ビルドはwin版とAndroid版
開発期間と人数
■ 制作期間
約3ヶ月 
180時間程度
■ 開発人数
2名
プログラマー1 ← ここを担当
デザイナー1
ゲームの必要要件
■ SpriteStudioのアニメーション表示
■ 曲とダンスの同期
■ 曲とノートの同期
■ プログレス表示と曲の終了を取得
※「ノート」とは音ゲーにおける入力判定の
  タイミングを表すもののこと
SpriteStudioについて
ちょっとだけ紹介
SpriteStudioとは?
■ 2Dスプライトアニメーションデータ作成ツール
■ マルチプラットフォーム
「Cocos2d-x」、「Unity」、
「UnrealEngine4」、「CoronaSDK」、
「HTML5」
ツールの見た目
でも難しいんでしょう?
SSPlayerを使えば
簡単に組込み可能!
SSPlayerとは?
■ SpriteStudioで出力したデータを
読み込んでくれるライブラリ
■ それぞれのエンジンに対応した
SSPlayerがある
ゲームの設計
どうやって要件を達成していったか?
ダンスモーションについて
■ SpriteStudioで作成
■ モーションは全て120フレーム
■ 曲ごとにモーションの順番を設定
アニメーションの表示
■ SSPlayerを使って表示している
→ SSPlayerを使うことで組み込みは楽
→ 組込み手順については後に説明
■ SpriteStudioのアニメーション表示
→ 達成!!
ダンスアニメのスピード
■ Step変更でダンスアニメのスピード調整
速い曲
遅い曲
1フレーズ
SSPlayerの
Stepを変更
曲とダンスの同期
■ 曲ごとにBPMを計測する
→ データとしてプログラム内に手打ち
■ BPMに合わせてアニメのStepを変更
→ SSPlayerのStep関数でアニメーションの
スピードを調整することができる
■ 曲とダンスの同期
→ 達成!!
ノートアニメーション
■ SpriteStudioで作成
■ アニメーションの途中で出現
■ タップするタイミングで色変更
→ 一部プログラムで制御
ノートとダンスの関係
■ ノートの出現パターンは1ダンスごとに設定
1 2
1
2
3
ダンス1 ダンス2
ノート出現の順番
■ 1フレーズを1セットで、曲ごとに順番を設定
1 2 321
1フレーズ
曲
ダンス1 ダンス2
曲とノートの同期
■ 出現のタイミングはダンスのStepで調整
■ 出現のパターンはダンスに依存
→ 結果的に曲と同期している
■ 曲とノートの同期
→ 達成!!
Cocos2d-x Ver.2のサウンド
■ Cocos2d-x Ver.2のサウンド事情について
・ サウンド周りの機能が必要最低限しかない
→ 再生時間の取得ができない
→ 再生終了のコールバックもない
・ 同時再生数の制限
SE:5個 BGM:1個
→ 拡張はCocos2d-xのソースの修正が必要
要件に必要なデータ
■ プログレス表示と曲の終了に必要なデータ
・ 曲ごとの再生時間
→ BGMが何分何秒で終わるか知りたい
→ データとしてプラグラム内で手打ち
・ ゲームプレイの経過時間
→ 曲がどれくらい進んだか知りたい
→ updateのたびにかかった時間を加算
プログレス表示と曲の終了
■ プログレス表示
→ ( 経過時間 / 再生時間 ) の割合で位置を決定
■ 曲の終了
→ ( 経過時間 > 再生時間 ) でスコア画面に遷移
■ プログレス表示と曲の終了の取得
→ 達成!!
SSPlayerの組込み
組込みの手順
バージョンについてのまとめ
※以降、SpriteStudioとSSPlayerの解説は
旧バージョン、新バージョンという呼び方で説明
名称 旧バージョン 新バージョン
Cocos2d-x Ver.2 Ver.3
SpriteStudio SpriteStudio 4 OPTPiX SpriteStudio 5
SSPlayer SSPlayer 4 SS5Player
SpriteStudioのバージョン
■ Amane☆Danceで使用している
SpriteStudioとSSPlayerのバージョンについて
・ 開発段階では旧バージョンを使用
→ 旧バージョンしかなかった
・ 完成後、新バージョンへと移行
→ 手間や変更点をまとめる目的
新バージョン組込み手順1
■ ダウンロード
http://www.webtech.co.jp/help/ja/spritestudio/download/tool_sample_download/#tool
■ Classesフォルダに追加
SS5Player.cpp
SS5Player.h
SS5PlayerData.h
ssShader_frag.h
SS5Playerファイル群
新バージョン組込み手順2
■ Ss5Converterでデータを変換
・ アニメデータから.ssbpファイルを作成
・ コンバータの使い方はwikiで
https://github.com/SpriteStudio/SpriteStudio5-SDK/wiki/コンバータの使い方
.png
.ssae
.ssce
.sspj
SpriteStudioで
出力
.ssbp
Ss5Converterで
作成
.png
.ssbp
Resourcesフォルダに
追加
新バージョン組込み手順3
■ サンプルコード
// SSDataをResourceManagerに登録
ss::ResourceManager* resourceManager = ss::ResourceManager::getInstance();
resourceManager->addData("sample.ssbp");
// SSPlayerを生成
ss::Player* ssPlayer = ss::Player::create();
// ImageList(png名)の読み込み
ssPlayer->setData("sample");
// "ssae名/アニメーション名"で呼び出し可
ssPlayer->play("sample/hoge");
this->addChild(ssPlayer);
新バージョン組込みの様子
■ ダンスアニメーション読み込みの部分
新バージョン組込みイメージ
ダンスアニメ
プロジェクト
SS5Player
変数 play(“アニメ名”)
で切り替え読み込み
画面表示
新バージョンのまとめ
■ ’SS5Player’
・ 組込みは難しくない
・ アニメーション切り替えが楽!
→ ただしアニメ数が増えれば分岐も増える
■ SpriteStudioを手軽に導入できる!
・SS5Player組込みの詳細wiki
https://github.com/SpriteStudio/SS5PlayerForCocos2d-x/wiki
新バージョンへの移行
■ 旧バージョンから新バージョンへの移行
・ 移行マニュアル
https://github.com/SpriteStudio/SS5PlayerForCocos2d-
x/wiki/PortingManualFromSSPlayerToSS5PlayerForCocos2dx
・ 旧バージョンからの移行もそれほど苦ではない
→ 変更点は多いが、理解すれば移行は簡単
※旧バージョンを拡張して使っている場合は
移行に手間がかかる可能性がある
まとめ
結局Cocos2d-xでのゲーム開発って?
Cocos2d-xでのゲーム開発
■ Cocos2d-xの触り心地
・ 初心者には少しハードルが高い
→ 環境構築や作業量の多さ
・ 拡張性は高い
→ オープンソースで小回りが利く
・ C++に多少の慣れが必要
→ C++独特の文法
開発過程でつまずいたところ
■ ビルド環境での挙動の違い
・ リソースの大文字小文字
→ windowsでは区別しない、Androidでは区別する
・ bool変数の初期化の忘れ
→ windowsではたまたまうまく動作
■ 思い込みの怖さ
開発で得られたもの
■ Cocos2d-xでの開発で得られたもの
・ C++の知識
→ ”ポインタ”の理解
・ プログラマとしての自信
→ 環境構築、コーディングの量
・ 外部ツールの有用性
→ 実装が楽、分業が可能
Cocos2d-x Ver.3について
■ 様々な機能の改善
・ サウンド周りが改善
→ コールバックがある
・ 環境構築も改善
→ フォルダ構造の変更、設定が楽に
・ SS5Playerもそのまま使える
これから始める方へ
今から始めるなら
Cocos2d-x Ver.3!
今後の課題
■ 今後やってみたいこと
・ Cocos2d-x Ver.3でもゲームを作ってみたい
→ Ver.2でしか作っていない
・ ADX2 LEを使ってみたい
→ サウンド周りのツール
・ Cocos2d-JSも触れてみたい
→ 環境構築が楽らしい
最後に
少し個人的なお話を
登壇者の宣伝
現在、髙井は
ゲーム業界に向けて就活中です!
作ってきたゲームの紹介
タイトル:Sonic Force
ジャンル:アクションゲーム
タイトル:だぶるしっぷ
ジャンル:アクションゲーム
・ 作品紹介のホームページ
http://greengardenhazuki.web.fc2.com/index.htm
ご清聴
ありがとうございました
おわり

More Related Content

PDF
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
PDF
Cocos2d-JSと物理演算で作る横スクロールアクションゲーム #scripty06
PPTX
Cocos2d-x(JS) ハンズオン #10「3D機能とVR機能」
PPTX
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
PPTX
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
PPTX
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
PPTX
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
PPTX
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
Cocos2d-JSと物理演算で作る横スクロールアクションゲーム #scripty06
Cocos2d-x(JS) ハンズオン #10「3D機能とVR機能」
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」

What's hot (20)

PPTX
Cocos2d-x(JS) ハンズオン #09「ラベル・テキストボックス」
PDF
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
PPTX
Cocos2d-x(JS)の紹介
PDF
Cocos2d-xによる最新ゲーム開発
PDF
Cocos2d-x 3D Extension
PDF
Cocos2d-JSはイケてる? イケてない?
PDF
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
PDF
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
PDF
cocos2d-xとCocosBuilderでゲームを作ってみよう
PDF
Unity用ADV制作ツール「宴」概要
PPTX
Cocos2d-x(JS) ハンズオン #04「タッチイベントの使い方」
PPTX
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
PPTX
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
PDF
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
PDF
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
PDF
cocos2d-x公開講座 in 鹿児島
PDF
Cocos Code IDEを使ってみた
PDF
cocos2d-xを利用したパズドラ風ゲームの作成
PDF
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
PPTX
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #09「ラベル・テキストボックス」
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
Cocos2d-x(JS)の紹介
Cocos2d-xによる最新ゲーム開発
Cocos2d-x 3D Extension
Cocos2d-JSはイケてる? イケてない?
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
cocos2d-xとCocosBuilderでゲームを作ってみよう
Unity用ADV制作ツール「宴」概要
Cocos2d-x(JS) ハンズオン #04「タッチイベントの使い方」
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
cocos2d-x公開講座 in 鹿児島
Cocos Code IDEを使ってみた
cocos2d-xを利用したパズドラ風ゲームの作成
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Ad

Similar to Cocos2d-xとSpriteStudioを使った音ゲー開発のお話 (20)

PDF
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
PDF
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
PDF
エターナらないゲーム開発
PPTX
Michael Tedder @ 10th Pleasant 100 persons with Hokkaido vol.2
PDF
Scratchと子供達の5年間
PDF
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
PPTX
Game Design in Society (in Japanese)
PPTX
横浜国立大学PCサークルSCITEXの活動 in SGF2012
PPTX
Cocos sharpでゲーム開発してみました
PDF
開催趣旨・00年代イントロ・パネルディスカッション資料
PDF
Cocos最新情報(2015/3/13)
PDF
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
PDF
Cocosサービスについて
PDF
cocos2d-xを使った開発で効率よく多職種連携したい話
PDF
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
PDF
Cocos2d-xおよび関連サービスについて
PDF
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
PDF
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
PDF
Unity 名古屋セミナー [Sprite Studio]
PDF
20131123 playgroundハッカソン
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
エターナらないゲーム開発
Michael Tedder @ 10th Pleasant 100 persons with Hokkaido vol.2
Scratchと子供達の5年間
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
Game Design in Society (in Japanese)
横浜国立大学PCサークルSCITEXの活動 in SGF2012
Cocos sharpでゲーム開発してみました
開催趣旨・00年代イントロ・パネルディスカッション資料
Cocos最新情報(2015/3/13)
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocosサービスについて
cocos2d-xを使った開発で効率よく多職種連携したい話
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-xおよび関連サービスについて
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
Unity 名古屋セミナー [Sprite Studio]
20131123 playgroundハッカソン
Ad

Cocos2d-xとSpriteStudioを使った音ゲー開発のお話