Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ゲームを制作しながらどうやって開発環境を整えるか?“現場“のツール作成手法

 ゲームを制作しながらどうやって開発環境を整えるか?“現場“のツール作成手法

GREE Tech Conference 2023で発表された資料です。
https://techcon.gree.jp/2023/session/TrackB-1

gree_tech

October 13, 2023
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. ゲームを作るデータを作る • 絵を作るツール • プログラムを書くツール • ゲームバランスや レベルデザインを作るツール 1.データを作る 11

    なぜツールを作るのか? 010101010 100101010 001010100 010101010 01000
  2. 1.同じゲームは2つと無い CharacterAssetConcierge • 1ボタンでとてもたくさんの作業を するツール • 「ららマジ」でしか使わないキャラク ターのアセットを作るために存在し ている 55

    1ボタンでやっている処理一覧 Bake退避データのインポート Spineのインポート Bakeデータ作成  defaultのダメージコリジョンの作成  defaultのトランスフォームアニメーション  新しいRootモーションに更新する アニメーターの作成  (アニメーションクリップの生成)  defaultのメカニムをコピー トランスフォームアニメーション作成 エフェクトのSpineデータインポート エフェクトのアニメーター作成 Viewのプレハブをつくる  インスタンス化  飛び道具のコピー  モーションエフェクターのコピー  コリジョンのコピー  ステータスエフェクトをのせる  ボーンを減らす UIViewのプレハブを作る 容量オーバーのBakeを退避 なぜ「現場」でツールをつく るのか?
  3. 2.「現場」のことは「現場」でしかわからない FireCommtterが生まれたあらすじ • ファイルを最新に出来ない ◦ Unityは時々勝手にmetaファイルを変える ◦ 変更されたファイルがローカルにあると gitはpullしない ◦

    git checkout .などでファイルを戻さなければいけないが・・・ ▪ アートさんはわからない • コマンドは難しいし • GUIツールでも難しい • 自分で変えたわけではない ◦ じゃあ、全部git checkout .で「燃やし尽くして」から pullすればいいじゃん! ▪ →すごく乱暴だけど上手くいった。みんな pullできるようになった。 61 なぜ「現場」でツールをつく るのか?
  4. 2.「現場」のことは「現場」でしかわからない FireCommtterが生まれたあらすじ • ファイルをアップロードできない ◦ アップロードするためには・・・ ▪ git checkout -b

    feature/hogehoge  ←ブランチを切ってるブランチ名を決めなきゃだ ▪ git add hogeFile.unity ←ファイルをステージしてる。ステージって何? ▪ git add hogeFile2.unity ←全部ステージしなきゃいけない ▪ git commit -C “ファイルを更新” ←ちゃんとコミットログ書いて欲しい ▪ git push origin feature/hogehoge ←ネットにアップしてる ▪ Githubでプルリクを出す ◦ どうか1ボタンで・・・・・ 62 なぜ「現場」でツールをつく るのか?
  5. 2.ゲームと同時に作る データを作るツール • 最初はどういうゲームを作ればいいかわからない • エンジニアが企画を聞いて最低限で実装 ◦ 実装を作る時にツールも実装 ◦ 完璧でなくていいし、未完成で良い、方向性が正しいか見てもらうのが重要

    • ゲームの仕様変更に合わせてデータを作るツールを改善していく ◦ 最初から作りすぎてしまうと変更に時間がかかる ◦ 未完成の方が軌道修正のコストが小さくてすむ 76 時間がない!
  6. 共通化が成功したツール • OniUI ◦ MVCで言うところのViewのレイヤー を完全に切り分けるための UIライブ ラリ ◦ 詳しくはCEDEC2022のUIの講演で

    も紹介しています →UIの開発スピードを高速化させる 仕組み ~ヘブンバーンズレッドにお けるUnityを用いた事例~ https://cedil.cesa.or.jp/cedil_s essions/view/2651 このツールで有効だった 手段をいくつか・・・ 89 共通化出来ない!
  7. 3.前のプロジェクトを継承しゆっくり育てる! 「ららマジ」でのOniUI • インターフェイスのコードを拡充 • UITechさんによるViewのコードを書く場所を追加 • UIのベースクラスの自動生成 Project WでのOniUI

    • UGUIへの置き換え • カルーセルの機構追加 • イケてるバーチャルスクロール 94 Project A Project X らら マジ Project W 共通化出来ない!
  8. 参考 [CEDEC2022]ヘブンバーンズレッドにおけるLuaの活用事例 
 https://cedil.cesa.or.jp/cedil_sessions/view/2697 
 [CEDEC2022]UIの開発スピードを高速化させる仕組み ~ヘブンバーンズレッドにおけるUnityを用いた事例~ 
 https://cedil.cesa.or.jp/cedil_sessions/view/2651 


    [CEDEC2018]『アナザーエデン 時空を超える猫』における“ツール運営“事例 〜開発ツールの運用で学んだこと〜 
 https://cedec.cesa.or.jp/2018/session/detail/s5ab9f3ac0efa3.html 
 [Unite 2017 Tokyo]Unityで出来る『見える開発』のススメ ~スマホゲーム「ららマジ」開発事例~ 
 https://events.unity3d.jp/unitetokyo/2017/session-lineup.html#session81 
 [Unity Sync2022]『ヘブンバーンズレッド』の大規模開発と高速イテレーションを支える、自作ツール群の秘密 
 https://events.unity3d.jp/sync/session/8/ 
 Unityで開発しているゲームの単体テストをCI環境で運用している話 
 https://labs.gree.jp/blog/2015/12/15392/ 
 [WFS Tech Talk #1]ららマジでしかできない!?キャラクターアセット最適化事例 
 https://www.slideshare.net/greetech/ss-149149594 
 [GREE Tech Conference 2022] ヘブンバーンズレッド × バトル × アドベンチャー 〜WFSのゲーム制作・演出の最大化手法〜 
 https://techcon.gree.jp/2022/session/TrackB-2 
 
 99
  9. 101