忍者ブログ
コンピューターとかゲームの最新ニュースはまとめるのが面倒なので Twitter を追ってください。もしくは1日分のツイートをまとめて簡素な HTML にするスクリプトください。

最近のゲーム開発におけるプログラマとデザイナにまつわるお話。

今年になって何度かゲーム関係の勉強会に参加させてもらって、いろいろなお話を聞かせていただいた結果見えてきたことをまとめてみます。


なお、Unity について語っていますが、これは単に Unreal Fest 2016 に参加できなかったら Unreal Engine 関連のイベントがなかったからであり、 CryEngine を触る機会なんてないからです。
基本的には同じようなサブスクリプションライセンス制をとっている Unreal Engine でも変わらないはずです。(CryEngine は感謝したい人がお金を払う仕組みなので無関係だろうと思いますが…)



商用ゲームエンジンを使ったゲーム開発でありがちな問題

最近の小~中規模なゲーム開発の現場でも開発関係者の 分業化/専業化 が進む一方、大規模ゲーム開発プロジェクトのようにツール開発エンジニアを十分に確保できないため…

  • ディレクタ: 全体の取りまとめ役
  • プランナ: ゲームの仕様を考える人
  • サウンド: ゲーム内の BGM や効果音を作るだけの人
  • デザイナ: ゲーム内の 2D/3D グラフィックデータを作るだけの人

  • プログラマ: もらった素材を組み込んでゲームを仕上げる人

というような作業分担になっていることが少なくないようです。
大手の大規模ゲーム開発に慣れると、TA(テクニカルアーティスト) のような 「各専門業種の間に立つ人」が居たり、内製ツールが充実して、デザイナが制作したものを直接ゲームに取り込んで
確認出来るような内製ツールがあったりするので気にならないですけど、上記のような作業分担ではプログラマの負担が大きいですよね。


なので、プログラマの人数が(思ったより)多いこともあるようです。
しかし UI/ユーザーインターフェース (メニュー画面や HUD など) のデザインなどは、デザイナが素材を提供するだけでお終いというわけではなく、UI デザイナーの思った通りに実装されているかを実際にチェックしないといけないですよね。
ここで、 UI デザイナーがプログラマに提供するのは PhotoShop で作成したモックデータ (レイヤーたっぷりの *.psd ファイル) だったりすると、細かな仕様書を作ってくれるわけでもないので、
実装するプログラマが UI デザイナーの意図通りに実装できるわけがありません。
組み込まれたゲームプログラムを UI デザイナーがチェックすると、思った通りに実装されていないから不満爆発ですね。


僕だったらブチ切れ金剛だと思うんですが、このUI デザイナーとプログラマのやりとりを繰り返して、UI デザイナとプログラマの妥協点が最終的なゲームの UI になるみたいです。

問題点まとめ

  • プログラマの負担が大きい
  • 実はやり取りを繰り返す UI デザイナの負担も大きい
  • お互い思い通りにならないので、デザイナーとプログラマの関係が友好的ではなくなっていく
    • 仲が良くなることもあると思いますが、どちらも思い通りにならないフラストレーションをため込むので険悪になりやすいです。
  • 開発のイテレーション(試行錯誤の1ターン)が長いので、開発期間が長くなる
    • コミュニケーションによる作業遅延なんて当初の工数に入っていないからリリース延期になりやすいんじゃないでしょうか?(実際は知りませんけど)
  • 最終的に出来上がるアプリの品質は、 理想より低くなってしまう
    • 時間の制約で双方が「これなら OK かなぁ」という妥協点を探りあうことになりますよね。

この問題へのアプローチ

クローバーラボさんで行った方法

先月に大阪で行われた、Beyond さん主催の勉強会 でスピーチをした、クローバーラボ さんでは…

  1. PhotoShop の *.psd データを解析して、レイアウトデータ(要は座標)を抜き出すプラグインを用意し
  2. デザイナが提出する *.psd から、プログラマ側がデザイナの明文化されない意図を汲み取るようにした

ということをしたそうです。
レイアウト座標などを抽出して、プログラマが変に味付けしてしまうことを回避できるので UI デザイナの思った通りのレイアウトにしやすいですね。
凝ったアニメーションをするような UI はこの方法では解決できないと思いますが、その状況に陥った現場で即効性のある現実的な対処法です。


ちなみに、Unity においてはアセットストアに *.psd ファイルを解析するアセットが販売されているそうなので、スマホ向けのゲーム開発ではよくある手法と言えるみたいです。
これを見て、「UI の実装はもう嫌だお…」 という今死にそうな人は使ってみてはいかがでしょうか?

関西ゲーム勉強会2016夏 での Unity 池和田さんの主張

僕も同意見なのですが、
UI デザイナが自分で満足するまで試行錯誤ができるように、デザイナも Unity を使うべし
というのが Unity の池和田さんの主張です。


池和田さんは 「Republique」の開発スタッフでもあるそうなので、実経験に基づいたアイデアだなぁとも感じました。


スポンサーセッションだったので、「俺らがサブスクリプションで儲かるから、みんな Unity 使おうぜ」 と聞こえた方も居るみたいなのは残念な事です。
スポンサーであることがデメリットになっている感じですな


プログラマに毎回修正をお願いするよりは自分で直したほうが手っ取り早いし、Unity の GUI 周りの仕組みも充実してきたので UI デザイナーがちょっと Unity の使い方を覚えて自分で作れるようになれば、細かなアニメーションやエフェクトなども自分の思い通りに実装できるので ”プログラマが組み込んだコレジャナイ UI” を見なくて済むし、作品のクオリティも上がりまくりです。


各メンバーの精神衛生上の問題も減り、デザイナとプログラマが共通のものを作っているという仲間意識を構築しやすそうですからチーム運営の観点からもおススメではないでしょうか?


Unity のライセンス料が無料の場合には。

大規模なゲーム開発の現場でよくやること

そんなに事例を知っているわけではありませんが…

  • そもそも内製ゲームエンジンがある。内製だからライセンス料は無料。
  • Adobe Flash で作成した UI を ScaleForm でゲーム内に組み込む (PS2~3 くらいまでの昔話です。)
  • 2D レイアウト用の内製ツールを用意して、デザイナの意図通りの中間データをプログラマが動かす。
  • プログラム ”も” 書けるデザイナを養成する
  • HTML5 +JS で UI を構築する / もしくはモックアップをデザイナが HTML5 で作る。

みたいなことをしています。
よくある問題には過去に遭遇して、解決すべきだと判断した歴史があるようで きちんと両者が歩み寄れています。


チームの人数も各個人の能力も大規模なので出来ることですが…

  • Unity 使いのデザイナが、プロトタイピングがし易い Unity で UI のモックを作る (実際のゲームが Unity 使用とは限らない)
  • そもそも UI デザインを UI デザインを心得ているプログラマが担当する

という豪快な手法も聞いたことがあります。


こういうことを大手が行うから、商用ゲームエンジンがロイヤリティモデルからサブスクリプションモデルに移行したんだろうにゃー


私見

理想的には Unity 池和田さんが仰るように、Unity Editor を開発者全員が使うというのがベストでしょう。気に入らない部分は自分で修正できるんですから。


自分が Unity を使っているスタジオに所属している訳でもないので細かいことは知りませんが、Unity のライセンス形態を調べた限りではフローティングライセンス(同時に使用しなければ複数人で同じライセンスを使いまわせる)らしいです。
とりあえず、C# のコードとかシェーダーを書くことが多いプログラマのライセンスを間借りするのが現実的で「今出来る」やれることでしょう。


でも、Unity は開発者からお金を得る方法を ”ロイヤリティモデル"から ”エンジンそのもののサブスクリプションライセンスモデル” に移行しました。
オブラート抜きでいうと


「開発会社で Unity を使う人が増えるほど Unity に支払う月額利用料金が増える」


のです。


そして、この料金は Adobe の PhotoShop CC の料金体系よりもはるかに高い金額なので、プログラマ側が折れて PhotoShop を導入するほうがよっぽど安いのです。
デベロッパを雇用するよりはよっぽど安いのかもしれませんが、この状況で Unity の中の人が 「お前ら もっと Unity つかおうぜ」 と言っても、聞き手側は「Unity の営業活動ですね。ありがとうございました。」としか受け取れないですよ…


ゲーム業界がそのもののと密に結びついて発展していった 3D グラフィック業界は結構うまいこと、3D グラフィッカーとプログラマの連携がとりやすくなっている気がしますが 2D は意外にそうではないみたいですわ。


僕からの提案

現状では デザイナがプログラマに PhotoShop のデータを納品する状況は改善されづらいですので、パッと思いつく解決方法を列挙してみます。


現実的か? はさておき。

非プログラマ向けの制約もりもりで安価な Unity のエディションを用意する

要するに、値段がネックなのです。 使う人が増えるとフローティングライセンス故の ”同時に使えない問題” が勃発するので、Unity Technologies さんが Unity をデザイナにも使わせたいなら値段をどうにかすべきです。
値段さえどうにかなればデザイナーに Unity を覚えてもらおうと主張する敷居も低くなり、経営者も首を縦に振りやすくなるでしょう。

  • Unity Co-Development Edition: 月額980円。
    • Windows/OSX/Linux 向けのビルドすら出来ないように制限。
    • 有償のサブスクリプションライセンスを一定数購入している企業限定でのみ利用可能
    • Unity Plus を使う企業と Unity Pro を使う企業では金額が違ってもよいかも…

を用意するのはいかがでしょうか?
Unity Technologies が得られる利益を減らすことになりますが、インディーゲーム開発者が Unity を採用する事例は増える(or 減らない)でしょう。
王者は既存のユーザーを逃がさず満足させることが大事です。

Adobe Animate CC で作ったコンテンツを Unity で取り込めるようにする

昔でいう 「Flash で UI 作るべ」 です。
2D のゲームな ActionScript をプログラマが覚えれば Unity 要らないのが難点ですね('・ω・`)


Scaleform は最近の Unity Asset Store から無くなっている (※オッサン時空における最近) し、UnrealEngine と Stingray 以外での単体利用がわからないので大規模でハイエンドな人向けになっているかと。

UI デザイナには HTML5 な UI を作ってもらい、Unity Asset Store に転がっている HTML5 連携ツールでどうにかする

UI デザイナーって Web 屋に近いと思うんですよ。 だから多分これでも OK。
多分、プログラマはシステムに組み込むのに面倒な作業をせねばならないと思いますが、一回だけの苦行ですぜ。


Web 屋は絶対必要な人材で各社囲っていると思いますし、Intel XDK あたりでプロトタイピングするのはアリだと思いますよ。XDK 無料だし。

OSX macOS を捨てて Windows ベースにする + C# でツールを作る

Unity では C# 使っている人が殆どでしょう。
だったらプログラマが Windows + VisualStudio でツールを開発したらいいんですよ(力説)
内製ツールなら無料ですし、GPL も怖くないですし。


最近の Apple のソフトウェア品質は最近の Microsoft 以下ですので、クック信者なんて居ないでしょ


C# と .NET Framework は元々そういう用途で開発されたものなんだし、 XAML に慣れてしまえば GUI ツール開発はそんなに苦じゃないです。
中規模スタジオでも内製ツールをちょこちょこ作っていけば、開発効率を少しずつ改善していけますよ。 継続 is Power.

最後に

Unity Editor を使っている人!
Unity Editor 上での動作確認はすごく楽ですけど、ビルドしてターゲットデバイスでの動作チェックを行うのも忘れずに!!!


これは Unity に限った話ではないのですが、コンシューマー機での動作確認が疎かになった結果 デスマーチってよく聞きますよ~



PR