Save 37% off PRO during our Black Friday Sale! »

Unityでの開発事例

 Unityでの開発事例

新卒エンジニア向け研修でお話しました。
利用したものから社外秘情報を抜いています。

1d1580fb0945b0ffadff18e28bead3c5?s=128

いも

May 10, 2021
Tweet

Transcript

  1. Unityでの開発事例 2021/04/22 井本 大登

  2. 自己紹介 • 井本大登(imo) • https://adarapata.com • Unityクライアントエンジニア • テストとかDIとかの話をよくします •

    ガルパン
  3. アジェンダ • Unity開発事例 • Unityでの開発で考えること

  4. 開発事例 社外非公開情報なので見せられないよ!

  5. チームメンバーは大体Unityを触る • エンジニアはもちろん • デザイナも企画もUnityを使う • 「リソースを作ったのでUnityに追加してください」というフローはない(多分) • 自分で作って自分で確認するのが一番早い

  6. 2D 3D C# Scripting Sound Timeline UI Unityの機能を使って各メンバーが開発を行う

  7. エンジニアがやっていること • コンテンツを作る • コンテンツを作れるような仕組みを作る • 効率的に作業できるような自動化

  8. 2D 3D C# Scripting Sound Timeline UI プロダクトを作りやすいようにカスタマイズしていく ステージ エディタ

    ファイル チェッカー 実機 デバッガ
  9. ex.井本が主にやっていること • アウトゲーム全体の基盤システムの作成 ◦ 画面遷移の仕組みとか • エンジニアが高速に開発できるような整備 ◦ 開発ルールなどの策定 ◦

    テストコードの導入でコード品質の担保及び向上 • 機能開発 ◦ ゲームとしてこんなのがほしいとか
  10. Unityでの開発で考えるべきこと • 統合開発環境の強みを活かす • みんなでUnityを触るということを理解する

  11. 統合開発環境である強みを活かす • 複数の職能の人たちが共通言語で会話できるのは開発効率がよい ◦ Prefabを触ってください、Sceneを確認してくださいで伝わるのはよいこと ◦ 専門領域ごとのUnity知識が共有できるとチーム全体の糧になる ◦ エンジニアがUI組んだりバランス調整したってよい •

    一緒にモノを作るという環境を作りやすい ◦ 目の前でUI作って目の前でコードを直して目の前でデータを修正する ◦ 一緒に作るのが一番認識の齟齬と手戻りを抑えられる ◦ 一体感を得られることはプロダクト開発で重要
  12. みんなでUnityを触るということを理解する デザイナがUIレイアウトを編集し、プランナーがキャラクターのデータを調整することが常に 行われる世界。 PrefabやSceneに素朴にコンポーネントをアタッチしてコードを書いていくと、同一のファイル への変更差分が発生してコンフリクトが起きることもままある。

  13. Player.prefab レイアウト修正 コード修正 バランス調整 無理無理無理無理 衝突

  14. 適切なレイヤリングを意識する 各職種が何をやりたいのか、そのためにはどの部分を扱えば良いのか理解し、コードを分解していく。 • データとロジックの分割、切り出し ◦ ScriptableObject、Excel、json、etc... • 巨大なMonoBehaviourからの脱却 ◦ デザイナの触りたい

    UI機能の領域とゲームロジックを切り分ける ◦ MonoBehaviourを継承すべきかも考えるべき 最終的には責務を分けたコードの分割統治が大事
  15. レイヤーを分けること ≠ 無関心でいること 「言われた通りにデータを調整できるようにしたから上手くいく」はほぼない。 相手がどのようなワークフローなのかを知らないとそもそも適切なレイヤーを切ることはできない。 • 相手がUnityをどう使おうとしているのか理解すること ◦ どの機能を使おうとしている?どんなミスが起こりうる? ◦

    故にUnityの知識も大事 • プロダクトがどのような性質なのかドメインを理解すること ◦ 格闘ゲームと音楽ゲームでは設計が根本から異なる
  16. まとめ • みんなでUnityを扱う強みを活かそう • 競合を避けるためにレイヤーを意識しよう • レイヤーを理解するために各職種の仕事を理解しよう

  17. 質疑応答