うどんてっくメモ

技術的なメモをまったりと

Blenderでゲームのコストカットしたりタイトル画面作ったりしてみた

この記事はNITMic Advent Calendar 18日目の記事になります
今回はBlenderを用いたちょっとしたテクニックを紹介します
Blenderの自体の操作説明に関しましては省略しますので、ご了承ください


ゲームとレンダリングコスト

最近ではハイエンドなグラフィックを売りにしたゲームが増えてきました
中でも本当にこれはCGなのか?と疑ってしまうようなものもあります
しかし、ハイエンドなグラフィックほど裏では莫大な計算処理が施されています
リアルタイムレンダリングでそういったリッチな表現をこなし続けるというのは、不可能ではありませんがそれ相応のグラフィック性能を要求されることになります
特に流体シミュレーションや、サブサーフェス・スキャタリング、透過処理といった重めの処理はリアルタイムレンダリングだとそれっぽい表現でぼかすということも少なくありません
でもリッチな表現を使いたい!という人のために、今回はBlenderを使ってその表現をプリレンダリングし、テクスチャに起こしてしまうことで比較的低コストでリアルな表現を取る方法を紹介します

Blenderでプリレンダリング

リアルタイムに計算するのが難しいならあらかじめ計算してしまえ!ということでBlenderを使ったプリレンダリング技法の紹介をしていきます
今回使用するのはBlenderに標準で搭載されているCyclesレンダーというレンダリングエンジンです
後、今回レンダリングをより快適に行うためGPUレンダリングを採用しています、Blenderはこういう切り替えもお手軽にできるのでお勧めです
f:id:myudon:20171217222351p:plain
今回題材にするのはこの何の変哲もない宝石の入った宝箱です、これにCyclesレンダーを用いてまずそれっぽいリッチな加工をしていきます
今回はBlenderを使ってリッチな表現をするという趣旨ではないため、そこの過程については省略します
f:id:myudon:20171217222716p:plain
分かりやすくコテコテに表現を盛ってみました
金属光沢やIBL(Image Based Lighting)、透明処理や屈折光など重い処理が盛り盛りです
f:id:myudon:20171217224445p:plain
このレンダリング結果をテクスチャに焼いていきます、右下のメニューにBakeという項目が存在するので、そこで焼く表現の設定や実際に焼くコマンドを行います
また、この時Samplingの項目を設定してあげることで精密度を上げることができます、もちろん細かいほうが綺麗ですがその分レンダリングにも時間がかかるのでそこは注意です
(あまりにも設定を上げ過ぎるとBakeに数時間かかっちゃったりします)
また、Bake先のテクスチャについてはマテリアル内で何にもつながってないテクスチャが必要となります、ここ割とつまづきやすいので注意しましょう
f:id:myudon:20171217235158p:plain
またBakeするからには、UV展開がされていることも必須なのでその辺の手順もしっかりと踏みましょう
f:id:myudon:20171217230824p:plainf:id:myudon:20171217230827p:plain
宝箱の外部のテクスチャを結果の例として焼いてみました
映り込みまでもがしっかりとテクスチャに反映されているのがわかると思います、リアルタイムで計算せずにテクスチャにあらかじめレンダリング結果を焼くことでリッチな表現を残しつつコストカットができるというわけです
勿論、リアルタイムレンダリングとは違って、動かしたり違う視点から見た際に違和感が出てしまうというデメリットがあります
なので使いどころをしっかりと見極めて、使えそうなところはコストカットを図っていくといいでしょう

プチ応用例(タイトル画面の作成)

一般的には上記のような3Dモデルのレンダリングコスト削減に用いる技術ですが、使い方によってはこんなこともできちゃいますという例です
f:id:myudon:20171217231952p:plain
これは自分が過去に制作したゲームのタイトル画面です
個人制作であったため、タイトル画面などのデザインリソースが間に合わずどうしようか画策していた時にある方法を思いつきました
それは、Blender内でタイトル用の1シーンを作り、テクスチャとして焼いてしまおうという方法です
f:id:myudon:20171217233025p:plain
制作風景です、カメラの前にゲーム内で使用するキャラクターやオブジェクトを配置していきます
タイトル用なので解像度あげあげでリッチに仕上げていきます、それでも焼くのにかかった時間はせいぜい1時間ほどでした
f:id:myudon:20171217233322p:plain
これがオブジェクトの配置が終わり、環境光も含めてベイクしたものです
3Dモデルを配置していくだけなので、どんな構図でも大丈夫なわけです
後はこの作業が撮影監督になった気分で楽しいですね!
f:id:myudon:20171217233849p:plain
後はこの画像を元にPhotoShop等のデザインツールで仕上げを行います(自分はGIMPでやりました)
ここにタイトルロゴなどを加えて完成となりました、制作期間もそんなにかからなかったです
このように、ちょっとしたワンシーンを画像にしたい時などにもBlenderは活用できるので試してみてはいかがでしょうか