概要
記事執筆時点
2019/03/09
エンジニアがUnityのTerrainツール使って背景っぽいものを作るのにあたって書き残したメモ。
HDRPに途中から切り替えたので、そのとき当たった壁の解消法も残しています。
作業環境
Platform | Unity Version |
---|---|
Windows | 2018.3.8f1 |
- Terrainツール
- UnityTerrainEditor
- RenderPipeline
- HighDefinition Render-Pipeline
- PostProcess
- PostProcessStack
なんでUnityのTerrainツール?
なんとなく使ってみたかったので。
RenderPipelineとかShaderGraphとか使うならついでに勉強できるかなという期待
参考にしたマニュアル
Unity - Manual: Terrain Engine
-
日本語マニュアルも存在するが、バージョンが古いためツールの操作の参考にはならない
- わからない単語とかTerrainオブジェクト設定のプロパティの確認に使うのがよさそう
-
Terrainオブジェクトを新しく作ったり高さ全リセットするとベイクが走る
- そこそこ時間がかかる
- とは言え広さと解像度によると思うけど数分で終わる
- HDRPにすると時間が増えた気がする
Unity - Manual: Terrain Layers
TextureのLayerの設定
下記で紹介しているTerrainToolkit使うとほとんどLayerを直接触らなくなった
2018.3 Terrain Update: Getting Started – Unity Blog
2018.3でアップデート、追加されたTerrainの機能。
AssetStore, Packageでインポートしたアセット
Terrain Toolkit 2017 - Asset Store
Terrainのテクスチャとかディティールとか自動で作ったりするツール群
高さに応じたテクスチャのレイヤーのブレンドもやってくれる
Post Processing Stack - Asset Store
Unity公式のPostProcessアセット。
ポストエフェクト。
レンダリング時に色調補正したりDOFを加えたりするのに使用する
Layer設定でDefaultのままだとパフォーマンスに影響出るかもって警告を出力されるのでとりあえず変えておく
RenderPipelineの変更
HD レンダーパイプライン:アーティストのためのクイックスタートガイド – Unity Blog
手順は上記UnityBlogの記事が参考になります。
プロジェクトを途中からHDRPに変更する際にやることとしては、下記項目になります。
- PackageManagerでRenderPipelineのパッケージをインストールする
- Render-PipelineCore
- HighDefinition RenderPipeline
- ProjectSettingのRenderpipelineアセットにHDRenderpipelineアセットをアサイン
- マテリアルをHDRP対応したものにアップデートする
- メニューから一括でアップデート出来るようになっているので使う
- 出力するカラースペースをGammaからLinearに変更する
High Definition Render Pipeline overview · Unity-Technologies/ScriptableRenderPipeline Wiki
HDRPの機能リファレンス
注意点
パッケージをインストールする順番
PackageManagerから入れるRenderpipelineは、最初にCoreをインストールしましょう。
.
RenderpipelineCore
↓
HDRenderPipeline
.
の順番になります。
Consoleに下記のエラーが出力される
High Definition Render Pipeline doesn't support Gamma mode, change to Linear mode
Unity - Manual: Linear or gamma workflow
単純にHDRPがガンマ出力をサポートしてないみたいなので、Linear出力するようにプロジェクトの設定を変更しましょう。
プロジェクト作成時にHDRP選択してないとデフォルトはガンマ出力になってるっぽいです。
作ってたTerrainオブジェクトが表示されなくなる
マテリアルがピンクになるでもなく、単純に表示されなくなりました。
試しに新規でTerrainオブジェクトを作ってみると表示されます。
新しく作ったところと古いオブジェクトの設定を見比べるとマテリアルに差がありました。
ということで、HDRP対応のTerrainマテリアルをアサインする必要があります。
上図のようにTerrainのプロパティの設定からMaterialをCustomにしてHDTerrainMaterialを選択。
AssetStoreの大体のアセットが対応してない
まだPreview版ですしね。
フォーラムに色々書き込んだらUnityの人とかが対応してくれるかもしれない。
でもRenderPipelineが公式対応されるとアセットストアで配布してる人はRPの対応を迫られるんでしょうか。
疑問。
ここまでの成果物
ポストプロセス適用
だいたいモデル完成
モデル作成中
ラフ絵
その他メモ
作業中のメモ書き
作業のメモ書きにQiitaを使用。
テキストが書ければ何でも良かったけど、WEB上で書いて勝手に下書き保存してくれるのでなんとなく選択。
あとでどうせQiitaに投稿するつもりでいたので最初からそこで書いてしまった方が早いなということで。
WindowsのPCで実作業、MacbookとかiPhoneでQiitaとSlack見て振り返りとかする
ただし資料もだいたいWEBのものを見るのでChromeのタブが無限にできる。
メモリが!足りない!
メインメモリ最低16GBはエンジニアの人権に最低限本当に必要。
自分との会話
若干怪しげな単語に見えますが、Qiitaにメモるまでもない思いついたこととかTodoを
Slackの自分だけのグループチャンネルにバンバン投稿してメモっています。
しばらくした後の自分がそのメモったスレッドに返信していく感じ。
何するか、何をしようとしていたか、今の状況のスクショとかをSlackで書いていってます。
後で「なんだっけ・・・」「何しようとしたんだっけ・・・」ってなったときに一応見返せる。
自分用だから文章もかしこまらないでOK。
ちゃんとした作業ログを残すならそういう目的を持った別のサービスを使った方がいいとは思います。
参考
Unity - Manual: Terrain Engine
UnityのTerrainで大地を創る - Qiita
Terrain Toolkit 2017 - Asset Store
【Unity】HDRPを使ってみる