インディーだからこそツールは大事!
マドリカ不動産でのツール活用事例
小規模開発は人的リソースが極端に少なく、人海戦術や根性では到底開発はできません。
そのため、繰り返し作業が多そうな場所を予めピックアップしてツールを整備しておくことはとても重要になってきます。
マドリカ不動産では、自社ツールを作ったり、Unityエディタのツールを上手に使いこなして作業の効率化に取り組みました。いくつかご紹介したいと思います。
多言語対応のための自社ツール
Unity x Google App Script
マドリカ不動産では日本語、英語、繁体字、簡体字の4言語に対応しています。
ゲーム中の全テキストはGoogle Spreadsheetで管理していました。(以下Spreadsheet)
Google App Scriptという仕組みをご存知でしょうか?
Spreadsheet等をスクリプトから制御できる仕組みです。
gmailアカウントを持っていれば誰でも無料で利用できます。
【リファレンス】
https://developers.google.com/apps-script/reference/
特定のURLにアクセスすると、計算をして結果をjson形式で返したり、指定した時間になると集計を始めて結果をメールで送る等、色々なことができます。
今回はUnityエディタにボタンを追加し、実行されるとサーバから最新のゲーム内テキストを取得しゲームに反映をする仕組みを作りました。
<手順>
1. 開発者がUnityエディタに追加したボタンを押す
2. Unityエディタが実行用URLにアクセスし、GoogleAppScriptが動き出す
3. Spreadsheetから文字列の2次元配列を取得
4. 取得した2次元配列をjson形式に整形してUnityエディタに返す
5. Unityエディタは取得したデータをResouces以下のjsonファイルを上書きする
6. RunTimeの最初にロードしてクラス配列に変換する
<利点>
自動保存や共同編集などSpreadsheetがもともと持っている便利な機能が使えます。
翻訳者さんごとに編集できるセルを指定することも可能です。
Spreadsheetの関数にはGoogle翻訳を利用できるものがあり、翻訳のダミーデータを自動で生成することが可能です。最終的には翻訳者さんがレビューしますが、開発初期であっても、それっぽい文章で多言語の実装を確認することができます。
【例】
=GOOGLETRANSLATE(A1,”ja”,”en”)
【参考】
https://support.google.com/docs/answer/3093331?hl=ja
特に良いところは、翻訳者と開発者が同時に作業ができるところです。
下のイラストは開発終盤で実際にあった場面なのですが、英語ネイティブの方がUnityエディタのゲーム画面を見てSpreadsheetを編集し、開発者はそれを即時にゲームに反映させ一緒に確認することができました。これにより効率良く翻訳作業が進みました。
Illustrator x Adobe ExtendScript
マドリカ不動産は、印刷した間取りを手がかりに遊ぶ謎解きゲームです。
紙を使うので、ゲームデータとは別で印刷用データがあり、こちらも多言語化しています。
作成にはAdobe Illustrator を使用し、言語ごとにPDFを出力しています。
20 (ステージ数) x 4 (言語) のPDFを書き出さなくてはいけないのでツールを作りました。
Illustratorに限らずPhotoshop等、他のAdobe製品もAdobe ExtendScriptという言語を使用し制御できます。アクション機能では対応できない細かい制御が可能です。
【リファレンス】
https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/AI_ScriptGd_2017.pdf
実行の方法はIllustratorのメニューから「ファイル>スクリプト>その他のスクリプト…」で実行することが出来ますし、適切なフォルダ内にスクリプトを置くことでメニューに加えることもできます。
BracketsというAdobe製のエディタにBrackets-to-Photoshopというプラグインを入れることでエディタからスクリプトを実行できるようになります。
<手順>
1. Illustratorで対象になるファイルを開く
2. Brackets-to-Photoshopでスクリプトを実行、言語分繰り返す
a. 必要なレイヤーの選択
b. PDF書き出し設定(高品質かつデータが軽量になるように設定)
c. 名前と保存場所を決定し、書き出しをする
<利点>
時間短縮になるのと、繰り返し作業によるヒューマンエラーを防ぐことが出来ます。
印刷データは修正が多く、書き出し直すことも多かったのですが、その度に役立ちました。
ソースコードなのでバージョン管理ができます。修正履歴が追えるのは普通に便利です。
(記:濱田)
Animationツール
このゲームではグラフィック全般を担当するアーティストがボスキャラのデザインに加えアニメーションも担当しています。その過程を少しご紹介したいと思います。
UnityはAnimatorコンポーネントを使うことで、エディター上でプログラミングなしに直感的に動きをキャラクターにつけることが出来るのでイラストレーターやデザインを担当した人が自分の思ったように動きをつけていくことが出来ます。
実際の流れとしてはPhotoshopでパーツを書く、Unityでパーティクルを作成、アニメーションをつける。という流れです。
アニメーションの動きは他のキャラクターに流用することもできるので、例えば目玉がぐるぐる回る動きをボディの動きに使ったり、ということが出来ます。
その他、顔の部分の動き、手の動き、全体の動き、など各パーツごとに別々のアニメーションをつけることで最小限の労力で単調なループにならないように作ることが出来ます。
1人でアイディア出しから最終的なプレハブの作成まですべてを担当することが出来るので最低限の時間でキャラ作成を実現することが出来ました。今後はTimeline機能も使い、カットシーン演出などもアーティストが担当できるよう研究していこうと考えています。
(記:村瀬)
まとめ
インディー開発者は孤独です。
自分自身を「褒め続けて」モチベーションを維持しなければなりません。
便利なツールや作業フローを作っておけば、作業の効率化に繋がるだけではなく、使うたびに過去の自分に感謝することでしょう。