Can Tyflow particles be imported into UE4?
#1
Hello , I would like to ask, is it possible to import Tyflow particles into UE4?
  Reply
#2
As particles - no.
There is 2 ways you can import it in Unreal, that I know of.

1) FBX
Pros: Relatively small cache size, as it exports only shape and (animtaed) pos/rot/scale.
Cons; You can't change topology of the faces. You can't even delete small particles ( tip: you can make them very small though).
To do it, use particles export operator, and export every particle as individual objects. Then select all object and link it to some master object  (very important), and just export as fbx.
Here is my test of the fbx Tyflow in Unreal:
https://youtu.be/1ionQsrApeM

2) Alembic
Pros; You can export pretty much anything, including meshes that changes topology (for example water sim)
Cons: It can easily have enormous sizes (few GB's, even for small scenes).
To do it, you need to first make Tyflow renderable object (mesh operator, and untick "render only"), or if you are using Tycache, then turn off GPU instancing. If you are using Tymesher, you don't need anything.
But for all 3 cases above (sometimes they will not work), adding a edit poly or edit mesh modifier can help.
Then just use 3DS Max Alembic exporter and export it  as Alembic.
Here's my test of  Tyflow alembic export in -Unreal:
https://youtu.be/KmoY69stSEY
  Reply
#3
not out of the box, but if you really need particles get through, take a look at houdini niagara plugin, open the the generated point cache file and find out the format syntax, then use maxscript to convert tyflow particles into tht same format, then use houdini niagra plugin import them into niagara.
  Reply
#4
(05-27-2021, 10:15 AM)d4rk3lf Wrote: As particles - no.
There is 2 ways you can import it in Unreal, that I know of.

1) FBX
Pros: Relatively small cache size, as it exports only shape and (animtaed) pos/rot/scale.
Cons; You can't change topology of the faces. You can't even delete small particles ( tip: you can make them very small though).
To do it, use particles export operator, and export every particle as individual objects. Then select all object and link it to some master object  (very important), and just export as fbx.
Here is my test of the fbx Tyflow in Unreal:
https://youtu.be/1ionQsrApeM

2) Alembic
Pros; You can export pretty much anything, including meshes that changes topology (for example water sim)
Cons: It can easily have enormous sizes (few GB's, even for small scenes).
To do it, you need to first make Tyflow renderable object (mesh operator, and untick "render only"), or if you are using Tycache, then turn off GPU instancing. If you are using Tymesher, you don't need anything.
But for all 3 cases above (sometimes they will not work), adding a edit poly or edit mesh modifier can help.
Then just use 3DS Max Alembic exporter and export it  as Alembic.
Here's my test of  Tyflow alembic export in -Unreal:
https://youtu.be/KmoY69stSEY
Thank you very much. Thank you for your detailed answers, which are very helpful to me.
  Reply
#5
Hi. I'm boucing back on this thread to (miserably) ask for help on this very same topic...

I'm trying to transfer a pointcloud generated in 3DSMax through TyFlow to Unreal Engine 5.2, with no success !

. The file I'm using for this purpose is TyFlow preset "Simple Icon Flow.max" (attached)
. The point cloud has been exported through TyFlow's operator Export > "Alembic point cloud"
. with "Houdini" data format selected
. and I installed Houdini-Niagara plugin in UE5.2
. and renamed the generated Alembic .abc pointcloud file to ".hbjson" before dragging it on the UE5 browser.

Result : the file is recognized by UE5, but its properties are incorrect (frames, duration etc. all wrong) making it unusable in UE.

I checked importing a valid sample point cloud from Houdini's website, and it worked perfect. 
So this makes me feel theres something with Alembic/Houdini data format implementation.

Would anyone have a clue on what I'm (or the exporter) doing wrong ? 

Many thanks

Marc/Paris


Attached Files
.rar   source_files.rar (Size: 171.74 KB / Downloads: 167)
  Reply
#6
Alembic is very different than json, so I don't think you can just rename an .abc file to .hbjson and have it come through...

Seems like Houdini is exporting to a particular format for Niagara compatibility. tyFlow doesn't have any way to do that.
  Reply
#7
Thanks to point this out to me... renaming extensions is no good practice and I swear I won't do it anymore Smile

At this stage, I managed to import a TyFlow's Alembic generated pointcloud successfully in UE5, but through Houdini only (.abc > Houdini > .hbjson > UE5)
I still have problems with particles' colors as Houdini does not appear to import properly TyFlow's color information...
I get Cd[x] Cd[y] and Cd[z] imported instead of Cd[r], Cd[g] and Cd[b]
In my TyFlow {Vertex Color} operator, pure RGB Red was assigned (R=1 G=0 B=0)

By the way, any workflow (or workaround) guidance to export PointCloud directly from TyFlow to UnrealEngine Niagara's particle system would be great.

As a newbie, I struggle to get any PointCloud into Unreal's Nigara particle system.

Any feedback is welcome !

Marc


Attached Files Thumbnail(s)
       
  Reply
#8
Just a smart update. Everything has been sorted-out. Managed to export a PointCloud from TyFlow to UE5 in a quick,smooth and repeatable workflow which involves a middle-man converter : Houdini.

I would have loved finding a working project on this topic, with some explanations on the workflow, so this is it.
For anyone concerned (eg. who has been in the same despair as myself), so this is it. Hope it helps.
Provided project files reference 1000 particles of various sizes and colors spawned over 730 frames.

CONFIGURATION
. 3DSmax 2024.1 (Student version)
. TyFlow 1.027 (Free version)
. Houdini Apprentice v19.5.716 (Free version)
. Unreal Engine 5.2 (Free version)

PROJECT FILES (660 MB)
. Available at https://drive.google.com/file/d/18xTehzG...sp=sharing

FULL WORKFLOW

>> 1st step : 3DSMAX (Export time: 8 seconds)

1) Export an Alembic PointCloud file through TyFlow's "Export particles" operator (see attached 3DSmax). Beware and check
. for the color attribute channel (in the export operator) is set to "Cd" and nothing else.
. Also check that Position attribute is checked
. and the Scale attribute, set to Pscale and nothing else

>> 2nd step : HOUDINI (Import time: < 5 seconds / Export: 20 seconds)

2) Install Houdini free version (Apprentice) as well as the LAB add-ons found on their website

3) Import this .abc PointCloud file in HOUDINI through the "Import / Alembic Scene" menu and apply

4) double-click on the PointCloud node, double-click again, and then set « Load as » to « Unpack Alembic Delayed Primitives »

5) In "Geometry spreadsheet" tab, check that your exported channels are there, especially your Position, Pscale and Color attributes. (Colors should appear as Cd[x], Cd[y] and Cd[z] with their corresponding values overtime and frame).

6) Add a render node found under « Labs > Realtime Engine > Labs Niagara ROP »

7) And use this node to render an .hbjson PointCloud file

>> 3rd step : UNREAL ENGINE (Import time : < 5 second )

8/ First install the "Houdini Niagara" plugin in your project, then restart UE5. Not doing so will end-up with import failure.

9) Import your .hbjson PointCloud file in UE5 via simple drag&drop (instantaneous)

10) Create a "HoudiniNiagara Basic System" by selecting a HoudiniNiagaraBasic object located in (Content/Particles/Emitters/HoudiniNiagaraBasic) and creating a Niagara System from it

11) Assign your PointCloud to this newly created Niagara System

12) Add a color operator and set it to Houdini's imported RGB float colors

13) Add a scale operator and set it to Houdini's imported Scale values

14) Enjoy and rerlax. Works like a charm !
  Reply
#9
Thanks for posting that comprehensive update.

Perhaps in the future I'll add more built-in export methods that allow you to export to formats directly supported by UE (.hbjson). For now at least users can use your workaround.
  Reply
#10
(09-08-2023, 03:15 PM)tyFlow Wrote: Thanks for posting that comprehensive update.

Perhaps in the future I'll add more built-in export methods that allow you to export to formats directly supported by UE (.hbjson). For now at least users can use your workaround.

That would be a great feature for UE enthousiasts... a simple "UE5-Niagara PointCloud" option checkbox in the Export Particule operator (and lot's of code on your side). Definitely a valuable feature. Thanks for your outstanding work and passion. TyFlow is awesome.
  Reply
#11
I'm still experiencing much trouble getting particle colors right on PointCloud export from TyFlow.
I need to colorize a pointcloud according to a very simple tri-tone (RGB) Gradient Map.
All I get upon export is wrong colors, that do not correspond to what I see out of TyFlow.

My workflow is as follows...

1) Physical Material + Gradient Map (Channel #0) defined;
2) Simple 10x10 plane
3) UVW modifier applied and adjusted on plane
4) Birth Surface + Mapping + Display + Export into Alembic PointCloud

When opened into Houdini to check the exported colors, values do not correspond to the expected RGB pattern.

I'm clearly missing something there.  Any clue?

(sample files attached)


Attached Files Thumbnail(s)
           

.rar   project files.rar (Size: 53.89 KB / Downloads: 141)
  Reply
#12
(09-08-2023, 03:11 PM)cramredan Wrote: Just a smart update. Everything has been sorted-out. Managed to export a PointCloud from TyFlow to UE5 in a quick,smooth and repeatable workflow which involves a middle-man converter : Houdini.

I would have loved finding a working project on this topic, with some explanations on the workflow, so this is it.
For anyone concerned (eg. who has been in the same despair as myself), so this is it. Hope it helps.
Provided project files reference 1000 particles of various sizes and colors spawned over 730 frames.

CONFIGURATION
. 3DSmax 2024.1 (Student version)
. TyFlow 1.027 (Free version)
. Houdini Apprentice v19.5.716 (Free version)
. Unreal Engine 5.2 (Free version)

PROJECT FILES (660 MB)
. Available at https://drive.google.com/file/d/18xTehzG...sp=sharing

FULL WORKFLOW

>> 1st step : 3DSMAX (Export time: 8 seconds)

1) Export an Alembic PointCloud file through TyFlow's "Export particles" operator (see attached 3DSmax). Beware and check
. for the color attribute channel (in the export operator) is set to "Cd" and nothing else.
. Also check that Position attribute is checked
. and the Scale attribute, set to Pscale and nothing else

>> 2nd step : HOUDINI (Import time: < 5 seconds / Export: 20 seconds)

2) Install Houdini free version (Apprentice) as well as the LAB add-ons found on their website

3) Import this .abc PointCloud file in HOUDINI through the "Import / Alembic Scene" menu and apply

4) double-click on the PointCloud node, double-click again, and then set « Load as » to « Unpack Alembic Delayed Primitives »

5) In "Geometry spreadsheet" tab, check that your exported channels are there, especially your Position, Pscale and Color attributes. (Colors should appear as Cd[x], Cd[y] and Cd[z] with their corresponding values overtime and frame).

6) Add a render node found under « Labs > Realtime Engine > Labs Niagara ROP »

7) And use this node to render an .hbjson PointCloud file

>> 3rd step : UNREAL ENGINE (Import time : < 5 second )

8/ First install the "Houdini Niagara" plugin in your project, then restart UE5. Not doing so will end-up with import failure.

9) Import your .hbjson PointCloud file in UE5 via simple drag&drop (instantaneous)

10) Create a "HoudiniNiagara Basic System" by selecting a HoudiniNiagaraBasic object located in (Content/Particles/Emitters/HoudiniNiagaraBasic) and creating a Niagara System from it

11) Assign your PointCloud to this newly created Niagara System

12) Add a color operator and set it to Houdini's imported RGB float colors

13) Add a scale operator and set it to Houdini's imported Scale values

14) Enjoy and rerlax. Works like a charm !

Ok, i've follow everything to the end, and did that work with... GEOMETRY ??
Because of point cloud... it need geometrys, like when we fracturate some ... geometries.. :'(

is there a way to make it work entirely ?
For now, it's a pain to load something in unreal..
  Reply
#13
hey,

thanks for writing this up.
I AM indeed also desperate, but I am not willing to go through houdini for that..using the indie license is still kind of a grey area and not gonna work for my company.
Plus, it seems like a lot of trouble to also get mesh instances working correctly inside Unreal and a lot of extra steps involved overall.

Using Datasmith works like a charm for smaller sims, like up to 2-4k particles, if you export in chunks.

So, have you stress tested this and how many particles can niagara handle this way?
Is it still more like a few thousands or would we be talking about millions?

I know, we´re being kind of very at the forefront of things still and I still don´t wanna give up tyFlow and try to do everything in engine with Niagara...
But we´re definitely moving into Unreal for 90% of our project, so I still need to figure out how to proceed at some point...Sad
  Reply
#14
[quote pid="7958" dateline="1622110518"]
D4RK3LF系列作为粒子 - 不。
据我所知,有两种方法可以将其导入虚幻引擎。

2) FBX
优点:缓存大小相对较小,因为它只导出形状和(动画)pos/rot/scale。
缺点;您无法更改面的拓扑。你甚至不能删除小粒子(提示:你可以把它们做得非常小)。
为此,请使用粒子导出运算符,并将每个粒子导出为单个对象。然后选择所有对象并将其链接到某个主对象(非常重要),然后导出为 fbx。
以下是我在虚幻引擎中对 fbx Tyflow 的测试:
https://youtu.be/1ionQsrApeM

1) Alembic
Pros;您几乎可以导出任何内容,包括更改拓扑的网格(例如water sim)
缺点: 它很容易具有巨大的大小(即使对于小场景也只有几 GB)。
为此,您需要首先使 Tyflow 可渲染对象(网格运算符,并取消勾选“仅渲染”),或者如果您使用的是 Tycache,则关闭 GPU 实例化。如果您使用的是 Tymesher,则不需要任何东西。
但是对于上述所有 2 种情况(有时它们不起作用),添加编辑多边形或编辑网格修改器会有所帮助。
然后只需使用 3DS Max Alembic 导出器并将其导出为 Alembic。
以下是我在 -Unreal 中对 Tyflow alembic 导出的测试:
https://youtu.be/KmoY3stSEY
[/quote]


[url=https://forum.tyflow.com/javascript:void(0);]

[size=1]谢谢你的帮助。
我想知道 TYmesh 现在如何导出 abc 文件。

MAX2020 Ty1.025
[/size]


感谢帮助。
我现在想了解一下TYmesher如何导出abc文件。
模拟信号 音频 MAX2020
ty1.025


谢谢你的帮助。

我想知道 TYmesh 现在如何导出 abc 文件。

MAX2020系列

Ty1.025


Attached Files Thumbnail(s)
   

.max   ty-03.max (Size: 3.23 MB / Downloads: 123)
  Reply


Forum Jump: