あたりまえ品質を目指すゲームジャム

138 Views

October 04, 25

スライド概要

Unityの思わぬ落とし穴やよくある実装について話します

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

ゲームジャム高梁2025 事前勉強会 あたりまえ品質を目指すゲームジャム 中野洋輔 ゲームジャム高梁2025 事前勉強会 2025/10/4 by 中野洋輔 @naninunenoy

2.

ゲームジャム高梁2025 事前勉強会 あたりまえ品質 「当たり前品質」とは、顧客が明示的に要求しなくても、当然備わっているべきと期待される基本的な品質要件のことです。 ゲームなら「起動する」「操作できる」「終了できる」 あって当然 → 存在しても評価されない ないと致命的 → 欠けると強い不満を生む 基本中の基本 → 最低限の機能要件 とはいえ、2日間という限られた時間ではこのあたりまえですら難しい場合があり得ま す。 by 中野洋輔 @naninunenoy

3.

ゲームジャム高梁2025 事前勉強会 発表者 中野洋輔 Unityエンジニア(8年くらい) 仕事ではゲームより アプリ系の開発がメイン ゲームジャム高梁2024 参加 企画・開発リード GLOBAL GAME JAM 2025 参加 開発リード by 中野洋輔 @naninunenoy

4.

ゲームジャム高梁2025 事前勉強会 ゲームジャムでのあたりまえ品質 ビルドできる WebGLで遊べる 日本語が表示できる あたりまえ品質の先へ by 中野洋輔 @naninunenoy

5.

ゲームジャム高梁2025 事前勉強会 ビルドできる UnityEditor上での動作で満足していると、いざ提出する時にexeをビルドでこけて焦る ことが よくあります。(通称:ゲームジャムに潜む魔物) UnityEditorとビルド後のゲーム(runtime)では動作の前提条件が異なります。 using UnityEditor; by 中野洋輔 @naninunenoy に注意

6.
[beta]
ゲームジャム高梁2025 事前勉強会

using UnityEditor

したい理由は様々でしょうが、おそらく任意の画像なりアセット
を動的に読み込みたい時に使ってしまう場合が多いのではないでしょうか。
using UnityEditor

using UntyEditor; // ビルド時に参照できないのでエラー
void Start() {
var someTexture = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Texture.png");
}

error CS0246: The type or namespace name 'Editor' could not be found
(are you missing a using directive or an assembly refer

by 中野洋輔 @naninunenoy

7.
[beta]
ゲームジャム高梁2025 事前勉強会

画像は Resources から読めば良い
using UnityEngine;
// 通常は[SerializeField]で参照させればokだが
void Start() {
// 動的に読み込みたい場合は Resources/ に画像を置いて読めば良い
// Resources/ からの相対パスかつ拡張子なしで指定
var someTexture = Resources.Load<Texture2D>("Texture");
}

Resources/ フォルダに大量のファイルがあると実行ファイルのサイズや起動時間に影
響するので、 Resources.Load には慎重になるべきなのですが、手取り早くあたりま
え品質を満たす上では選択肢に入る。
by 中野洋輔 @naninunenoy

8.

ゲームジャム高梁2025 事前勉強会 マイナーなライブラリを使う時も注意 例えば画像処理でハンドトラッキンするゲームを作る場合など、ハンドトラッキング のライブラリがwindows向けにはビルドできるがMac向けにはビルドできない場合があ る。 もしくはビルドできるが動作しない場合がある。 DLLだのasmdefがどうだのみたいなしんどい話になる。 by 中野洋輔 @naninunenoy

9.

ゲームジャム高梁2025 事前勉強会 WebGLで遊べる WebGL形式でビルドしunityroomなど にアップロードでれば、人の目に触 れる機会も増えます。 また自分が関わったゲームとして紹 介するときに便利です。 https://unityroom.com/games/oreelevator by 中野洋輔 @naninunenoy

10.

ゲームジャム高梁2025 事前勉強会 WebGLにおける罠 WebGL形式はブラウザ上で動くという特殊性からPC/スマホとは異なる問題が表面化 する場合があります。その中で代表的なものが 日本語が表示できない問題 です。これはフォントのfallbackの問題なのですが、昔のLegacyなTextコンポーネント と現在標準となったのTextMeshProのどちらを使うかで解決策が違うので注意が必要で す。 by 中野洋輔 @naninunenoy

11.

ゲームジャム高梁2025 事前勉強会 TextMeshProで日本語を出す 色々作法があるのですが、UnityJapanが出してる動画が参考になります。 【初心者向け! TextMesh Proで日本語を使おう】 https://www.youtube.com/watch?v=pnEI6xPhh60 TextMeshProの Essential を import NotoSansJpなどのフォントをDL フォントアトラスを作成(重要) TextMeshProコンポーネントにフォントを設定 by 中野洋輔 @naninunenoy

12.

ゲームジャム高梁2025 事前勉強会 Legacyテキストを使う選択 「日本語を表示したい」という問題を手取り早く解決するには Legacy/Text を使ってUIを作る NotoSansJpなどの日本語対応フォントをプロジェクトに入れて参照させる というのも選択肢に入ります。しかし、チーム内で共通認識を持たないとTextMeshPro のテキストが入り込む可能性があるので注意。 by 中野洋輔 @naninunenoy

13.

ゲームジャム高梁2025 事前勉強会 WebGLにおける日本語の入力 日本語の表示をクリアしてもWebGLでは InputField で日本語が入力できない(厳密 には変換の候補が表示されない)という問題が起きます。これに関しては 文字入力をゲームに含めない 入力はアルファベットのみと割り切る もしくは以下のOSSを導入して日本語入力を可能にすることができます https://github.com/kou-yeung/WebGLInput by 中野洋輔 @naninunenoy

14.

ゲームジャム高梁2025 事前勉強会 あたりまえ品質の先へ EnterPlayMode Editorでの実行が爆速になる機能 https://docs.unity3d.com/ja/2022.3/Manual/ConfigurableEnterPlayMode.html パラメータをC#の定数でなく [SerializeField] で変更できる様にしておく と恩恵大 Edit > ProjectSettings > Editor から When entering Play Mode から設定 by 中野洋輔 @naninunenoy

15.

ゲームジャム高梁2025 事前勉強会 EnterPlayMode Domain Scene onlyなど Domainをリロードしない場合、 static フィールドの初期化を RuntimeInitializeOnLoadMethod などで初期化しないと変なバグの温床になるので覚 悟のある人向け class GameManager : MonoBehaviour { public static int PlayerScore = 0; } [RuntimeInitializeOnLoadMethod] static Reset() { // リセットしないと次回実行時に前の値が残る PlayerScore = 0; } by 中野洋輔 @naninunenoy

16.

ゲームジャム高梁2025 事前勉強会 終わりに ゲーム開発には落とし穴が沢山ありますが、ハマったり回避したり脱出したりで経験 積んでいきましょう。 by 中野洋輔 @naninunenoy