Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Unity+NCMBで作るカスタムステージのオンライン共有システム
Search
Takaaki Ichijo
July 24, 2016
Technology
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unity+NCMBで作るカスタムステージのオンライン共有システム
NIFTY Cloud mobile backendを使ってUnityのゲームにプレイヤーがステージを作って共有できるシステムを作ってみましょう。
Takaaki Ichijo
July 24, 2016
More Decks by Takaaki Ichijo
See All by Takaaki Ichijo
Unity対応してるmBaaS 全部紹介する(ハイパーリンクが機能してない版)
takaaki_ichijo
0
1.8k
クロスフェードやランダム再生などのサウンド演出開発をADX2で省力化する : Gotanda.unity 9
takaaki_ichijo
0
180
Unity x NCMBで小規模ゲームアプリへのソーシャル要素導入
takaaki_ichijo
0
7.9k
UnityからREST APIを叩く~NCMBでランキング機能プラグインを作った話~
takaaki_ichijo
0
990
Other Decks in Technology
See All in Technology
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
150
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
340
Screen Lens - 今見てる画面を翻訳する
komagata
0
240
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
120
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
160
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
150
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
420
Omarchy Quattro の日本語設定周り
simosako
2
140
AI時代に顧客へ最速で価値を 届けるための試行錯誤 〜「AI × マネジメント」領域におけるmentoのケース〜
posterkeisuke
0
110
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
480
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
150
2026_devsumi_ozono.pdf
o3
2
350
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
800
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Writing Fast Ruby
sferik
630
63k
Deep Space Network (abreviated)
tonyrice
0
300
BBQ
matthewcrist
89
10k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
330
Fireside Chat
paigeccino
43
4k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Side Projects
sachag
456
43k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Optimizing for Happiness
mojombo
378
71k
The Language of Interfaces
destraynor
162
27k
Transcript
Copyright © NIFTY Corporation All Rights Reserved. NCMBで作る カスタムステージの オンライン共有システム
NCMB広めたいおじさん 一條 貴彰
Copyright © NIFTY Corporation All Rights Reserved. 2 自己紹介
一條 貴彰 – 個人ゲーム開発者 – ゲーム開発ツール専門コンサル 経歴 – 2010年~2015年 サラリーマン 株式会社CRI・ミドルウェア – 2015年7月~ フリーランス 元ソルジャー 今はNCMBおじさん Unite 2016で登壇したり ニンテンドー3DS向けのゲーム作ってます→ 趣味 – 飲酒(クラフトビール) – 電タバ – 80’s洋ポップス レアレコード収集 / DJ – 推し刀は鯰尾藤四郎くん Twitter:@Takaaki_Ichijo
Copyright © NIFTY Corporation All Rights Reserved. 3 Nifty Cloud
mobile backendと私 役割 ゲーム開発者とのリレーション構築 – 機能の紹介 – 使い方の紹介 – トラブったときの支援 現状 NCMB広めたいおじさん(エヴァンジェリスト)見習い – 仕事始めてから4ヶ月目 とりあえずUnityでサンプル作ったり、 ブログを書いたり各種勉強会で紹介したり
Copyright © NIFTY Corporation All Rights Reserved. 4 is 何
Copyright © NIFTY Corporation All Rights Reserved. 5 ひところ ゲームにオンライン機能を
簡単に追加できる
Copyright © NIFTY Corporation All Rights Reserved. 6 スマホアプリの バックエンド機能が
開発不要になる クラウドサービス SDKを導入するだけ で利用できる ※SDKはUnity,iOS ,Android,JavaScriptの4つを提供しております RESTAPIもあるよ! 提供中の機能 いわゆるmBaaS
Copyright © NIFTY Corporation All Rights Reserved. 7 バックエンドの準備がいらない ターミナル
cd ls ssh
Copyright © NIFTY Corporation All Rights Reserved. 8 オンラインに関する機能の提供 ユーザー認証機能
プッシュ通知配信 スクリプト機能 • ガチャなどのロジックをサーバー側で実行、バックエンドはNode.js
Copyright © NIFTY Corporation All Rights Reserved. 9 オンラインに関する機能の提供 ステージコメント機能
ゴースト機能 ランキング データストア機能 文字データや数値データをサーバーに保存し、 アプリから横断的に利用できる
Copyright © NIFTY Corporation All Rights Reserved. 10 オンラインに関する機能の提供
ファイルストア機能 画像・動画・音声その他ファイルを保存できる Unity SDKから使えるようになったばかり
Copyright © NIFTY Corporation All Rights Reserved. 11 最近の事例 「ひとりぼっち惑星」
放置ゲー+一方的メッセージング データストア機能を使って、 メッセージングシステムを実現 開発者はUnity初心者で サーバーエンジニアではない人。
Copyright © NIFTY Corporation All Rights Reserved. 12 NCMB対象
個人ゲーム・アプリ開発 お仕事で、小規模チームでアプリを開発す る人 サーバー、バックエンド分からない人
Copyright © NIFTY Corporation All Rights Reserved. 13 NCMBで作る カスタムステージの
オンライン共有システム from Unibook 5
Copyright © NIFTY Corporation All Rights Reserved. 14 概要
NCMBのデータストア機能 文字・数値が保存できる ↓ ゲーム内オブジェクトの座標を保存できる ↓ マリ◯メーカー的なシステムが作れるのでは
Copyright © NIFTY Corporation All Rights Reserved. 15 サンプル作った 「Bowling
City」 黒塗りの高級車と衝突するゲーム (ボーリングピン) データストア機能を使って、 NCMBで作る カスタムステージの オンライン共有システムを実現 ※サンプルなのでストア配信してません github: https://github.com/TakaakiIchijo/BowlingCity
Copyright © NIFTY Corporation All Rights Reserved. 16 カスタムステージ要素 ボーリングピンの配置ができる(簡易ステージエディット)
配置したデータをNCMBでサーバーに保存 別のユーザーがそのステージを遊べる
Copyright © NIFTY Corporation All Rights Reserved. 17 NCMBのセットアップ手順 STEP1
Unity WEBでサインアップして・・・ 認証キーをとって・・・
Copyright © NIFTY Corporation All Rights Reserved. 18 NCMBのセットアップ手順 Unity
STEP2 認証キーをUnity内で設定
Copyright © NIFTY Corporation All Rights Reserved. 19 セットアップ手順 試しにこんなコードを書く
Copyright © NIFTY Corporation All Rights Reserved. 20 セットアップ手順 NCMBのサーバーにデータが保存できた
あとは煮るなり焼くなり
Copyright © NIFTY Corporation All Rights Reserved. 21 ユーザー管理(ログイン・登録)はこう
Copyright © NIFTY Corporation All Rights Reserved. 22 ステージエディタモードを作る 各自
ゲームの内容によって、ステージエディタモードはぜんぜん違う ・シューティング? ・横スクロール? ・パズル?
Copyright © NIFTY Corporation All Rights Reserved. 23 ステージデータをセーブする
データストア機能で保存できるデータ 文字列 ABC 配列 ["orange", "apple", "grape"] 数字 123 日付 2013-09-06T01:51:03.606Z 真偽値 true または false| オブジェクト {"name":"orange"} 緯度経度(位置情報) 33.857619,122.378986
Copyright © NIFTY Corporation All Rights Reserved. 24 手順
GameObjectの座標(Transform.position)を シリアライズしてセーブ シリアライズ方法:オブジェクトの位置情報である Vector3 の値を double[] に変換して配列にする 今回のゲームで保存するデータ プレイヤーの名前 : string userName ボーリングピンの座標 : List<double[]> pinPosArray
Copyright © NIFTY Corporation All Rights Reserved. 25 実際にステージデータをセーブ
NCMBが用意している"NCMBObject"を使って実装 void SaveStageDataToNCMB(string userName, List<double[]> pinPositionList) { NCMBObject ncmbObject_PinPosition = new NCMBObject("PinPosition"); ncmbObject_PinPosition.AddRangeToList("PinPositionList", pinPositionList); ncmbObject_PinPosition.Add("UserName", userName); ncmbObject_PinPosition.SaveAsync((NCMBException e) => { if (e != null) { //エラー処理 } }); }
Copyright © NIFTY Corporation All Rights Reserved. 26 管理画面 1行が1つのステージ
ボーリングピンの位置情報
Copyright © NIFTY Corporation All Rights Reserved. 27 ステージデータをロード void
LoadNewestFromNCMB() { NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>(“PinPosition”); //検索のためのクエリ// query.OrderByDescending(“createDate”); //日付の降順にソート// query.Limit = 1; //先頭の要素だけを取得する// query.FindAsync((List<NCMBObject> objList, NCMBException e) => { if (e != null) { //データは見つからなかった } else { ArrayList arrayList = (ArrayList)objList[0]["PinPositionList"]; for (int i = 0; i < arrayList.Count - 1; i++) { ArrayList list = (ArrayList)arrayList[i]; GeneratePin(list); //リストから座標データを取り出し、ゲーム中にボーリングピンを出現させる。// } } }); }
Copyright © NIFTY Corporation All Rights Reserved. 28 完 これで友だちの間でステージデータが共有できる!
Copyright © NIFTY Corporation All Rights Reserved. 29 作ったステージが何回遊ばれたかを記録
指定したキーの値をインクリメント(カウントアップ)する public void CountUpPlayedNumber(currentStageName) { NCMBObject obj = //名前が一致するデータを取得// obj.Increment ("PlayedNumber"); obj.SaveAsync (); } さらにできること ユーザーごとにステージデータを一覧表示する 評価ランキングを作る ファイルストア機能で、スクリーンショットを載せる etc….
Copyright © NIFTY Corporation All Rights Reserved. 30 おさらい
NCMBとは ゲームにオンライン機能を簡単に追加できる できること データの保存 ファイルの保存 その応用範囲は未知数!
Copyright © NIFTY Corporation All Rights Reserved. 31 料金体系 とりあえず無料プランあります
個人ゲームアプリの規模なら概ね無料で行ける…?(未検証)
Copyright © NIFTY Corporation All Rights Reserved. 32 使いやすいところだけつまみ食い ニフティクラウド
mobile backendを使われているクライアントの多くは プッシュ通知をメインで使われています。 また、データストアやファイルストアだけなど 一部の機能だけを使ってもらっても問題ありません。
Copyright © NIFTY Corporation All Rights Reserved. 33 最後に ニフティクラウド
mobile backendで 皆さんもオンライン機能を実装しませんか?