【SpeedTree】UE4にデータを読み込む
SpeedTreeでの木の作成方法などは公式チュートリアルにお任せするとして、
作成した樹木のデータの読み込みと、各種設定についてまとめていこうと思います。
UE4の公式にも情報がまとまっているので、そちらも参考にしてください。
データの書き出し
SpeedTreeで使用したい樹木のデータが出来上がったら、UE4で読み込める形式に書き出しを行います。
使用する樹木データはなんでも構いません。ワークフローを確認したいという方であればサブスクリプション契約の方は無料でもらえるボーナスデータを使用すると良いと思います。
自分は購入したJapanese Mapleのデータで説明していこうと思います。
- メニューバーからFile>Save as with assets... を選択します。
- どこに保存するか聞かれるので保存先を指定します。
- 保存先には様々なデータが書き出されます。
見てわかるようにほとんどが使用しているテクスチャデータになります。
spm … SpeedTreeのファイル
srt … UE4で読み込むファイル
SpeedTreeの設定でビルボードの作成にチェックが入ってると、さらにビルボード用のアトラステクスチャも生成されます。
UE4に読み込む
UE4に読み込むファイルはsrtファイルだけで十分です。
自動的に必要なファイルもインポートされます。
- srtファイルをコンテンツブラウザにD&Dもしくは、インポートから参照して読み込みます。
- インポートオプションが表示されます。
設定諸々ありますが、ひとまずはそのままインポートボタンを押しましょう。
設定については次で解説します。
- このようにテクスチャとマテリアルもあわせてインポートされます。
スタティックメッシュを開くとこのような感じで4つマテリアルがアサインされてます。SpeedTreeの難点としてはマテリアルが必要以上に多く使用することになってしまうでしょうか。
インポートオプション
設定項目が色々ありますが、よく使う部分だけ説明しておきます。
他にも色々あると思うのですが、よくわかってないのでわかってきたらまた追記していきます。
Geometry
- 3D LODs … 3Dメッシュのみ読み込みます。この場合、ビルボードは読み込まれません。
LOD Setup
ここの設定はまだ良くわかってないので保留。
- Painted Foliage
- Individual Actors
Create Materials
マテリアルを作成するかどうかのチェック項目です。
特に設定しないでインポートした場合、以下のようなマテリアルが作成されます。
オプションの設定項目はこれらの設定に影響します。
- Include Normal Maps/ Detail Maps / Specular Maps … ノーマルマップ、ディテールマップを接続するかどうか。接続しない場合、コンスタントの値が接続されます。(上図ではスペキュラに接続されてる0のような感じ)
- Include Branch Seam Smooth … 幹と枝に差し込み部分のぶっ刺しを緩和してくれる処理をマテリアルに設定します。ヒーロープロップのようなプレイヤーの視線に近いものなどには有効な設定ですね。
- Include SpeedTree AO … SpeedTreeから書き出したメッシュはAOが頂点カラーに設定されてます。その頂点カラーをAOとして使用するかどうか。
- Include Random Color Variation … BaseColorに自然な感じに色の差を与える[SpeedTreeColorVariation]ノードが接続されます。
Random加減はAmountの値で調整します。(デフォルト0.05。下図は1) -
Include Vertex Processing … ワールドポジションオフセット(WPO)で制御する処理を使用するかどうか。
WPOで行われる処理は主に2つあります。
◯Include Wind … 風によって樹木を揺らす処理。風はWindDirectionalSourceをレベルに配置することで起こす事ができます。
◯Include Smooth LOD … LOD変移を頂点を滑らかに変移させる処理。ただ、LODレベルが低くなるとpopに切り替わったりするので基準がよくわからない…。
これらの設定は[SpeedTree]ノードにて設定されています。あとから設定を切り替えることも可能です。
データ更新
SpeedTree側で何か変更を加えて、データを再インストールしたい場合はsrtファイルを再インストールすることで一通り更新することが出来ます。
その時にインポートオプションが立ち上がるのですが、デフォルトから変更書けていた場合、その情報はキープされていないので再度設定が必要です。
また、一度インポートされたマテリアルは更新しても内容が上書きされない点にも気をつけてください。(4.16で試して起きてました。これはバグかな?)