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

ゲーム開発研修(ハンズオン実践編)【ミクシィ22新卒技術研修】

B16717ef4b7aab0b253d933c3934f280?s=47 mixi_engineers
PRO
April 25, 2022
33

 ゲーム開発研修(ハンズオン実践編)【ミクシィ22新卒技術研修】

22新卒技術研修で実施したゲーム開発研修の講義資料(ハンズオン実践編)です。
動画も後日公開予定です。

※こちらの資料のハンズオン用リポジトリは公開していないので、ハンズオンを実際に試していただくことはできません。

<< ゲーム開発研修資料一覧 >>
イントロダクション
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-00-introduction

Unity基礎編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-01-quaternion

Photon編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-02-photon

ハンズオン学習編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-03-hands-on-study

ハンズオン実践編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-04-hands-on-practice

プログラミング教育LT編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-05-lt

C#ハンドブック編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-06-handbook-c-number

VS Codeセットアップ編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-07-vs-code-setup

Unity実装テクニック編
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-08-unity-technic

アイテム取得課題 成功例
https://speakerdeck.com/mixi_engineers/2022-game-development-training-number-09-survival-athletic-answer

B16717ef4b7aab0b253d933c3934f280?s=128

mixi_engineers
PRO

April 25, 2022
Tweet

More Decks by mixi_engineers

Transcript

  1. 22's 新卒者研修ゲーム開発 action game development with Unity <2.実践編><配布用> 株式会社ミクシィ

  2. このパートの あらすじ 1. マルチプレイアクションゲームの基本機能が入ったプロジェクト を配ります 2. 今あなたたちグループは凄腕プロデューサーに選抜された制作チームです 3. 示される要求に沿ったゲームの実現に取り組んでください 4.

    これはグループごとで相談連携して進めるグループワークです 5. 分担作業はしてもしなくても OK、進みがいい人は経験の少ないメンバーを支えてください 6. 今回は別々の制作進捗でも通信プレイできるように、フィールドやオブジェクト、コントローラー classは基本的そのままに、 今日の学習を踏まえて、ローカル判定部分と要所のデータ通信連 携を作っていきます 7. ① まずはシングルモードで自分の成果を試していきましょう 8. ② ある程度できたら実際にメンバーで繋いで確認しましょう(エディタのままで OK、あえて buildを作ると通信もローカルで試せます) 9. ③ 概ね出来たらメンバーで要素を確認しながら思いっきりプレイしてみましょう(プレイヤーが 楽しめるように配慮して作るということ!)(作り手が楽しむということ!) 10. ④ 最後にどこまで取り組めたか発表して いただきます
  3. 題材 /ルール 1. ゲームジャンル a. アスレチックx人狼系アクション b. プレイ人数3人以上(人数不足時はビルドで増やす) 2. アクションルール

    a. プレイヤーは別々の初期位置からスタートしフィールドを探索する b. プレイヤーは「体力」があり「ダメージ」を与えて減らすことができ 0になると行動不能になる c. フィールドには「宝箱」が隠されていて拾得すると何らかのアイテムが取得できる d. プレイヤーは「アイテムバッグ」メニューを持ち、アイテムの拾得、使用、設置(捨てる)ができる e. 「宝箱」は開封後一定時間経過すると再びフィールドのどこかに出現するが有限個数 f. 落下するとダメージがある場合がある 3. 人狼ルール a. プレイヤーには役割が与えられ「正直者」と「ならず者」のいずれかに別れるが自分しか知り得ない b. 「正直者」はフィールドからアイテム「ポイント」を収集し「装置」※ GOAL地点 に「基準値」※ 10つ分  与えるとゲームクリアする c. 「ならず者」は「正直者」を殲滅するとゲームクリアする d. 「正直者」は「手錠」が使えて誰かを拘束することができ「正直者」なら誰でも解除できるが拘束中は 行動不能と扱われあわやゲームオーバーする 4. ユーザビリティ a. 「メンバーリスト」を使うと対象者の場所がわかり協力しやすい b. 「ミニマップ」があるとメンバーの場所がわかり協力しやすい c. ズルはできない方がいい
  4. 既に実装が ある部分 1. マルチプレイルーム入退室 2. ゲームフィールドシーン入退場 3. キャラクターのスポーン(出現)、行動とステータスの同期 4. アイテムバッグの呼び出し、リスト表示、地面に置く

    5. アイテムのスポーン(出現) 6. 人狼役割分け 7. ゲームクリア判定 8. プレイヤーステータスで死活判定 9. 仕掛け爆弾の偽装と開封者へのダメージ
  5. BASIC MISSION 1. まず手始めに a. 「i」キーを押したら前方のアイテムを拾えるようにしたい b. 拾った「回復アイテム」をアイテムバッグから使えるようにしたい c. メンバーリストのボタンを使って仲間の場所がわかるようにしたい

    d. 3D空間プレイヤー付近に体力ゲージを付けたい そのほかは要求から組み立てていきましょう 実装方法ガイド • physics系 ◦ アイテム検出は CharacterItemPickController.ItemTest()を実装する、 前方レイキャスト BoxColider、 tag=="item"、検出アイテムリストの iキー取得は実装あり • UI系 ◦ アイテム使用は GameScne.OnUse() を実装する、回復は player.Cure()、データ消費は ItemFactory.cs UseitemInstance呼び出し ◦ 体力値はplayer.status.hp、uiは ui_game.prefab(ゲージ Sliderは自分で作成してね) • 3D計算系 ◦ メンバーリストclickで対象を見る、MemberlistScene.cs MenuCommand.method がbuttonイベント
  6. EXTRA MISSION 1. physics系 a. パンチ攻撃で小範囲ダメージを与えたい: addforce、ダメージ player.rpctarget.AddDamage() b. 仕掛け爆弾で大範囲爆風ダメージにしたい:爆発

    addexplosionforceエクスプロージョン( +範囲ダ メージ) 2. UI系 a. ミニマップを設けてメンバーの位置把握をしたい  GameSystemManager.characters b. 怪しい人物には自分だけ見えるマーカーを付けたい 例>ネームクリック> 3D座標を示す任意 UI または3Dオブジェクト付与など 3. 3D計算系 a. アイテム「手錠」使うイベントに、適応先検出 Spherecast と効果 player.rpctarget.AddFreeze を実 装したい b. メンバーリストの選択対象の方向を示す 3D空間矢印と距離を表示したい c. 宝箱位置をサーチして示したい 4. 監視系(主にMasterServer Admin的役割) a. 最高速度監視  => 自画面で分かるよう表記 PhotonRigidbodyViewExtend b. アイテム所持使用監視  => 自画面で分かるよう表記、  iteminstance.keyはunique c. オブジェクト干渉距離確認  => 自画面で分かるよう表記 ズレ多少考慮しつつ raycast  d. 体力監視、行動不能整合性確認  => 自画面で分かるよう表記  player.status
  7. アイテム 仕様 1. 「ポイント」 :「装置」に与えると加点する、「正直者」専用 2. 「包帯」 :使用したプレイヤーは「ライフ」が少し回復する、「正直者」専用 3. 「救急セット」:使用したプレイヤーは「ライフ」が大きく回復する、「正直者」専用

    4. 「手錠」 :使用すると目の前のプレイヤーを行動不能にする、「正直者」は取り外せる、「正直者」専用 5. 「仕掛け爆弾」:使用すると「宝箱」に偽装してフィールドに設置でき「正直者」が開けると「ダメージ」をうける、「な らず者」は再取得できる、「ならず者」専用
  8. 取り組み にあたって 1. 知識/資料は足りていますか a. 指示の範囲は限定的なので今日の研修内容と、配布しているハンドブックを活用しましょう 2. 開発のために大切なことのおさらい a. 要求を汲み取ること、情報を整理することの重要さ+楽しませることへの結びつけ を意識してどう

    作ればいいかを注意深く作り上げてください b. 過剰に演出やエフェクトを作る必要はありません(ネタで入れるのはいいですが)が、状況がプレイ ヤーに伝わるよう配慮しましょう c. どこをコピペすればいいか、どの処理だけ対応すればいいかを限定しすぎると受け身作業になっ てしまい喜ばれるコンテンツになりづらいでしょう × d. チート攻略機能をつけて自分がクリアしやすくすることが目的にならないよう留意しましょう
  9. 成果と 発表に ついて • メンバーの課題進捗は揃っていなくて構いませんが、ないとプレイに不足がある要素はなるべく全員実装 しましょう • 成果発表ではグループで対応項目にチェックをつけ、またちょっとしたスクショもつかって作った機能の様 子を紹介しながら各チーム 5分くらい喋って欲しいです