Slide 1

Slide 1 text

Unity 1週間ゲームジャム 「密」 るっちょ (@ruccho_vector)

Slide 2

Slide 2 text

自己紹介(ざっくり) • 個人でゲーム開発をしてる学生です • ドット絵とか描いてます (↑「地下楼」デモ版配信中)

Slide 3

Slide 3 text

どんなゲーム?

Slide 4

Slide 4 text

どんなゲーム? • 「密集と分離を繰り返すシューティング」 • 総合16位、雰囲気7位、絵作り13位

Slide 5

Slide 5 text

開発スケジュール • 月曜日 基礎の絵作り、プレイヤーの基本動作 • 火曜日 射撃動作、タイトル決定、WebGLビルドテスト • 水曜日 AI作成開始、UI • 木曜日 分離アクション、オープニング • 金曜日 UI、アニメーション、チュートリアル、バグ潰し、最適化 • 土曜日 SE、リスポーン、勝敗 • 日曜日 BGM、バグ潰し、最適化、公開作業

Slide 6

Slide 6 text

プレイヤー基本動作の作成 AI作成、UI サウンド、最適化、バグ潰し ゲームの流れの完成 開発スケジュール(ざっくり) 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日 日曜日

Slide 7

Slide 7 text

何の話をしよう? • UIの話 • 絵作りの話 • オンラインでやりたい • 観察が楽しい • AIが強い • むずかしい • ボコボコにされた

Slide 8

Slide 8 text

何の話をしよう? • ゲームデザインの話 • どうやって作ってるの?的な話 • URP / Lights 2D について • UIについて • 最適化について • ふりかえり

Slide 9

Slide 9 text

ゲームデザインの話

Slide 10

Slide 10 text

ゲームの流れ 仲間を増やす 接敵する 競り負ける 勝利 独占する 敗北 全滅する

Slide 11

Slide 11 text

密集と分離 密集状態 分離状態 体力 多い 少ない 総攻撃力 弱い 強い 機動力 的がデカい 的が小さい

Slide 12

Slide 12 text

「観察」

Slide 13

Slide 13 text

「観察」というモチーフ • AIを実装したあと、AIだけで戦わせてみた • するとこれが結構面白い!! • 「シャーレの中の細菌を観察している」という設定 • 細菌に顔を付けたり動かしたりして実在感や愛着感を強調!

Slide 14

Slide 14 text

どうやって作ってるの?的な話

Slide 15

Slide 15 text

絵作りの話 主にLights 2D

Slide 16

Slide 16 text

Lights 2D is 何 • Universal Render Pipelineの機能 • スプライトに光の表現を加える • まだExperimental

Slide 17

Slide 17 text

Lights 2D なし

Slide 18

Slide 18 text

Lights 2D あり

Slide 19

Slide 19 text

Lights 2D かんたん絵づくり講座~

Slide 20

Slide 20 text

①Circleを置く

Slide 21

Slide 21 text

②ライトを置く

Slide 22

Slide 22 text

③影を付ける

Slide 23

Slide 23 text

④ダメ押しのポストプロセス

Slide 24

Slide 24 text

ゲーム内で使ったスプライト素材

Slide 25

Slide 25 text

まるとしかくでゲームは作れる(?)

Slide 26

Slide 26 text

余談:Lights 2D x WebGLの罠 URPテンプレートでプロジェクト作ると ここの設定がURP設定を上書きするの で注意…… (WebGLビルド後にLights 2Dが効か なくなって超焦った)

Slide 27

Slide 27 text

UIの話

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

①とりあえずフェードする • 画面切り替えが一瞬だとなんとなくダサいのでフェードしたい • めんどい

Slide 30

Slide 30 text

②ボタンアニメーション • uGUI ImageのFilledでアニメーション • 線形補間(Mathf.Lerp)でAnimator要らずのイージング

Slide 31

Slide 31 text

勢力ゲージは? これ

Slide 32

Slide 32 text

勢力ゲージは? • これもImageのFilled • 同じサイズのImageを重ね、そ れぞれの色とFillAmountを調 整 • 座標計算が不要

Slide 33

Slide 33 text

AIの話

Slide 34

Slide 34 text

細菌のほとんどはAIで動く • ステージにいる105の細菌のうち、プレイヤーが動かすのはたった1 つ • あとは全部AI

Slide 35

Slide 35 text

AIのつくりかた? • ステートマシン? • Behavior Tree?

Slide 36

Slide 36 text

わからないのでコード手打ちしました

Slide 37

Slide 37 text

AIのつくりかた? ①画面内の敵を取得して ②体力、距離、サイズ、仲間の数などで重みづけ ③優先度の高い敵をターゲットに設定 ④追いかけて撃つ 上記に加え、状況に応じて密集・分離を行う

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

AIのつくりかた? • 手打ちでAIを作ると変数の数 がヤバくなります

Slide 40

Slide 40 text

最適化の話

Slide 41

Slide 41 text

Lights 2Dは重い (スプライトやライトの数にもよる)

Slide 42

Slide 42 text

Lights 2Dは重い SetPass calls: 33 Lights 2Dなし Lights 2Dあり SetPass calls: 2055

Slide 43

Slide 43 text

画面外のスプライトにも パスが走ってるっぽい

Slide 44

Slide 44 text

Lights 2Dは重い SetPass calls: 33 Lights 2Dなし Lights 2Dあり SetPass calls: 2055 Lights 2Dあり (カリング有効) SetPass calls: 435

Slide 45

Slide 45 text

ちなみに (なぜか)CPU負荷も減る

Slide 46

Slide 46 text

開発を振り返って……

Slide 47

Slide 47 text

といきたいところですが 時間がなさそうなので

Slide 48

Slide 48 text

おしまいです ブログに細かいスケジュールとか書いておきました

Slide 49

Slide 49 text

No content