読者です 読者をやめる 読者になる 読者になる

うしろぐ

作ってあそぶよ

GGJ2013、UnityとBlenderで世界に挑む。

3DCGのお話

48時間でゲームを作る、世界規模のお祭り『Global Game Jam 2013(GGJ)』に参加してきましたよ。昨年に続いて2度目の参加となりまして、昨年の思い出はここに

 

今年も札幌会場は札幌ゲーム製作者コミュニティ Kawazが運営し、池上学院グローバルアカデミー専門学校の校舎をまるっと5階貸し切りで行われた。取材も多く、USTREAM放送が入ったり、北海道新聞に大きく取り上げられたりしたので、これがゲーム開発に注目されるきっかけになる事を期待したい。

 

二度目の参戦。


 f:id:lightwave:20130129191526j:plain

昨年の経験で「どのくらい無茶出来るのか」想像がつく今年は、力の入れどころを3Dグラフィック一点に絞り、「札幌から日本一を目指し、世界と渡り合う」事を目標に楽しむことにした。

 

チームには、分野こそ映像だが3DCGの手練れを集め、プログラマーも昨年Unityゲーを共に作ったちっくんを引き抜き。サウンドには昨年GGJでオリジナルソングを作って話題をかっさらった、ゆうきさんを充ててもらった。まさにドリームチームだ。

 

初日。


f:id:lightwave:20130129204339j:plain

発表されたテーマは「ドックン・・ドックン・・・」心音のwavファイル。運営のもったいぶり演出かと思ったらテーマだった。昨年のテーマは画像だし、来年YouTubeのURLだったら予想通り過ぎて笑うだろう。

 

さてここから企画会議となるが、今回は作りたいモノがあった。『でっかい敵を見上げるゲームを作りたい。』地球防衛軍シリーズをはじめとするサンドロット作品が好きすぎてヤバイ私の夢である。これを話すと「じゃあそれにテーマを絡めていきますか」という話ですんなり通り、見えない敵を音で索敵するようなアイデアを付加したTPS視点のゲームに決まった。画面の色もあえて色彩を捨て、墨絵のようなグレートーンに差し色、という方向で決定。

 

企画書は紙切れ一枚。


f:id:lightwave:20130129204112j:plain

こういうものは少ないほど良い。見せたいものがハッキリしている証拠だ。直接戦って勝てる相手では恐怖感が薄れてしまうので、ゲームルールは3点で囲って巨大な敵を封印することにした。アクションTPSの皮を被った陣取りゲーム。もちろん敵の攻撃は一撃死だ。そういうものを見上げたい。技術的な問題を多く抱えるので、地面を崩すアイデアは不採用。なにせプログラマーはたった一人、面倒なゲームにしちゃいけない。

 

デザイン。


 f:id:lightwave:20130129205343j:plain

世界に通じる世界観として、桃太郎をモチーフに選択。タイトルもそのまま『MOMOTARO』。鬼を退治するためだけに生まれた、神様のような存在が主人公。デザインは無理に洋風に媚びず、和風でシンプルに、特徴的なシルエットを目指して研磨。『風ノ旅ビト』のシンプルさ加減が理想だったが、あの美しい削ぎ落としには到達できなかった。『風ノ旅ビト』どこまでもすごい。


f:id:lightwave:20130129210331j:plain

鬼は過剰にデザインせず、巨大でゴツい怪物に。動きが見えるように末端を明るくデザイン。これは作業効率とゲーム画面の凄みの両立を考えてのことだ。足を蹄にしたのも、アップに耐えられる足の指モデリングに時間を食うから。短時間で『ワンダと巨像』みたいな複雑なデザインに挑んではいけない。

 

世界観。


f:id:lightwave:20130129210706j:plain

高くそびえ立つ崖の上で、暗雲を噴き出し人々を困らせている鬼を退治する。主人公と敵のキャラクターに、静と動のコントラストをつけた。ちなみにこのイメージボードを描いている段階では、桃太郎のデザインが刀を持った大人の姿。キャラクターというよりただの侍なので悩んでいた。 


f:id:lightwave:20130129214235j:plain

そんな時「桃太郎って子供じゃん!」と気付いた感動が忘れられない。ゲームの主人公は大人という先入観による灯台下暗しだ。これで大と小のコントラストがつく。

 

 3DCGモデリング


f:id:lightwave:20130129183908j:plain

主人公はSurpentくん、背景はかきぴーさんに任せて、鬼を作る。この間、ちっくんにはゲームのプロトタイプ作りを、何でも出来るかんこさんは素材作りやUnityエフェクト研究を、ゆうきさんには曲を完全おまかせでお願いし、多忙な増野さんはゲーム業界面白トークで場を盛り上げて次のご予定へ。(今回は大御所の実力を魅せつけてもらえず残念でした) 

 

Sculptris無双。


f:id:lightwave:20130129233638j:plain

Sculptrisを起動する。画像は球体から作り始めてすぐの状態。Grabで必要パーツのシルエットを引っ張り出し、太さ調整はInflateで膨らます。あとはDraw(Cray)で盛り、Flattenで整え、Creaseで細部を彫り、Pinchで仕上げたら出来上がりだ。少ないツールで造形だけに集中し、ポリゴン都合を忘れられるのがとても良い。(この機能、次期Blenderにも搭載される予定。)

 

しかし作品制作にトラブルは付き物。自前のMacBookでファイル保存できない現象が発生しデータ消滅、出鼻をくじかれた。後にこれはGoogleDriveフォルダを保存先にしたことが原因であると発覚するが、問題と向き合っている時間が惜しいので、すぐに会場の貸し出しデスクトップでモデリングを再開した。インストーラが使えないのでSculptris1.01をUSBメモリからコピー。ブラシサイズショートカットのあるPixologic吸収前のVerが大好き過ぎてむしろ好都合だった。


f:id:lightwave:20130129233835j:plain

参加した教え子学生達にも少しアドバイスしながら、制作1時間。この頃、各チームとも企画が出来たり詰まったりで、うろうろ移動&コミュニケーションをしはじめ、数人が画面を覗いて「もうこんなに!?」と驚いたり面白がったり。ビッグスケールの驚きは完成品でお披露目したかったので「ゆるキャラ作ってるよ」と誤魔化した。しかし実際のところ3DCGはスカルプトモデリングが終わっても、テクスチャ、ポリゴンリダクション、UV作成、ベイク、ボーン、ウェイト、Rig、アニメーション、書き出し、動作チェックとまだまだ工程が残されているので、スタートダッシュはこれくらい早くなくちゃ間に合わないのだ。


f:id:lightwave:20130129234915j:plain

当然ながら各種資料とにらめっこしながら作る。動物はデザインしなくても解剖図という詳細な資料が揃っているので便利だ。おまけにハルクなどマッチョキャラのCGなんかもデフォルメの参考になる。


f:id:lightwave:20130130003037j:plain

さて、これ以上作り込んでも時間に見合う大差はない。さっそくBlenderでもろもろ設定し、Unityへ渡して表示してみる。ちっくんのプロトタイプは予定時間の半分ですでに完成しており、主人公目線で見上げると皆「でっけぇ~!www」と笑った。イメージしていたものが形になって見えた瞬間だ。


f:id:lightwave:20130129235848j:plain

しかしこの途切れた尻尾、正面から見上げた時にどうにもよろしくない見え方がする。なんというか、誤解を生む。そこで急遽デザイン変更、修正することに。代わりに追加した背中の角は、敵が後ろを向いていることを分り易くする意図だ。ついでに気になった足元のプロポーションも作りなおした。一度作ったものを修正して設定し直す作業はどうしてこんなに時間がかかるだろう、これが終わる頃には日が昇っていた。


f:id:lightwave:20130130000109j:plain

2日目の朝、およそ140万ポリゴンの鬼モデルが完成。Sculptrisは高解像度テクスチャが苦手なので、テクスチャペイントはBlenderの仕事にした。

 

Blender無双。


f:id:lightwave:20130130001653j:plain

本番用にポリゴンリダクションを行う。ゲーム業界の人は丁寧にリトポするのだろうが、素人目に分からず楽で効率的なのを好む私は「1万4千ポリゴンもあれば美しいべ。」ということでDecimateを使い自動リダクションで1/100ポリゴンとした。これに4kピクセルのNormalmapを貼ったものが古いノートPCでもサクサク動くのだ。聞くと背景には15万ポリゴンも使ったらしい。それが平気で動くなら、この程度なんでもない。主人公は3DsMAXでローポリモデリングされていたが、これにもSubdivisionをかけて良さそうだ。

 

モーション。


f:id:lightwave:20130130002719j:plain

必要なアニメーションをリストアップしておいたので次々作る。良い動きを作るコツは、自分で動いて体の感覚を感じてから作ること。有り難いことにBlenderの標準装備RIGツールのRigifyがきちんとUnityでも動く。さらに、NLAエディターで分けておくとそのまま個々のモーションとして読み込まれる。実はUnity4Proの新アニメーションエディタMecanimも少しだけ素振りしておいたのだけれど、もしここで問題が起きるとプログラマーも私も問題解決に数時間取られる。魅力ではあったが今回は採用を見送った。あと驚いたのがUnityはBlenderインストール&.blendファイル関連付けしていれば.blendのまま読み込めるんだよね。謎の親和性!

 

テクスチャペイント。


f:id:lightwave:20130130173911j:plain

モーションを先に揃えてプログラマーへ渡す。仮に間に合わなくても困らないテクスチャを後にした。同じUVを使うなら、モデルを入れ替える必要がない。MacBookにブラシ素材を入れていなかったので、Blenderのテクスチャ模様をなんとかして使った。今見ると明るい色に怖気付いているのでコントラスト調整すれば良かった。

 

Unityへ。


f:id:lightwave:20130130004252j:plain

そうして3日目、完成したデータが次々と組み込まれて完成像が見えてくる。

(そういや2日目の話が抜けたが、朝帰った私と入れ替わるように顔を出した増野さんのごちでビール飲んだり、そのまま銭湯に行ったりの『未完成打ち上げ』が行われたことを仮眠から覚めてすぐTwitterで知り、「企画を握るボスの身分も切ないもんだな・・」と孤独を感じたので、各チームに挨拶してまわったり、写真撮ったりして負けじと楽しんだとさ。めでたしめでたし!)

超巨大な鬼が動き出す。ドシンドシンと緩急ある複雑な歩行モーションも「関数得意ですから!」と手動調整でピタッと合わせてくれたちっくんに感謝だ。SEもゆうきさんが次々と生み出し、即座に組み込まれていった。前触れ無く録音するものだから、咳き込んでるのかと思えば素材録りだったりして面白い。ただの一度も「ちょっと静かにしてくださーい」とか無かったのが驚き。それにしてもこの地形にこのサイズ。ゲームスタート直後に振りかぶられた棍棒は、マップ中央から端まで届く。素晴らしい・・!!これだ!この絶望感だ!!

 


f:id:lightwave:20130130005605j:plain

・・・しかし現実にはもっと大きな絶望が待ち受けていた。発表会の場で言い訳するのは見苦しいので、初見のインパクト、それにゆうきさんの歌とウクレレパワーで煙に巻いたが、実は大変だったのだ。

 

Unityは、データを追加したり差し替えたりする作業をもプログラマに要求し、本来の仕事をストップさせてしまう。時間に余裕があればよいのだが、48時間の後半戦、素材の量が増えることで、いよいよ進めなくなってしまったのだ。複数人で同時に作業して同期、みたいな事も出来ない。アルファチャンネルによる抜きも不安定で、背景やエフェクトのテストデータを何度も入れ替え確認してきた。いよいよ時間がなくなり、USBメモリで別マシンへコピー、グラフィックはそっちでやる作戦に切り替えたのだが、今度はUSBメモリのコピーが遅い。1GB程度に30分以上かかる計算。そんなバカな。PCの不調と判断し、MacBookにコピーする。そうすると今度はスケール演出に重要なFogが効かない。なぜだ!?

 

我々がてんやわんやしているうちに、ちっくんは敵AIを完成。この間、CG班はUnityに翻弄されるばかりで、後回しになっていたエフェクト、アニメーション、オープニングにエンディング、ゲームの見栄えや完成度に関わる素材がすっぽり実装できずに終わってしまった。昨年はプログラマが二人居たので、追い込み時にも一人はプログラムの仕事ができたが、今年は一人。なるほど今思えば開始直後、渡せるグラフィックデータなんか何もない時のちっくんは恐ろしく仕事が早かった。そういうことだったのか・・!

 

(視界が白くフェードアウト) 

 

上手くいかない経験で学ぶことは多い。そういう意味でも十分に価値ある48時間だった。道具には得手、不得手が必ずある。Unityのように、誰でも使える簡単さと高機能の両立を目指した複雑なゲームエンジンではなおさらだ。「大規模開発には向かない」とよく目にする。それを見て「なるほど使えない」と判断するのもいい。しかし実際に使って無茶することで、極めて具体的なノウハウを身に付け、不得手な部分は回避する方法も考えられるようになる。その経験値が大きな財産だし、実際Unityを使わなければ、GGJの48時間でここまでの形にする事自体が無理難題であっただろう。

 

さらに面白いのは、趣味でなく仕事でCG作ってる人達が「GGJ関係なくキッチリ完成させたい」と言ってることだったりする。いつもは仕事以外でCGなんて絶対作らない男が、提出版を操作しながら新たなアイデアをツイートしているのだ。完成すれば確実に世界と渡り合えるゲームだったという確信。しかしこのままじゃ自慢どころか人様に見せられたもんじゃない現実。プロが集まって未完成という醜態を、奥さんにこっ酷く説教されたらしい w(囲んで倒す操作自体は出来るんだけどネ・・)

  

いずれにせよ、すぐには動けない。我がチームのリーダー兼プログラマーちっくんは大学生で超ご多忙期間。Unityを覚えればイイなんて簡単な話ではなく、どう考えてもちっくんの頭脳が必要だ。ひとまず多忙期を乗り切ってもらい、まだ皆の熱が冷めてなければいずれ完成版や、続・メイキングBlogをお届けしよう。

 

あと、Blenderやろうぜ!(布教活動) 

あと、池上学院の総合ゲーム学(ry(ステマ) 

 

そんなGGJ2013Verはこちらから

MOMOTARO Mukashi-Mukashi Arutokoro ni (Once upon a time )