Unity用シェーダー

とりあえずステージ用のシェーダー完成
適当に盛り上がらせたモデルに実際適応してみる。

bl2.png
テクスチャをぽいっと投げるだけで砂漠から草原?へ
bl1.png

出来ることは・・
・テクスチャ1に対してマスク処理を通した2を描画
・テクスチャ1の見えている部分だけ効果があるノーマル、テクスチャ2の部分だけのノーマル、どちらともにかかるノーマルマップ
・カラー等基本的な調整

追加で
・ディスプレイス
・細分化

普通に・・といっても人それぞれですが、ステージモデルのマテリアルの設定で普通に行われていそうな処理は導入できました。
水やら鏡面やらはまた考えます。
追加の方はいまのところ使う予定はなし。なんか難しいし(

ところで、テクスチャは5枚か6枚か設定できるみたいですが、どういう区切りなんだろう。
今はテクスチャ2枚、α抜き用1枚、ノーマル用1or2枚で5枚だけど、んーー、まぁ、エラー返されたらその時考えよう・・
最近いろいろやりたいことがあって困っちゃうね。

---------------------------------------
拍手2件と2件有難うございます。

テーマ : ゲーム - ジャンル : ゲーム

帰還と作業

1週間ちょっと遠出をしていました。
長時間の移動で少々疲れましたが、近くにはない素材になりそうなものをいくつか撮影できたのでよかったです。
唯一がっかりしたことは雪山撮れたのにぼけて・・

さて、出ている最中も開発については色々考えていました。
その中でも、高速化の部分でもっと強力な効果のあることができないだろうかと考えていたところがまとまったので早速導入。

とりあえず結果から言うと・・
fpsが平均137から198ほどまで向上しました。

高速化・・なんていうと、まるで高度なアルゴリズムを導入したみたいな感じですけど、実際は超原始的な方法です・・・
簡単にいうと描画処理をいくつかにわけ、その更新速度を変えることで処理が呼ばれる回数自体を減らそう、というものです。
なので、例えばエフェクトだけちょっとカクカクしてる、みたいな感じになりますが、他の処理はそのままなので操作感は一切変わりません。

この処理自体は・・簡単でした。
何度も失敗したので処理は種類ごとかなりまとめるようになっており、多分導入の作業時間自体は1時間もかかってないです。
問題は・・なぜかよくわからない。よくわからないけど、fpsが40で固定されるという謎減少。しかもランダム発生という最悪のパターン。
結局ここで5時間くらい使って土曜日終了。
なんとかいまは機嫌よく動いているけど、いつまたなるかわからないし、原因もわかってない。この部分を触らないでおこうという状態。

あ、あと他にもいくつかそれらしいこともしました。
例えばマスク通すとき、そのままマスクスクリーンで処理するのか、それとも・・という具合に、処理自体を変えての高速化もされています。
ここはちょっとまだ実験中なので何とも言えないですが、VRAMには(場合によっては)優しくなったんじゃないかと思います。

とりあえずこの不安定な状態をどうにかしたいな。

テーマ : ゲーム - ジャンル : ゲーム

Unityでテクスチャ実験

○○ができないはずがない。
ってくらいUnityの描画関係は信用しているが、実際私にできるかどうかが気になったので、以前のものとも比べながら試してみました。
真っ先に試したのは、絶対必須のマルチテクスチャ。

無題
岩に葉っぱを張り付けてみました。普通にできてますね。
リピート数やUVも自由自在に変更できるし、なにより私がちょっと眺めただけで理解できるというのが素晴らしいと思いました(

これは葉っぱがアルファ情報を持っていますが、他にも・・・
・マスク処理によって指定したテクスチャを一部透過させる
・加算乗算等々でのマルチ
・ディスプレイスやノーマルマップ等々との組み合わせ
なども可能でした。

リムなんかも簡単に追加できますし、とっても便利。
個人的には細分化が少ない文字数でできてしまうことが最も驚いた点ですね。これはイベント時なんかに使い分ければクオリティをぐっとあげられそう。
ちなみに一番苦労したのはスペキュラでした。なんかうまいこと反映されないどころかエラーを返されまくった。でもなんかできてた。

ぶっちゃけ実際にこうやって触るまでの間、いろいろなところでなにができるかなーと情報収集していたんですが、どこもシェーダーシェーダーでびびってました。
触って納得、なるほどこれは色々弄りたくもなるなと。
シェーダーを一から自分で書け、となると本当に大変なんです。マップはこれ、キャラはこれとかならともかく、オブジェ単位で作るなんて無理でした。

あとはゲーム内設定でシェーダーを柔軟に変更できたりすれば理想的なんですが、いまだにゲームオブジェクトへのアクセスがよくわからないのだ!
ソース書くとなったらMONOなんとかさんを一番に変更したい。

テーマ : ゲーム - ジャンル : ゲーム

グラフィックにどこまでメモリを使えるのか

最近いよいよ本気でスマホの勢力が恐ろしい。
正直もうパソコンがー据置がーとか言ってられないので、こっち方面でやってこうと思うならスマホで出来ることも把握しなくてはならない。

とはいえ、パソコンですらけっこう削らないとやっていけない状態なのに、スマホでいけるの?と気になったので実際確認してみた。
(わりといい加減な記事なのであてにしないでね)
vram.jpg
テクスチャのみで、マップやマスクは含んでいない。
ここにさらに、エフェクト、敵モデル、オブジェクト、インターフェイス等々が乗っかり、GPUを監視してみたところ最大で650MB以上も使用していた。
さてこの650という数字、PCのいろいろな数字が増えに増えまくった現代において大した数字でもない気が、実はまずかったりする。
メモリ、HDD・・いろいろすっごくなったけど、VRAMだけは思った以上に余裕がないのです。
例を出すと、GTX500台が1GB、600台が2GBくらいある。
つまり、ゲーム以外にもいろいろ展開してるわけですから、1GBの環境で試すとタイミングによっては中が落ち着くまでfpsガタ落ちするんです。

ちなみに、Xperia Z3 SOL26はRAMが3GBで、そのうちVRAMが320MB使っているそうだ。
正直スマホのVRAMをグラボに近い存在として扱っていいのかわからないのでなんとも言えないが(いわゆるオンボ的ポジションじゃないの?ということ)、とにかくまったく余裕がないことはわかった。
小型のスマホはRAMが1しかない、なんてものも普通にありますし、そんな環境で動かそうと思ったらメモリに展開した途端溶けだしますわ。
スマホの速度は正直思ったよりずっと速かったけど、作業スペースという意味では今後に期待かなーとか。でもデカイのはやめてよね。


・・で、ここからが大切。
きっとモデリングとかゲーム作製してる人がみると、「なんでこいつこんな解像度の画像展開してんだ・・?」となると思う。
いや、私のゲームの画面がそれ相応ならそうは思われないかもしれないけど、すくなくともここではそういうことなのだ。
要領が足りないから、という理由でエリア制のマップにして消費を抑えておきながら、その結果がこれときた。あきれちゃうね。
ちなみにダイエット前は4000*4000で溢れてた。

まぁこうなった原因は分かりきっていて、私のレンダリング方法が極悪な贅沢&低品質というところにすべて収束されているわけですが。
どういうことかというと、使用している環境でマルチテクスチャがそのままでは扱えなかったため、テクスチャごとの設定を反映させるのが難しく・・
じゃあどうすればいいのかと考えた時、たどりついた答えが描画結果を1枚にすることだったが、そうなるとテクスチャごとのループ設定が使えない。

「解像度を上げてグラボに頼ればいい」

1年前、どうして誰も私を止めなかったのだ・・
そもそもですね、1024*1024と2048*2048とでは4倍サイズが違うというのに、その見た目は残念ながら必ずしも4倍美しいものにはならないのです。
プレイヤーや敵といったゲームで重要なポジションであるものであれば、ループもさせ辛いですし2000以上を選ぶ選択肢は十分あると思います。
ただ、同じパーツが何度も使われるだろうマップにおいては、繰り返すという選択肢があるので強引に高解像度にしてもしょうがないのです。

ただ、間違いに気づいたのが少々、いやだいぶ遅かったので、今から今までのデータを全て修正するというのは難しい。
なにより、新しい描画処理はモデル単位でプログラム側での調整が必須な為、移植に時間がかなりかかってしまう。
ただ、現状ベストの方法で作製したものは、何倍にも広いマップで扱えて、様々なテクスチャが使用できる上従来のものより圧倒的に美麗になった。

少しずつ進歩していっている気がする。
・・・もっと頑張って勉強しなくては。

---------------------------------------
拍手3件有難うございます。

テーマ : ゲーム - ジャンル : ゲーム

新マップと技術アップ

約二週間ぶりですか。
今回は新しいマップの追加と技術アップを目指しました。

kazan1.jpg
火山ステージのパーツのひとつ、「マグマの流れる岩」です。
なかなかに気合を入れて作ってみましたが、そこそこいいんじゃないでしょうか、っと自画自賛。
テクスチャはすべて自前。撮影大好きなので岩撮るのが苦じゃないのは本当助かります。プチ冒険気分でいい素材探したり・・
マグマはもうちょっとどうにかなったかなぁと思うのですが、2枚をスピードを変えながらスクロールするのが限界でした。

最近作り方を変えまして、レンダリングするときはハイポリ、ゲームで使うときにはローポリのほうで、というのがしやすくなりました。
とくにベイクで出来ることがいろいろわかってきたのがでかい。
・・・しかし、それでもちょっとコストが高すぎるのと、私のレンダリング環境が酷いせいで残念ながら今作っているゲームに組み込むのは難しそう。処理的にはできなくもないですが、ちょっと・・

っというわけでどうなるかわかりませんが、DX12の進化に期待したり、もしかしたらUnityで動かすかもなのでそっちに頼ったりで使うかもしれない。
個人的にはいつものライブラリが12に対応して貰えたらなーなんて思ってるんですが、それはさすがに頼り過ぎですよねー|ω・`)チラ

テーマ : ゲーム - ジャンル : ゲーム

リンク
報告
20150405 新カテゴリ追加
月別アーカイブ