こんにちは!トイロジックで背景を担当しているデザイナーのせうです。今回は、『Warlander』で使用された大量の破壊モデルを効率的に作成するHDAをご紹介します。『Warlander』では背景アセットがたくさん壊れます…! 目に入るアセットほとんどが、これでもかというくらいに…(笑)
※HDAとは、Houdini Digital Assetの略です。

なので、新しいアセットを追加すると、破壊用のモデルを作成する工数も自然と発生します。シンプルなモデルならまだしも複雑なモデルを手で破壊するとなると気が遠くなる作業です…。そこで今回は、パーツ数を指定して、パラメータをいい感じに触るだけで破壊モデルを作れるHDAHoudiniで作成してみました!

 

まずは頭の中でどんなアプローチをしたら実現できるかを簡単に考える

Houdiniは料理にすごく似ていて、レシピがないままいきなり作り始めてもあまり上手くいきません。なのでまず、どうアプローチをしたら良いかを簡単に考えます。今回HDAを作る上で取り入れたい機能をまずはざっくり考えました。

  1. パーツ数を指定できる
  2. 破壊表現をパラメータを触るだけで簡単に制御できる

やりたいことが明確化できたら、どんな機能を使えば実現可能かを考えていきます。1.は、モデルに対してScatterでポイントを散布Voronoifractureで分割、でよさそうです。2.の破壊表現については、1.で分割された各パーツのエッジがいい感じに欠けていればそれっぽくなるなと考えました。

Voronoifractureでの分割は、各パーツの切れ目がきれいになりすぎてしまうので、パーツの切れ目となるエッジをいい感じにできれば破壊モデルとして使えそうです…!

 

テストモデルで検証してみよう

先ほど考えたアプローチを簡単なモデルでまずは検証をします。Scatterでポイントを散布Voronoifractureで分割をします。

 
次に各パーツのエッジに対して処理を加えていきます。今回の処理はとてもシンプルで「boolean」を使用しました。boolean用のモデルは、remeshでトポロジーを均一化し、mountainノードで形を変形しています。mountainノードの後にpeakノードを入れ、さらに法線方向へのポイントの移動を調整できるようにすることで、エッジを削る範囲をコントロールしやすくしています。

  
元のモデルと変形したモデルをbooleanすることでエッジがランダムにかけた表現を作ることができます。

  

これをすべてのパーツに処理をするとこんな見た目になります(いい感じ…)

 
いろんな形状のモデルに差し替えても破綻はないので、破壊の仕組みとしてはこれで完成です。

  

分割以外の様々な追加アプローチ

ここまで、「モデルを分割して破壊表現を入れる」という部分にフォーカスしてお話ししましたが、実際にこの仕組みを使って破壊モデルを作成するにはまだまだ機能が足りません…。

例えば、分割したパーツにぶっさしで配置しているモデルを結合して1パーツとして出力したい。


 
 
削った部分のUVを自動で開いて、UVのスケールもコントロールしたい(断面部分にはタイリングテクスチャを使用する想定です)

 

断面の凹凸をコントロールしたい、UVを維持したままリダクションをしたいなどなど…これらの要望を反映させた上で作業者に触ってもらうパラメータを全て外に出しています。

作業者はこれらのパラメータを、感覚的に触るだけでいい感じに破壊モデルが作成できるというわけです。実際に、このHDAを作ったことで3日くらいかかる作業が2~3時間で終わらせられるくらい効率的に破壊モデルを作成できるようになりました。また、このHDAを使うことでクオリティの管理がしやすくなるというメリットもあります。

最後に

いかがでしたでしょうか? 今回は、『Warlander』で使用した、破壊モデルを効率的に作成するHDAを簡単にご紹介をさせて頂きました。今回紹介したもの以外にも、アセット制作を効率化するHDAを作っているので、また機会があればご紹介させて頂こうかなと思います!

現在も背景班は『Warlander』のアップデートに向けた新規マップを鋭意制作中です。皆さんにもっと楽しんで遊んでもらえるように頑張っていきます! 最後まで読んで頂き、ありがとうございました!

著者紹介 せう
2020年にトイロジック入社。『NieR Replicant ver.1.22474487139…』の開発に参加し、現在は『Warlander』の背景を担当。Houdiniのプロシージャルワークフローに魅せられてから、Houdiniを独学で勉強中。