ゲーム制作

【要約】桜井政博のゲーム作るには「プログラム・テクニカル」|調整しやすい開発の仕組みを全9テーマで網羅

【要約】桜井政博のゲーム作るには「プログラム・テクニカル」|調整しやすい開発の仕組みを全9テーマで網羅

『星のカービィ』や『大乱闘スマッシュブラザーズ』シリーズの生みの親・桜井政博さんは、YouTubeチャンネル「桜井政博のゲーム作るには」でゲーム開発のノウハウを数多く公開しています。この記事は、そのチャンネルの内容をテーマごとに要約・再構成したものです。

ただし、要約はあくまで入り口にすぎません。桜井さんご本人の言葉・実例・テンポ、そして映像そのものからしか得られないものが本当に多いので、記事を読んで終わりにせず、ぜひ各テーマに埋め込んだ元動画もあわせてご覧いただくことを強くおすすめします。

合理的な命名やパラメーター調整など、開発を支える技術的な工夫が語られるカテゴリです。ここでは「プログラム・テクニカル」カテゴリの全2本(個別動画9テーマ)の要点を、元動画2本に沿った2部構成でまとめていきます。各部の冒頭に解説動画を置いているので、あわせてどうぞ。

「プログラム・テクニカル」総まとめ・2部構成 1 合理的なファイル名・パラメーター調整・チケット管理 #01〜#05 2 スマブラのふっとばし・ファイル管理・デバッグモード #06〜#09

第1部 合理的なファイル名・パラメーター調整・チケット管理(#01〜#05)

このカテゴリは、コンピューターと直接向き合う技術的な話。開発環境やチーム規模で大きく変わるため問題のない範囲での概要が中心ですが、現場の調整の工夫が垣間見えます。

YouTube動画のサムネイル

1. ファイル名は合理的に

スマブラの「上必殺技」を、桜井さんは思わず「必殺技上」と逆に言ってしまうことがあるそう。実は開発名称が「必殺技上」で、チーム全体でそう呼ぶようにしているのです。これには合理的な理由があります。

技にはそれぞれファイル名(ラベル名)があり、初代スマブラから引き継いでいます。Aボタンの通常攻撃はアタック、Bボタンの必殺技はスペシャル。弱攻撃はアタック1、スマッシュ攻撃はアタック4と数値で強度を表し、方向は中央N・上H・横S・下Lで付けます。横スマッシュ攻撃ならアタックS4、空中技にはエアが付きます。

命名順で「ソート時の並び」が変わる 種類→強度→方向 アタックS4 / スペシャルH ソートで綺麗に整列・区分明確 方向→種類(逆順) Sアタック / Hアタック ソートでバラバラに散る

このルールの利点は、ファイル名で技がすぐ分かり、ソートすると綺麗に並ぶこと。アタックは強度の数値順、スペシャルは別カテゴリにまとまります。仮に「Sアタック」と方向を先にするとソートでバラバラに。「スペシャルH」を日本語にすると「必殺技上」——これが開発名称の由来です。一方、正式名称が「上必殺技」なのは、プレイヤーの操作が方向から入るから(上を入れながらボタン)。ファイル名は簡潔で分かりやすく、初めての人もパッと分かるように。日本の開発者はローマ字の名前を極力避けるべき——海外の人に意味が分からなくなるからです。

2. 調整をしやすくする仕組み

ゲーム作りで大切なのが調整。企業秘密なので具体的には明かせませんが、桜井さんは調整したい数値をすべて「パラメーター」として外に出す仕組みを使っています。例えば攻撃力10の技なら、技を出す仕組みはプログラムで、10という数値はパラメーターとして外出しし、企画が後から調整できるようにする。

プログラムに直接10と書いても動きますが、それだと調整のたびにプログラムに手を入れることになり困ります。プログラムが骨、パラメーターが筋肉。筋肉を大きくしたり速くしたりで、同じものでも性質を変えられます。パラメーターはExcel上にまとめて整備され、計算式を折り込めるのが大きなメリット(「この技は別の技の1/2の威力」などと相対指定できる)。スマブラは1攻撃のパラメーターが多いので、頻度の低い調整値は隠してヒューマンエラーを防いでいます。

数値を実機に反映するにはコンバートが必要で、これはExcelのアドインとして仕組み化され、ボタン1つで開発機に反映されます。初代やDXの頃は1回のコンバートに10分かかり、Excelもなく桜井さんがテキストで全パラメーターを書いていたそう。スマブラ4からパラメーターが整備され、多くの人が触りやすく、トライ&エラーしやすくなって調整の幅と深さが広がった。最も試行錯誤が繰り返されるところなので、ぜひ各チームで合理的な仕組みを持ってほしい、とのことです。

3. パラメーターを【】でくくる

前回がキャラ共通のパラメーターの話だったのに対し、今回は仕様書に基づく個別のパラメーターの話。ゲーム制作は、ディレクターのアイデアをプランナーが仕様書にし、プログラマーが組み、プランナーがパラメーター調整する流れ。プログラムはバグがなければ終わりですが、パラメーターは最後までいじられ続けます

仕様書に基づく場合、最初にどこをパラメーター化したいかを細かく伝える必要があり、担当者以外が見ても意味が通る必要があります(複数人で調整するため)。桜井さんがたどり着いた作法は3つです。

仕様書とパラメーターを結ぶ3つの作法 ① 名前を口語で 「X速度」でなく どこをいじるか口語で書く ② 【】でくくる 墨付き括弧の語を パラメーター化の印にする ③ ○で数値化箇所 数値化したい所を 「○」で記載する 例:【技返し時のX速度】は○で移動開始、同時に【X減速度】は毎フレーム○で減速する → 横に飛び出しつつ減速する仕様が、文字だけで伝わる

①仕様書ではパラメーター名を口語で書く。②パラメーター化するものは墨付き括弧【】でくくる。③数値化したいところは○で記載する。例えば「【技返し時のX速度】は○で移動を開始、同時に【X減速度】は毎フレーム○で減速する」。横に飛び出しつつ減速する仕様が、文字だけで想像できます。【】の語と数値が並んだファイルができ、その数値をいじれば調整できる寸法。普通はX速度などの名前だけで表されがちですが、口語にしてどこをいじりたいか明解にすることで分かりやすくしているのです。個別仕様向けで、汎用パラメーターには向きません。

4. チケットでタスク管理

これはチーム運営寄りの話。今やある程度の規模のタイトルでは、ほとんどの仕事がチケット化されています。紙ではなく、ツールでサーバー上に管理されるデジタルデータ。このチケットを持つ人が、その仕事をするとはっきり分かる仕組みです。

1キャラの制作も「チケット」で手渡しされる 仕様書 企画を決める モデル・モーション 上流→下流で連携 プログラム 実機で動かす エフェクト・音 バランス調整 最後までいじる 各チケットにリーダー・担当・期限・ステータス(進行中/完了/保留など)

1キャラを作るにも、企画・仕様書・モデル・モーション・プログラム・エフェクト・音・バランス調整など多くの手順があり、それぞれがチケット化されて手渡しされます。各チケットにリーダーや担当者、期限、ステータス(進行中・完了・保留など)があり、所持チケットを確認できるので漏れや忘れがありません。上流・下流をまたぐこともあり(モデルがないとモーションが作れない等)、間に合わないと見切りで下流にかかることもありますが、あまり直列にしない方が良い。デバッグもチケットでレポート化され、リーダー経由で担当者に振られます。作業は見える化が大事。昔はなかった仕組みですが、今やこれがないと仕事にならないほど大事だと言います。

5. ファミリーベーシック

桜井さんがゲーム業界入りした最大のきっかけがファミリーベーシック。1984年6月、ファミコン登場の約1年後に出た、ファミコンをゲームパソコンとして使える仕組みです。桜井さんは実機を持っており、黄ばむ白い部分を自分で塗装しているほど。

RAMの容量はたったの2KB(約2000文字でいっぱい)と当時としても小さいものでしたが、ファミコンの特性を生かした良い機能を持っていました。基本的なプログラムでもMOVE命令でキャラクターを簡単に動かせるのが驚き。スプライト番号(0でマリオ、1でレディ等)、方向、スピード、移動距離、優先順位、パレットを指定するだけ。キャラクターのプリセットをごく簡単に使えるのが味噌で、普通のパソコンでドットを描くだけでも超えてしまうプログラム量が、これだけで動くのです。

桜井さんはこれで慣性が手触りにどう影響するかなどを学び、初代カービィの開発に役立てたそう。MOVE命令は8方向しか使えず手軽な反面使いにくかったので、より実践的なスプライト命令でプログラムを組む様子も披露しています。背景はマリオブラザーズ風のアセットで描けるものの、ファミコン特有のアトリビュート(16×16単位でしか色を変えられない)という制約も。カセット裏に乾電池2つでバッテリーバックアップができ、これは1986年のドラゴンスレイヤーより前の採用です。

1980年代、ゲーム制作のためパソコンを目指した人は多いものの、中学生には40万円ほどと高嶺の花。ファミリーベーシックは小遣い半年分で買えました。もしこれに触れていなければ、カービィもスマブラも生まれていなかった。何がきっかけになるか分からないが、まずは作ってみることが大事——この番組も未来のクリエイターが増えるきっかけになれば、とのことです。

第2部 スマブラのふっとばし・ファイル管理・デバッグモード(#06〜#09)

後半は、スマブラ独自のふっとばし設定や、多人数開発を支える仕組みがテーマ。普段は見えない開発の裏側が、可能な範囲で語られます。

YouTube動画のサムネイル

6. 『スマブラ』のふっとばし

スマブラの攻撃は、単純に攻撃力分を相手の体力から減らすものではありません。吹っ飛ばすというゲーム性から、ユニークな設定ができます。前提として、攻撃側の攻撃力が高いほど、相手の蓄積ダメージが高いほど、大きく吹っ飛ぶ仕組みです。吹っ飛ばしに関わるパラメーターを見ていきます。

ふっとばしに関わる主なパラメーター ベクトル 吹っ飛ばす方向。全方位を個別設定 リアクション影響値 倍率。攻撃力と吹っ飛びを別に制御 リアクション加算値 最低限の吹っ飛びを担保する加算 リアクション固定値 ダメージ無関係に完全固定 例:マリオのスーパージャンプパンチ 連続ヒット中は「固定」 最後の1発だけ「影響値」で吹っ飛ばす → 相手のダメージに関わらず安定して当たる

ベクトルは吹っ飛ばす方向で、スマブラは全方位を細かく個別設定でき、攻撃側の移動に沿わせる補正で空中コンボのすっぽ抜けを減らせます。リアクション影響値は倍率で、攻撃力は高いがあまり飛ばさない(逆も)といった細かい制御が可能。リアクション加算値は最低限の吹っ飛びを担保するもの(体力が低くても打ち上げ攻撃が成立するように。影響値で抑えて併用)。リアクション固定値はダメージと無関係に完全固定。マリオのスーパージャンプパンチは、連続ヒット中を固定、最後の1発だけ影響値で吹っ飛ばし、相手のダメージに関わらず当たるようにしています。初代から続くこの構成で、異質なルールを楽しいゲームにしているのですね。

7. 多くの人がファイルをいじる方法

チーム規模が大きいと、何百人もが同じゲームを作り続けます。誰かがいじったファイルを別の誰かも編集する——バッティングせずどうやっているのか、かつての桜井さんも疑問でした。概要を説明します。

ゲームの制作物は無数のファイルに分かれ、規模に比例して増えます。大抵は管理ツールで監視され、ファイルはサーバーに上げられる。誰かがいじる時はファイルにロックをかけ、編集後にサーバーへ上げてロックを解除します。ただしこれだと大きいファイルは1人しか編集できず効率が悪い。二重に編集されてバッティングする場合は、ツールが編集箇所を見比べてマージ(縫い合わせ)を試み、矛盾が残れば手で解決します。

理屈上は完璧、でもなぜか起こる「先祖返り」 ロック→編集→解除 基本はこの繰り返し マージで衝突も解決…のはず なぜか先祖返り 編集が消え、前の版に戻る 運が良ければ1つ前に戻して復活

このように進めるので理屈上は問題ないはずですが、なぜか「先祖返り」が発生します。誰かの編集がすっかり消えて編集前に戻ってしまう現象で、なぜかよくある。管理ツールは編集ごとにバックアップを取るので、運が良ければ1つ前に戻して復活することも。「理屈上は問題ないけど、なぜかトラブルが頻発する。そんな不思議な管理ツールに頼って、今日も多くのプロジェクトが動いています」と、桜井さんは締めくくります。

8. デバッグモード

開発中にはデバッグモード(開発モード)があり、様々な機能を持っています。いろんなテストや分析をしながらゲームを作るためのもの。スマブラなら全員の体力を所定の数値にできますが、それがない昔は、フォックスの横強攻撃の攻撃力を100に設定して試したりと、デバッグ機能がないと工夫や手間が必要でした。トレーニングの吹っ飛び軌跡表示も、元はデバッグ機能だったものを分かりやすいので導入したそうです。

動画の「今日の1枚」もこのモードで撮影され、画面静止やファイターを消す、カメラの引き・画角変更などが自在。ただし奥手前への配置はできず、持ち物が消えるなど制限もあります。桜井さんのおすすめは、通常の1つのコントローラーで完結できる形式。別コントローラーが必要だと、後から探すのが手間だからです。多くのデバッグモードは製品版で機能ごと抜くのが一般的ですが、毎日使うものなので開発効率に大きく影響。項目が肥大化しがちなので、整理やケアをしつつ便利に進めたいところです。

9. 透過機能

開発モードに付けておくと便利、と桜井さんが紹介するのがモデルの透過機能。スマブラスペシャルでは、ファイターのモデルの一部(または全身)を指定して、半透明にしたり消したりできるようにしています。

何に使うかと言えば、動きをよく確認するため。例えばマントを付けたキャラはマントが邪魔でポーズが見えにくいことがあり、これまでもスケーリングやモデルで消していましたが、開発モードでできると便利。開発外での確認にも役立ちます。とある3D格闘ゲームの現場でも、服や揺れものをカットして表現できることがあり、モーションが見やすそうだったそう。この機能の実装直後に撮ったのが「今日の1枚」だとも。

要素ごとに表示をオンオフする機能も一般的で、頻繁に活用していたとのこと。あくまで開発側のモードですが、部分的な透過機能は割とおすすめだと締めくくられます。

まとめ

ここまで「プログラム・テクニカル」カテゴリの全2本・9テーマを見てきました。最後に、各部(=元のまとめ動画)の要点を、個別テーマごとに振り返っておきます。

第1部 合理的なファイル名・パラメーター調整・チケット管理(#01〜#05)

#テーマ要点
01ファイル名は合理的にソートで整う命名(開発名は「必殺技上」)。ローマ字は海外に通じず避ける
02調整をしやすくする仕組み調整値はExcelのパラメーターに外出し。多くの人が触れトライ&エラーが効く
03パラメーターを【】でくくる仕様書は【】と○でいじる場所を明示。プログラムは終わるがパラメーターは最後まで
04チケットでタスク管理仕事はチケット化。持つ人が担当と分かり、漏れや忘れがない
05ファミリーベーシック桜井さんの原点。プリセットで簡単に動かせ、まず作ってみる大切さを学んだ

第2部 スマブラのふっとばし・ファイル管理・デバッグモード(#06〜#09)

#テーマ要点
06『スマブラ』のふっとばしベクトル・影響値・加算値・固定値で、攻撃力と吹っ飛びを別々に制御する
07多くの人がファイルをいじる方法ロックとマージで共同編集。理屈上は完璧でも、なぜか「先祖返り」が起こる
08デバッグモードテスト・分析の要。1つのコントローラーで完結できる形がおすすめ
09透過機能モデルを半透明・消去して動きを確認。部分的な透過機能が割とおすすめ

ボリュームはありますが、気になった部から読み返してもらえればと思います。関連するカテゴリもあわせてどうぞ。