GameDevのUnityDevLog

Unityでハイグラフィックゲームを制作中です

SakuraRabbitさんのFanBoxを支援してみた

はじめに

みなさんUnity HDRPを使用して活動をしている中国のアーティストSakuraRabbitさんについてご存じでしょうか。

twitter.com

超ハイグラフィックの作品をバンバン出しております。

youtu.be

リアル表現からトゥーン表現までなんでもござれでめちゃくちゃすごい人です。

Unityの社長さんからも一目を置かれています。

最近UE5で実写みたいなゲームを作っているみたいなので話題に上がったものより遥かに実写に近く、また光の表現も格段にうまいものを作っています。

youtube.com

UEは多光源で処理落ちするという重大な欠点がありますので、光量の強いシーンにはまったくもって不向きです。また、めっちゃテカテカしており正直気持ち悪いです。

なので実写のようなものを作るならUnityHDRPの方がはるかにうまいですね。

FanBoxで支援してみた

SakuraRabbitさんはFanBoxを使用して支援を募っており、毎月8000円の支援で作成したプロジェクト丸ごと公開をしています。

sakura-rabbit.fanbox.cc

単純にすごいアーティストなので支援がしたかったのとシェーダーとかどうやって組んでるのか参考にしたかったので8000円を支援することにしました。

プロジェクトはやはりすごかった

早速プロジェクトをダウンロードしてみたのですがSakuraRabbitさんの出している動画そのままが丸ごと入っていて、開いた瞬間から超美麗グラフィックが!!

Gameをスタートしてみましたがめっちゃきれいです。

私の持っているオンボロPC(第4世代Core i7,メモリ DDR4 16GB,GTX1650)ではめっちゃくちゃカクツキましたが、画面から映るそれはまさに実写でした。

一応UnityRecoderで動画を作成しましたので興味があれば見てください。

youtu.be

早送りになっているのは自分のPCがカクついていたからだと思います。すみません。

さいごに

SakuraRabbitさんはすごいアーティストなのでこれからも支援していきたいと思います。

また、これを見てHDRPで映像を作る人が増えていくことを願っています。

Twitterで記事を批判してきた人間に対してのレスポンス

はじめに

私が一番初めに投稿した記事を見て記事のコメント欄ではなくTwitterにて批判を繰り広げている人たちがいます

alweiさんはTwitterを使っています: 「UE嫌いなのは仕方ないけど、コミュニティやEpic Games Japanに対しての批判があまりにも酷すぎるので、さすがにモノを申したくなる記事。 僕がUnreal Engineを嫌いな理由~UnityとUEの決定的な違いを語ります~|DevGame https://t.co/DSGGCXtY96 #zenn」 / Twitter

 

今日はその人たちに反論をする記事になります。

 Unreal Engine界隈はアフィカスが多い

これはまぎれもない事実であり、これは否定できません。

EpicGamesJapanはアフィカスに金をばらまいて宣伝しているのは紛れもない事実になります。

 

そのような界隈に関わりたくないと思うのは普通ではないでしょうか。

 

リンクを貼っているチュートリアル動画について

EpicGamesJapanはアフィカスに金をばらまいているため猫でもわかると書いてあるようにしょうもないチュートリアル動画しか出せません。

Unityはその点全く違い、初心者向けのチュートリアルから高度なシェーダーグラフの運用方法、エモいVFXGraphの使いかたまで新機能が出るたびに動画を作り視聴者に共有しています。

また、現場でUnityを使っている人をがそれぞれのトピックを解説したUnityのバイブル本が出たときにはその紹介のために筆者を招き生配信を行うという懇切丁寧な企画をやっております。

また、UnityJapan社内のTool開発も積極的に行っており、高機能のトゥーンシェーダーUnity Chan Toon Shader 2

github.com

や揺れもののための物理シミュレーション機能Unity Chan Spring Bone、

github.com

Unity内でセル風のアニメーションをAfterEffectsのように制作Anime Tool Box

github.com

など多岐にわたります。

EpicGamesJapanさんは何を開発しているのでしょうか???

広告屋としての印象しかありません。

Unity社員の高橋さんもVFXGraphに関するいろいろな資料やChatGTPを活用したAI Shaderなどさまざまなツールを開発しております。

github.com

github.com

github.com

さいごに

文句があるなら制作物で示せ

正直EpicGamesJapanさんはただの広告屋としか思えません。理由は上記の通り開発を全く行っていないからに他ならないと思います。

EpicGamesJapanさんは何か作ってから反論してきてくださいね。

Unity TerrainToolsを使用してペイントソフトで作った2Dマップから3D地形へ

はじめに

UnityにはTerrainToolsというスカルプティングの要領で地形生成を行うツールがあります。

UnityのTerrainはHightMap(ハイトマップ)という白黒の値(0~255)で高さを表現した図を使ってUnity上で3D描画をしています。

つまり、白黒の画像だけでUnity上で地形が作れるということになります。

この性質を生かし、以下のUnityJapan公式で作成した動画ではTerrainToolsで大まかな地形の形を作り、白黒のHightMapとして出力後、その画像を加工して、より快適にディティールアップを目指したものを作っております。

youtu.be

 

そして、出力もできれば取り込みもできるということで、TerrainToolboxという拡張機能により白黒のpng画像から地形を生成することができるようになっています。

今回はこれをうまく活用し、ペイントソフト上で2Dで計画したマップをUnityに取り込み3D地形にする方法を考えつきましたので、普段Unityで開発されている皆様へ共有できればと思います。

 

今回の目的

・UnityTerrainToolboxを使用し、ペイントソフトで計画して作った2Dマップから自動で3D地形の生成を行います。

・3Dで地形計画を練ったり、スカルプティングで地形を1から整える作業は大変なのでペイントソフトでお絵かきするだけである程度の地形を自動的作ろうというのが狙いです。

・取り込んだ後に通路の設定や拡幅をする必要があるので、それについてはUnity上で行います。

・上の画像では木や草のアセットの配置をプログラムで加工した画像をもとに生成していますがここではしません。(もちろんここで生成した3D地形を出力して加工という手順を踏み再度Unityに取り込むという流れを使ってもよい)

やり方

1.UnityTerrainToolboxの機能を有効化する。

 以下のYoutubeを参考にTerrainToolboxを有効化してください。(0:30~1:30)

 私の場合はすでにインストールされていたようでこの作業は必要ありませんでした。

 

youtu.be

 

2.マップの計画を練り白黒で2Dマップを作成

 次にペイントソフト(Paint.NETを使用していますがどんなペイントツールでもついている機能を使うのでなんでもよい)を使用してマップの計画を練ります。

 私の場合このようなマップを作りました。

 

https://i.imgur.com/9nRb1d5.png

 そして計画を済ませたらこれをもとにちゃんとしたマップを白黒の値で書きます。

 この白黒の値は白が一番高い値、黒が一番低い値になります。

 下のようになりました。ステージは一番低いところでその周りを灰色にして盛って区別しているというようなイメージです。

 

https://i.imgur.com/gXfwxPV.png

 ファンタジーとかに出てきそうなマップになりましたね。

 

3.この状態でUnityに取り込んでみる。

 一応確認のためこの状態でUnityに取り込んでみます。(この作業はあくまで確認なので必要ありません)

 まずマップの画像を正方形のサイズにしてpng形式で保存します。(サイズが正方形でないと生成ができないようなので気を付けてください。)

 次にUnityEditorを開き保存した画像をプロジェクトビューにドラッグ&ドロップをして取り込みます。

 そして「Window」→「Terrain」→「Terrain Toolbox」からツールを開きます。

 Generalの項目ではTerrainの縦、横、高さを設定するので、任意の数字を入力しましょう。

 InportHightmapのTextureに取り込んだ2Dマップをドラッグ&ドロップで適応します。

 それ以降の設定はあまり関係ないため飛ばし、一番下に「Create」ボタンがあるのでそれをクリックすると3D地形が自動生成されました。

 

https://i.imgur.com/9iJG2GS.png

 良い感じに地形が自動生成されてます!成功です。

 

4.2Dマップに高さ情報を入れる

 簡単なゲームならこれで充分だと思いますが、よりリッチにしたいためこのマップのステージごとに高さをつけて起伏のあるマップにしていきます。

 UnityEditor上でスカルプティングして作るのもよいですが、2Dで制作した方が簡単だと思ったため、もう一度ペイントソフトに戻り、画像に高さ情報を入力していきます。

 ペイントソフトで高さ情報を白黒の値(0~255)で入力していきます。

 ステージごとに〇〇mの差があるかを計画し、それにあった値を入力します。

 例えば最高峰の山が255mだと仮定し、最上部ステージはそこから30m下の場所に作成しようとする場合、山の頂上を白(255)として最上部ステージは白身の強い灰色(225)、その下のステージは10m下がって(215)などのようにして、投げ縄ツールや魔法の杖ツールを使用して一気に同色で塗っていきます。

 先ほどの2D画像に高さ情報をつけたものが以下になります。

 

https://i.imgur.com/Gc3zlVa.png

 先ほどの画像と比べわかりづらくはなりましたが、作っているうちは場所を決めて色を塗ってという流れでやっていくのであまり問題になりません。

 また、計画した地形は最終的に255~100の値までしか使わなかったので、画像をレベル調整し、255を255、100を0に保管してこの画像を調整しています。

 

5.Unityに取り込んで3D地形の生成

 3と同様に上のレベリングした画像をUnityに取り込み「TerrainToolbox」から3D地形を生成します。

 ここで少し気を付けたのが、レベル調整をした分高さを適正にして取り込まないといけないということです。

 2Dの高さが100~255の値で155の高低差があるので、Generalの高さを155と指定することで、値が1上がると1mにというように調整できます。(値が1上がると2m上げたい場合は高さを310と指定する)

 出来上がったのがこの地形になります。

https://i.imgur.com/6OQfckp.png

 かなり面白そうな起伏のある地形が一瞬で生成できています。

 これを使うとかなり効率化できそうですね。

6.地形の調整をする。

 生成された地形ですが、ステージごとの境目の色の差が激しいため、崖のようになっています。道がない状態です。

 ステージ同士をつなぐ道を作りたいのですが、これについてはUnityのTerrainToolsを使用した方が快適に作業できます。

 下の画像のようにTerrainToolsの「Script」→「Bridge」ツールを使用することで、Ctrl+ClickとClickで2点間をつないだ道を簡単に作ることができます。

https://i.imgur.com/X2mftcw.png

 その他SmoothHightなどを使って地形をならしたりして、快適な地形を作っていきます。

 完成した地形を歩き回ってみました。

youtu.be

 これに木や草のアセットなどをどんどん配置していくと地形の完成となります。

小ネタ

白黒画像だけで地形が生成できるということでネタで以下のような動画も作ってみました。

Unityへの画像の取り込み方の参考にもなるかと思います。

youtu.be

さいごに

UnityTerrainToolboxを使うと3D地形の生成がめちゃくちゃ効率的になります。

UnityTerrainToolsはスカルプティングの要領でブラシの強さを変えたり、ブラシの大きさを変えたりなどいろいろ設定をしながら作っていかなければならないため非常に大変です。

今回のようにある程度のマップを2Dで制作できるのは大きな利点だといえます。

2DメインでUnityを触っている人にも2Dの流れから3Dに簡単に移行できるので、少しでも触っていただければと思います。

※上で上げているマップの画像だったりレベリングした画像だったりは無断で使ってもらっても構いません。

僕がUnreal Engineを嫌いな理由~UnityとUEの決定的な違いを語ります~

はじめに

みなさんはじめまして現在Unityでハイグラフィックの3Dアクションゲームを作っているDevGameと申します。
昨今のゲーム開発にはゲームエンジンを使ってゲームを作ることが増えています。
ゲームエンジンは皆様が知っているUnity以外にも複数ありその中でUnreal EngineというEpic Gamesが開発しているゲームエンジンがUnityの次に有名なものになります。

今回はハイグラフィックの3Dアクションゲームを作るうえで僕がUnreal Engineを選ばなかった理由と一般的に言われているUnityとUnreal Engineの違いについて共有出来たらなと思います。

 Unreal Engineを選ばなかった理由

私がUnreal Engineを使ってハイグラフィック3Dゲームを開発しなかった一番の理由。
それは、、、

 Unreal Engine界隈のアフィカス(情報商材屋)がウゼェから!!

はい。私がUnreal Engineを使用したくない理由はこれになります。
なぜこのような経緯に至ったのかというと私がゲーム開発を始める際某インターネット掲示板で「Unityってどうなの?」スレッドを立てたところワラワラ湧いてきたのはなぜかUnreal Engine信者たちでした。
彼らはUnityのスレッドに対して「UnityよりUnreal Engineの方がいいよ」と一点張りをするのです。
そして私は「興味ないのでUnityについて聞きたいのですが、、、」と聞くと彼らはそれでも「UnityよりUnreal Engineの方がいいよ」としか答えません。それしか言えないbotなのでしょうか?
そしてさらにひどいことは続きます。私が呆れて「それならどの辺がUnityよりも良いの?具体的に教えて」と聞くと無視(涙目敗走)を決め込むのです。

詳細なやり取りはこのURLから確認できます。

itest.5ch.net

自分の使ってるゲームエンジンの良さも言えないで他のゲームエンジン貶すなカスども
こいつらUnreal Engineすら触ったことねぇだろなんでこんなやつらがこんなにいるのか謎過ぎるのです。

こういう人たちのいるコミュニティには絶対属したくありませんのでUnityを選択しました。

この人たち以外にもZennにすら気持ちの悪いUnreal Engine信者の方がおられます。
この方です。

zenn.dev


この人が下の方に書いている記事

"比較画像、unityでは草とか生えていませんがゲームが重かったため"生やせなかった"が正しいです。一方UnrealEngineは草を生やしてパフォーマンスの設定しなくても普通にスマホ動きました..。(スマホプレイ動画)正直これだけでどっちは良いとは言えませんがパフォーマンスもプロトタイプの時点でUnrealEngineの方が良いと感じました。"

 そんな訳ねぇだろうが!それが限界なら原神なんて作られてねぇんだよ!

ほかのゲームエンジン貶すのも大概にしてほしいですね。ほんとに。

EpicGamesJapanさんもアフィカスには金をばらまく癖に自身のチュートリアル動画は全く出さないという姿勢を貫いています。
EpicGamesJapanさんは還元するという言葉を知らないようですね。
UnityJapanでは公式でいろいろなツールを提供していますしチュートリアル動画もめちゃくちゃためになるものばっかりで非常に助かっております。

github.com

 

github.com

 

github.com

 

youtu.be

 

youtu.be

 

youtu.be

 

youtu.be

 

youtu.be

ゲーム制作のチュートリアル動画も作らずに使ったことないようなやつにアフィリエイトさせてればそりゃUnityに勝てんわなw
EpicGamesJapanさんは金の使いかた少し考えた方がいいと思いますよ。

そのほかUnityのHDRPが超美麗過ぎてUnreal EngineにするメリットがなかったのとUnreal Engineは多光源の際に処理落ちが激しかったりいろいろ理由がありUnityを選びました。

youtu.be

 UnityとUEの違いについて

ここからはUnityとUEの違いについて掘り下げてみようと思います。
上で上げたようにUEはアフィリエイトの影が非常に強いです。コミュニティも貧弱でゲームエンジンもまともに触ったことのないような人が吠えています。

そして私は決定的な違いに気づいたのですが、
ゲームをやりたいやつがUnreal Engine
ゲームを作りたいやつがUnity

この違いです。
ゲームが好きでゲームをやりたい人が良く触ってるゲームエンジンUnreal Engineが選ばれていることが多いです。
UnrealEngineは現在市場のあるゲームを模倣するならいいツールだと個人的には思いますのでゲームをやりたい人間におすすめするのは理にかなってると思いました。
Unityは自分が思い描いたこういうゲームが作りたいを非常に簡単に実現できるツールであります。
だからこそゲームを作りたいという強い意志を持つ製作者やプログラマーから好かれているのだろうと思いました。

 さいごに~これからゲーム制作を始める人へ向けて~

これからゲーム制作を志す方へ
Unreal Engineはアフィカスに浸食されています。このような界隈にいると作りたいゲームも作れなくなる可能性が大です。
フォトリアル系のハイグラフィックゲームの制作についてもUnityで何も問題ないレベルに達しています。
情報量も圧倒的に多く、UnityJapan公式の情報を追うだけでもかなり楽しいしためになります。

こういう記事では中立的な立場に落ち着く記事が多いですが私は圧倒的にUnityをおすすめします。(会社でUnreal Engineを使わざるを得ない場合は除く)