practical game development with stingray
TRANSCRIPT
Practical game development with Stingray
Naoji Taniguchi
谷口 直嗣フリーランス
CG スタジオの R&D 部門から独立コンソールゲーム( Nitendo64, XBox, XBox360, Wii) 開発、ディレクション
スマホアプリ企画開発、インタラクティブ展示企画開発ロボットアプリ企画開発
最近の仕事
KUKA Robotanica
東映アニメーション正解するカド
今日お話しすることStingray の Flow/Lua でどうやってゲームを組み立てていくか?Lua はどう使う?Flow/Lua 関連の開発 Tips
Meowedful Days 開発フロー 1
Unit化 Unit Flow開発DCCツールでモデル作成 Test Mapでテスト
アーティスト プロジェクト管理者(ハヤシ ヒカル)現在は、アーティスト側とStingray 側のつなぎ役
プログラマー プログラマー
Meowedful Days 開発フロー 2
実行時レベル生成 テスト Unit Flowパラメーター調整
ゲームデザイナー
配置 CSV編集
Unit Unit
Unit
ゲームデザイナー ゲームデザイナー
Level Flow と Unit Flow
Level Flow と Unit Flow
Level Flow Level 全体の処理を記述 Level の初期化などUnit Flow Unit の処理を記述 プレイヤーキャラのコントローラー入力受け付け キャラの移動 アニメーション変更 コリジョンイベントに対する処理
Level FlowLevel Flow tab
Unit Flow Unit Editor を起動
Unit Flow ではプロジェクトでだいたいの配置場所を決めておくと良い
キー入力 a
キー入力 space
コリジョン
Level Update
ゲームデザイナーと Unit Flow
Unit Flow の中の変数
ゲームデザイナー的 Unit Editor
Unit Flow の中の変数
Test Map
チームでゲーム開発プログラマーとゲームデザイナーは別の人がリモートで作業をしている。思考回路と担当分野が違うこのようなチーム構成に合わせたStingray の使い方を考えた
ゲームデザイナーゲームデザインはトライアンドエラーが必要ゲームデザインではゲームを俯瞰して見ることが必要チームでもオンラインでゲームをさっと俯瞰したい
プログラマー仕組みを作って使いまわしたいゲーム上のオブジェクトごとの調整はゲームデザイナーに任せたい。どのレベルでもプレイできるような仕組みを作ってしまう
ステージ構成を外部化ゲームデザインの作業を分担して、共有しやすいように障害物などのゲームオブジェクトは、 Google Spreadsheet 上でゲームデザイナーが記述するようにした。Google Spreadsheet から配置情報をダウンロードして、 Stingray に組み込んで、 Level 開始時にゲームオブジェクトをスクリプトで配置
CSV のフォーマットcontent/models/characters/PPK/PPK_m, 0, 0, 0, 0, 0, 0content/models/characters/PPK/PPK_m, 1, 0, 0, 0, 0, 0content/models/characters/PPK/PPK_m, 2, 0, 0, 0, 0, 0content/models/blockers/TrashCan/TrashCan, -1, 0, 0, 0, 0, 0
Lua の登場!
配置データを Stingray に読み込む配置データを読み込むスクリプトを Lua で作成Lua の関数を読み込むカスタムノードを作成カスタムノードを呼び出す subroutine を作成subroutine を Level Loaded をトリガーにして呼び出す
CSV をロードして Unit を生成するLua スクリプト
Lua スクリプトを呼び出すカスタムノード
カスタムノードを呼ぶFlow Subroutine
Level Flow からFlow Subroutine を呼ぶ
ロジックの共通化
Flow Subroutine の活用UnitFlow は Unit に紐付いているのは直感的でわかりやすいが、共通のロジックをコピペするのは避けたい一つのロジックを共有したいFlow Subroutine を活用
Flow -> Lua
Flow でプロトタイピング、 Luaで実測ドキュメントのおすすめによるとゲームデザイナーはロジックを Flow でプロトタイプできたロジックはプログラマーが Lua で実装して洗練させるのがおすすめと書いてあるhttp://help.autodesk.com/view/Stingray/ENU/?guid=__stingray_help_creating_gameplay_lua_vs_flow_html
Lua の方がデバッグが楽!Lua はブレークポイントをセットしてステップ実行できる!Flow では現状ステップ実行できない
Tips 1 Debug
Flow Debug
PrintTo Screen/ Debug Print
PrintTo Screen/ Debug Print
ここに表示される
PrintTo Screen/ Debug Print
Lua Debug
Break Point のセット
Break して変数が見れる
Log Console に Print
Tips 2 Performance Hud
Editor から
View/Performance Hud
Test Engine
Test Engine に切り替えPerfhud artist
Flow Reference
現状では Stingray の Unit Flow のエディター上で Flow のサーチ機能が無いLevel Flow 上にはある
現状では Web でリファレンスを見る