このダンジョン作成レッスンは、Wave Function Collapse アルゴリズムを使用してゲームレベルのベース形状を定義し、Houdini デジタルアセットを構築して UE4 で様々なダンジョンを生成します。WFC 技術はプロシージャルレベルデザインを強化するもので、レベル生成を簡単なコントロール設定からより大きなソリューションを生成、レベルへの最終出力を可能にします。このコントロールは、ビットマップ画像またはポイント上のアトリビュート、このレッスンでは両方の方法を使用します。


ダンジョンに配置されるプロップの作成は、こちらのチュートリアルで紹介されています。 


注: ここのレッスンではSideFX Labs ツールを使用します。開始前に最新のツールインストールしてください。
このプロジェクトファイルは、Unreal 4.24 を使って作られました。


紹介

開始にあたり、完成したアセットを UE4 で見て、WFC の機能のを見ていきましょう。次に、以下の4つのレッスンで学ぶテクニックを理解するために、ツールがHoudiniでどのように構成されているかを探っていきます。

再生時間: 06分21秒

パート1 | Wave Function Collapse ノード 

このレッスンでは SideFX Labs にある WFC ノード群をどのように連携してレベル生成のためのパターンを作成するのかを見ていきます。 次に、SideFX Labs の Wang Tiles Sample ノードを使用してグリッドを埋め、完成したレベルの基本的な形状を作成します。

再生時間: 14分26秒

パート 2 | Basic Layout using WFC

ポイント群ができレベルが形成されていくのがわかれば、次の手順は、UE4 内のジオメトリへのレファレンスをアサインし、点群をアセットで置き換えられるようにします。これには Attribute Value Replace ノードなどのツールを使用することで、Blueprint リファレンスをより簡単にアサイン可能です。

再生時間: 25分12秒

パート 3 | Add Walls and Cliffs 

壁や崖の面は横向きのため特別な設定が必要です。これには、対し正しい方向に向いた法線を持つポイントを作成し、これらの壁が WFC レベルデザインからプロシージャルに生成できるようにすることです。

再生時間: 18分39秒

パート 4 | Decorate the Rooms 

レベルに柱、木箱、破片、敵を配置するには、既存のジオメトリに2番目の WFC 設定をレイヤとして使用しプロシージャルに生成します。WFC を様々な方法で使用することで、ゲームプレイに対応したリッチなゲームレベルの作成方法を示しています。

再生時間: 25分16秒

CREATED BY

SIMON VERSTRAETE

Simon is a tech Artist that loves building procedural tools and assets. By adding more and more procedural approaches to his workflow, he is able to build 3D models with speed and flexibility. During his studies at Digital Arts and Entertainment, he taught himself how to work with Houdini. After his studies, he started working on Ary and the Secret of Seasons at eXiin. Currently he is a Houdini freelancer and focuses on creating procedural content.

More from Simon Verstraete

コメント

  • bazuka 1 ヶ月, 3 週間 前  | 

    Great tutorial my friend, thanks for sharing knowledge ;) with everyone

    Cheers

  • BlissettDMB 1 ヶ月, 3 週間 前  | 

    Always Quality From SideFx and Seriously great quality work from #Simon Verstraete.
    I've had a quick scan of this course, and I can definately see new quality tools and workflows that will aid My Pipeline.
    Always top quality training.
    Thanks Simon and Thanks SideFx.

  • klaexian 1 ヶ月, 3 週間 前  | 

    Forever grateful Simon.Your lessons have helped so many artists all around the world.And thanks SideFx for the ever amazing Houdini.

  • AndreasNull 1 ヶ月, 2 週間 前  | 

    Great tutorial and tool!
    For some reason, the WFC Initialize Grid does not have any kind of visualisation on my end.
    I see only points.
    Houdini Apprentice 18.0.416 + Lab 416 (local). Any advice?

    • dantarion 1 ヶ月, 2 週間 前  | 

      Click the eye thing at the bottom right of a viewport to go to Display Options. Go to the geometry tab, Particle section at bottom left, "Point Size" is what you want to adjust.

      I was wondering this too, by default it was so small I couldn't tell if loading the texture worked right or not.

      • Siver 1 ヶ月, 2 週間 前  | 

        The visualization of the pattern should be there when used the latest version of Labs, non-production . Further these are guides coming from the HDA.

  • dantarion 1 ヶ月, 2 週間 前  | 

    I feel like I am doing something wrong. After the wavefunctioncollapse node, the Cd attribute no longer exists on my points. I can see that name gets assigned to 1_1_1 or 0_0_0 but it looks like the wang_tiles_decoder is expecting a Cd attribute.

    I also had an issue where the sample image's jpg compression had some offwhite pixels in it? I'm not sure if user error but would love to finish this tutorial series!

    • dantarion 1 ヶ月, 2 週間 前  | 

      Fixed my issue by using an attribute copy node to copy the Cd attribute back to the points, matching with the name attribute :D

  • Kvale 1 ヶ月, 2 週間 前  | 

    If you download the latest "non production build" from github and install Labs manually, the WFC tools has been updated to include visualizer and Cd attrib.

    Github:
    github.com/sideeffects/SideFXLabs

    Install guide:
    www.sidefx.com/tutorials/sidefx-labs-installation/

  • gabhpe 1 ヶ月 前  | 

    Hello Simon.
    Great tutorial!
    Is it possible to use trace psd file, draw a bluepritn of a level, and use it with wang tiles decoder to detect the tiles?
    I am trying to do so but without success.

    • Siver 1 ヶ月 前  | 

      Hey,
      Yes that would be possible. I think you should look how the WFC_Initialize works as this does what you are looking for. It converts an image into points with colors that are used for the Wang decoder.
      In general you can do a WFC_Initialize (this loads the image) then doing a Wang decoder then using the Wang samples to preview.

  • kuimig 1 ヶ月 前  | 

    GJ Simon
    thx for share!

  • DirtPizza 1 ヶ月 前  | 

    Does anyone experience the WFC_Initilize from texture producing not whole numbers on the name attribute like "0.991_0.991_0.991"?

    • Siver 1 ヶ月 前  | 

      Yes, that can happen sometimes. I noticed it as well. What I often do is use the color adjustment node and use the contrast or other sliders to tweak it.

      • DirtPizza 4 週間, 1 日 前  | 

        Thanks!

  • DirtPizza 4 週間, 1 日 前  | 

    Is anyone experience Houdini crashes when trying to add Parameters to the HDA?
    As soon as I add the Rows from the WFC_Initilize and hit Apply or Accept I get a crash.

    30984: Fatal error: Segmentation fault
    Saving application data to

    • DirtPizza 4 週間, 1 日 前  | 

      Caught signal 11

      Traceback from 15056 ThreadId=0x00008b80
      CURRENT THREAD 35712
      +0x17628623 [GA_ATIString::setString] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libGA.dll
      +0x176209c4 [GA_ATIString::copyData] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libGA.dll
      +0x0d3fcf40 [SOP_AttribTransfer::xferAttribs] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d3ff6df [SOP_AttribTransfer::xferGrpAttribs] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d3f7478 [SOP_AttribTransfer::cookMySop] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d94519d [SOP_Node::cookMe] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x1807ee0a [OP_OTLOptions::operator!=] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x1808c0bf [OP_Node::cook] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x180aa01b [OP_Node::internalCookInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x180aebfa [OP_Node::lockInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x0d94ddb0 [SOP_Node::lockInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x17f74f91 [OP_AutoLockInputs::lockInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x0d943702 [SOP_Node::cookGuide] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d3480ce [SOP_NodeVerb::cookInputs] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d9454ec [SOP_Node::cookMyselfAsVerb] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d94519d [SOP_Node::cookMe] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x1807ee0a [OP_OTLOptions::operator!=] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x1808c0bf [OP_Node::cook] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x180aa01b [OP_Node::internalCookInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x180aebfa [OP_Node::lockInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x0d94ddb0 [SOP_Node::lockInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0dd06b28 [SOP_Switch::cookMySop] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x0d94519d [SOP_Node::cookMe] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libSOP.dll
      +0x1807ee0a [OP_OTLOptions::operator!=] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x1808c0bf [OP_Node::cook] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll
      +0x180aa01b [OP_Node::internalCookInput] C:\Program Files\Side Effects Software\Houdini 18.0.287\bin\libOP.dll

      • DirtPizza 4 週間, 1 日 前  | 

        I narrowed this down to the attribute transfer node at 7:28 in Part 2 video.
        If my display flag is set on that attribute transfer or lower the scene will crash when I click Apply or Accept on the HDA type properties.
        Any ideas?

        • Siver 3 週間, 5 日 前  | 

          Update your Houdini to another version might help, if you still have a lot of issues contact support.

  • chris rogers2 3 週間, 6 日 前  | 

    i think the video uses houdini 18.0.391. Im trying to get it to work with 18.0.460, 18.0.416 had a lot of errors and showed nothing, .460 has errors but shows something.
    If 460 doesnt work, ill download 391 and try.

    • chris rogers2 3 週間, 6 日 前  | 

      18.0.461 works for me (sidefx labs version 460).
      earlier i did get errors but didnt follow the directions, so it might have been user error.
      thanks for the tools and tutorials Simon!

  • gabhpe 2 週間, 1 日 前  | 

    Hello Simon.
    Is there a way to instance an actual HDA instead of a prefab?

    • Siver 2 週間, 1 日 前  | 

      Hey, There are some options to use another HDA as input but it is limited.
      I recommend baking the hda and use that geometry in the other HDA.

  • dipaolo21 2 週間, 1 日 前  | 

    Hello Simon, How did you get the grid to display as Spheres?

    • Siver 1 週間, 6 日 前  | 

      Hey, Do you mean at the WFC nodes? They are now grids instead of spheres

  • Mykman 1 日, 8 時間 前  | 

    Hi Simon,

    Thanks for the amazing tutorial !
    I have started to have a look how it works and I ran into problems.
    - I can see only the proxy dungeon tiles in houdini and unreal , where can I replace them and how with proper props ?
    - Is there a way to see how the wang sample file content looks like (inside the stash node)? (naming convention / structure etc.)
    If you could help with this that would be awesome !

Please log in to leave a comment.