7.5K Views
October 23, 20
スライド概要
Click here to watch the video of my speech.
https://youtu.be/6SoaPTX_vvw
English slides are available for download here
https://epicgames.box.com/s/tb42ndmdpxrbsexvv0irp9h7ynr7iar9
The Japanese slides are here.
https://www.docswell.com/s/EpicGamesJapan/ZRQ8R5-UE4_VFXAD20_PigAndKyoto
https://epicgames.box.com/s/locsql9m36jcx0rx5xsj9ia85hk2p8cl
Presented by Osamu Saito (Epic Games Japan)
This slide is from the ""UE4 VFX Art Dive Online"" presentation on July 5, 2020.
日本語版はこちら
https://www.docswell.com/s/EpicGamesJapan/ZRQ8R5-UE4_VFXAD20_PigAndKyoto
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
Pig & Kyoto -Let's be the God of Destruction in UE4Epic Games Japan Technical Artist - Developer Relations Osamu Saito
Self-introduction Osamu Saito https://twitter.com /shiba_zushi Epic Games Japan Technical Artist - Developer Relations ● I joined Epic in June 2019 ● Until then, I developed a AAA console title ● Before that, I was a Manga Artist ● I love UE4 & Houdini #UE4 | @UNREALENGINE
Introduction #UE4 | @UNREALENGINE
Introduction Destruction is wonderful … #UE4 | @UNREALENGINE
Introduction #UE4 | @UNREALENGINE
Introduction Have you ever been tempted to destroy things anyway? #UE4 | @UNREALENGINE
Introduction We all have an inner drive to destroy. #UE4 | @UNREALENGINE
Introduction But in a country where there is the Rule of Law, you can't just break things without permission. #UE4 | @UNREALENGINE
Introduction If so, let's use UE4 to destroy stuff! #UE4 | @UNREALENGINE
Speaking Today #UE4 | @UNREALENGINE
Speaking Today How to use pigs to destroy the streets of Kyoto #UE4 | @UNREALENGINE
Speaking Today How to use pigs to destroy the streets of Kyoto →Introduction to Destruction Features & Workflow in UE4 #UE4 | @UNREALENGINE
Speaking Today How to use pigs to destroy the streets of Kyoto →Introduction to Destruction Features & Workflow in UE4 #UE4 | @UNREALENGINE Rigid Body Soft Body Fluid FBX Alembic VAT Niagara Raymarching Houdini PhysX Chaos etc...
Introduction therefore #UE4 | @UNREALENGINE
Introduction #UE4 | @UNREALENGINE
Introduction #UE4 | @UNREALENGINE
Introduction #UE4 | @UNREALENGINE
Introduction #UE4 | @UNREALENGINE
Introduction I destroyed it! #UE4 | @UNREALENGINE
Introduction I'm going to give you an explanation through this example #UE4 | @UNREALENGINE
Introduction In the beginning, the Great Destroyer in me said #UE4 | @UNREALENGINE
Introduction Destroy something beautiful In the beginning, the Great Destroyer in me said #UE4 | @UNREALENGINE
Introduction So I used the beautiful assets in Kyoto. #UE4 | @UNREALENGINE
Introduction The author has given me permission to destroy it with a pig #UE4 | @UNREALENGINE
Introduction So, let‘s go ahead and destroy it … #UE4 | @UNREALENGINE
Introduction Wait #UE4 | @UNREALENGINE
Introduction Have you ever received a request like this? #UE4 | @UNREALENGINE
Introduction Hey bro, I'd like to tear this building down. We already have a model. That's easy, right? #UE4 | @UNREALENGINE
Introduction Yes, I am Guilty #UE4 | @UNREALENGINE
Introduction The model should be Destruction-Ready #UE4 | @UNREALENGINE
What is Destruction-Ready? ・The model is closed ・There is no overlap in models #UE4 | @UNREALENGINE
Why? ? Destruction, in other words, is a "physical" simulation #UE4 | @UNREALENGINE
Why? ? Shape, structure and mass of things If they are not correct, you cannot run a correct simulation #UE4 | @UNREALENGINE
Why? ? It has to be a physically correct model, with proper geometry and no overlap #UE4 | @UNREALENGINE
Model preparation These beautiful Kyoto assets are not only beautiful, but have been "optimized" for games #UE4 | @UNREALENGINE
Model preparation Assets for games have been deleted or merged where they are not visible in the model for optimization purposes #UE4 | @UNREALENGINE
Model preparation So if you simulate this as it is...... #UE4 | @UNREALENGINE
Model preparation BAAANG #UE4 | @UNREALENGINE
Model preparation If we simulate it correctly, it looks like this #UE4 | @UNREALENGINE
Model preparation Physically correct models are very important #UE4 | @UNREALENGINE
Model preparation So how much work would it take to make the one house I just mentioned Destruction-Ready? #UE4 | @UNREALENGINE
Model preparation Whole Houdini node diagram #UE4 | @UNREALENGINE
Model preparation Simulation Setting #UE4 | @UNREALENGINE
Model preparation Model Setting #UE4 | @UNREALENGINE Simulation Setting
Model preparation Let me visualize the areas that needed to be fixed #UE4 | @UNREALENGINE
Model preparation This house #UE4 | @UNREALENGINE
Model preparation Here's what it looks like if you arrange them part by part #UE4 | @UNREALENGINE
Model preparation Red is the part that is not Destruction-Ready #UE4 | @UNREALENGINE
Model preparation A look at the model from the back #UE4 | @UNREALENGINE
Model preparation Integrally molded roof tile Thickness “0” Single-poly plank wall No poly on the back There's no ceiling where you can't see it Models that are not closed Where you can't see it, there's no wall A look at the model from the back #UE4 | @UNREALENGINE Overlap to the ground
Model preparation Thickness “0” No poly on the back There's no ceiling where you can't see it Where you can't see it, there's no wall Integrally molded roof tile Single-poly plank wall Models that are not closed Overlap to the ground These are all very careful "optimizations" #UE4 | @UNREALENGINE
What I want to tell you It's hard to make an optimized asset Destruction-Ready afterwards #UE4 | @UNREALENGINE
What I want to tell you Let's plan ahead and destroy it #UE4 | @UNREALENGINE
What I want to tell you Incidentally, in this example #UE4 | @UNREALENGINE
What I want to tell you There are 100+ models in use in the screen alone #UE4 | @UNREALENGINE
What I want to tell you I automated it as much as I could, but it was very hard... #UE4 | @UNREALENGINE
Model preparation And yet, another failure #UE4 | @UNREALENGINE
Model preparation I've laid out these Destruction-Ready models in UE4 and I want them destroyed #UE4 | @UNREALENGINE
Model preparation Stupid human #UE4 | @UNREALENGINE
Model preparation What I failed to do while working on it. Simply put, “The FBX export of a mesh imported into UE4 is not the same model as the imported FBX.” My Tweets #UE4 | @UNREALENGINE
Model preparation When you import a model into UE4, it's basically all triangulated #UE4 | @UNREALENGINE
Model preparation These triangular polygons are all individual #UE4 | @UNREALENGINE
Model preparation If "Remove Degenerates" is checked, vertices with the same position, same UV and same normal will be combined #UE4 | @UNREALENGINE
Model preparation So importing into UE4 means that you're going to get a completely different model than the original one #UE4 | @UNREALENGINE
Model preparation And when exporting FBX, UE4 cleverly merges the vertices together before exporting #UE4 | @UNREALENGINE
Model preparation This model, for example, when imported into UE4 and exported, looks like this #UE4 | @UNREALENGINE
Model preparation I'm crying because I laid it out in UE4, exported it to FBX and then tried to destroy it and failed. #UE4 | @UNREALENGINE
Model preparation Stupid human #UE4 | @UNREALENGINE
Model preparation By the way, how to deal with it #UE4 | @UNREALENGINE
Model preparation The FBX exported from UE4 contains each transformation information #UE4 | @UNREALENGINE
Model preparation The FBX exported from UE4 contains each transformation information #UE4 | @UNREALENGINE
Model preparation You can use it to create a transformation matrix to recreate the layout from the original model #UE4 | @UNREALENGINE
Model preparation https://twitter.com/shiba_zushi/status/1257055294095413248?s=20 I wrote more about it in the above tweet #UE4 | @UNREALENGINE
What I want to tell you Let's plan ahead and destroy it #UE4 | @UNREALENGINE
Workflow After many failures, the beautiful Kyoto Asset has finally become Destruction-Ready #UE4 | @UNREALENGINE
Workflow There are two main workflows when it comes to destruction in UE4 #UE4 | @UNREALENGINE
Workflow There are two main workflows when it comes to destruction in UE4 Pre-destruction #UE4 | @UNREALENGINE Realtime-destruction
Workflow There are two main workflows when it comes to destruction in UE4 Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE
Workflow For this example, I've adopted the "Pre-destruction" Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE
Workflow An example of real time destruction by Niagara is given by Mr. Ikeda at the following URL! https://www.youtube.com/watch?v=bkZkW-Hblig Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE
Workflow What about PhysX and Chaos? Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE
Workflow …… #UE4 | @UNREALENGINE
Workflow I have verified it in this house #UE4 | @UNREALENGINE
Workflow https://www.youtube.com/watch?v=4xUAueQigbo I first converted the models into a set of StaticMeshes that can be simulated using the HoudiniEngine method shown in the video above #UE4 | @UNREALENGINE
Workflow In the case of PhysX, I used about 2000 parts of StaticMesh #UE4 | @UNREALENGINE
Workflow In the case of Chaos, I turned it into a GeometryCollection #UE4 | @UNREALENGINE
Workflow In the case of PhysX(4.25.0) #UE4 | @UNREALENGINE
Workflow In the case of Chaos(4.25.0) #UE4 | @UNREALENGINE
Workflow …… #UE4 | @UNREALENGINE
Workflow https://docs.unrealengine.com/ja/Engine/Chaos/ChaosDestruction/index.html #UE4 | @UNREALENGINE
Workflow https://docs.unrealengine.com/ja/Engine/Chaos/ChaosDestruction/index.html Currently, Chaos is a Beta feature #UE4 | @UNREALENGINE
Workflow Especially the behavior around GeometryCollection has been improved in each minor version #UE4 | @UNREALENGINE
Workflow I'll talk more in-depth about Chaos another time #UE4 | @UNREALENGINE
Workflow https://docs.unrealengine.com/ja/Engine/Chaos/ChaosDestruction/index.html If you want to touch it now, you can check out the official documentation #UE4 | @UNREALENGINE
Workflow So, let's talk about the "Pre-destruction" workflow. Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE
Pre-destruction In the case of “Pre-destruction”, the destruction simulation itself must be created by each DCC tool #UE4 | @UNREALENGINE
Pre-destruction This time I used Houdini #UE4 | @UNREALENGINE
Pre-destruction https://www.sidefx.com/ja/products/houdini/whats-new-in-18/ Destruction features added in Houdini 18 make it very easy to build RBD simulations #UE4 | @UNREALENGINE
Pre-destruction This is all you have to do It's not too difficult to simulate, as long as the model is Destruction-Ready #UE4 | @UNREALENGINE
Pre-destruction https://www.sidefx.com/ja/products/houdini/whats-new-in-18/ Exporting simulation data is very easy with SideFX Labs #UE4 | @UNREALENGINE
Pre-destruction When the destruction simulation is ready, I'll import it into UE4 and implement it #UE4 | @UNREALENGINE
Pre-destruction The following three implementation methods were tested this time Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE
Pre-destruction FBX Alembic VAT These methods are implemented differently, but they look almost identical #UE4 | @UNREALENGINE
Pre-destruction The characteristics of each method are explained below FBX Alembic VAT Data Size ? ? ? Performance ? ? ? Working Cost ? ? ? #UE4 | @UNREALENGINE
FBX Let's start with FBX FBX Alembic VAT Data Size ? ? ? Performance ? ? ? Working Cost ? ? ? #UE4 | @UNREALENGINE
FBX This is classified as FBX, but the implementation is bone animation with a skeletal mesh #UE4 | @UNREALENGINE
FBX The destruction motion was created in Houdini and exported to FBX using "RBD to FBX" in "Side FX Labs" #UE4 | @UNREALENGINE
FBX https://www.sidefx.com/ja/tutorials/game-tools-rbd-to-fbx/ For more information on "RBD to FBX“, please click here #UE4 | @UNREALENGINE
FBX UE4 will automatically create bones on import if the object has an animation baked into it #UE4 | @UNREALENGINE
FBX The rootbone is created at the origin, so be careful about animation accuracy and bounds #UE4 | @UNREALENGINE
FBX I think one of the benefits of skeletal mesh animation is the ability to hit notify #UE4 | @UNREALENGINE
FBX The fact that effects can be attached to bones and sockets is also very easy to use #UE4 | @UNREALENGINE
FBX Another powerful advantage of skeletal mesh animation is the ability to compress the animation #UE4 | @UNREALENGINE
FBX http://hogetatu.hatenablog.com/entry/2018/12/05/000944 Here's a very nice article on the details of animation compression #UE4 | @UNREALENGINE
FBX I'm sure you can find more details in the article, but destruction is often fine even if the animation is rough. The bone hierarchy is also shallow, so you can use PerTrack to apply rough compression. #UE4 | @UNREALENGINE
FBX And when it comes to performance, it's mainly CPU cost #UE4 | @UNREALENGINE
FBX Animation update process processed in parallel in a task thread And when it comes to performance, it's mainly CPU cost #UE4 | @UNREALENGINE
FBX GPU skinning update process processed by the render thread Animation update process processed in parallel in a task thread And when it comes to performance, it's mainly CPU cost #UE4 | @UNREALENGINE
FBX Skeletal animation performance depends on the number of bones Please note that the GPU skinning update process is not parallelized #UE4 | @UNREALENGINE
FBX So that's a very quick summary... FBX Alembic VAT Data Size ? ? ? Performance ? ? ? Working Cost ? ? ? #UE4 | @UNREALENGINE
FBX So that's a very quick summary... FBX Alembic Data Size ○ Performance ? Animation compression ? is ○ possible, which is advantageous in long ? ? lengths Working Cost ? #UE4 | @UNREALENGINE ? VAT ?
FBX So that's a very quick summary... Data Size FBX Alembic VAT ○ ? ? Performance ○ Working Cost ? #UE4 | @UNREALENGINE My concern is the cost of animation updates by the ? ? CPU and the cost of GPU skinning updates (It's ? not particularly heavy) ?
FBX So that's a very quick summary... FBX Alembic VAT Data Size ○ ? ? Performance ○ Working Cost △ #UE4 | @UNREALENGINE ? are a lot of parts, ? the If there importing process is quite hard. The implementation procedure ? is?also reasonably large.
FBX Here's what FBX looks like! FBX Alembic VAT Data Size ○ ? ? Performance ○ ? ? Working Cost △ ? ? #UE4 | @UNREALENGINE
Alembic Then Alembic FBX Alembic VAT Data Size ○ ? ? Performance ○ ? ? Working Cost △ ? ? #UE4 | @UNREALENGINE
Alembic https://docs.unrealengine.com/ja/Engine/Content/Importing/AlembicImporter/index.html First, please note that the Alembic importer is available by default, but it is “Experimental" #UE4 | @UNREALENGINE
Alembic Also, Alembic offers three different import methods #UE4 | @UNREALENGINE
Alembic In this case, I used the Geometry Cache #UE4 | @UNREALENGINE
Alembic FBX Alembic VAT This is what it looks like when placed on a level #UE4 | @UNREALENGINE
Alembic The destruction motion was created in Houdini as well as FBX and exported .abc in the "Alembic" node #UE4 | @UNREALENGINE
Alembic The .abc file you create can be imported directly by dragging and dropping Materials are divided by face set. Don't forget to create your facesets. #UE4 | @UNREALENGINE
Alembic Also, the Geometry Cache is slightly annoying in that you can't preview models or motions #UE4 | @UNREALENGINE
Alembic The Geometry Cache Track in the sequencer makes it easy and convenient to preview. #UE4 | @UNREALENGINE
Alembic FBX Alembic One thing to keep in mind with the Geometry Cache is the size of the data, which tends to be bloated #UE4 | @UNREALENGINE
Alembic A large number of decoding processes being processed in render thread and task threads In addition, the processing load is high because all the vertices are manipulated, even though they are processed in parallel. #UE4 | @UNREALENGINE
Alembic So that's a quick summary... FBX Alembic VAT Data Size ○ ? ? Performance ○ ? ? Working Cost △ ? ? #UE4 | @UNREALENGINE
Alembic So that's a quick summary... Data Size FBX Alembic VAT ○ ✕ ? ○ ? ? △ ? ? Data size is heavy due to Performance the data per vertex Working Cost #UE4 | @UNREALENGINE
Alembic So that's a quick summary... FBX Processing is heavy because データサイズ it is done per vertex ○ Alembic VAT ✕ ? Performance ○ △ ? Working Cost △ ? ? #UE4 | @UNREALENGINE
Alembic So that's a quick summary... Data Size FBX Alembic VAT ○ ✕ ? ○ △ ? △ ○ ? Relatively quick import Performance process and easy export Working Cost #UE4 | @UNREALENGINE
Alembic Alembic looks like this! FBX Alembic VAT Data Size ○ ✕ ? Performance ○ △ ? Working Cost △ ○ ? #UE4 | @UNREALENGINE
VAT Finally, VAT FBX Alembic VAT Data Size ○ ✕ ? Performance ○ △ ? Working Cost △ ○ ? #UE4 | @UNREALENGINE
VAT VAT stands for Vertex Animation Texture, a technique that uses a vertex shader to create an offset representation #UE4 | @UNREALENGINE
VAT https://www.youtube.com/watch?v=bkZkW-Hblig https://www.youtube.com/watch?v=symBuKS8ArM At the above URL, Mr. Ikeda and Mr. Miyamoto explained the mechanism of VAT in detail, so please take a look at the lecture #UE4 | @UNREALENGINE
VAT The destruction motion was created in Houdini as before and exported with Vertex Animation Textures ROP from Side FX Labs #UE4 | @UNREALENGINE
VAT VAT textures should be set to uncompressed, linear and nearest after importing #UE4 | @UNREALENGINE
VAT The VAT material is easy to create by simply copying and pasting the text from "Vertex Animation Textures ROP" into your editor #UE4 | @UNREALENGINE
VAT FBX Alembic VAT When it comes to data size, VAT is quite reasonable when it comes to RBD #UE4 | @UNREALENGINE
VAT There is almost no CPU load on VAT because it is basically all processed by GPU #UE4 | @UNREALENGINE
VAT So, to briefly summarize... FBX Alembic VAT Data Size ○ ✕ ? Performance ○ △ ? Working Cost △ ○ ? #UE4 | @UNREALENGINE
VAT So, to briefly summarize... Data Size Performance Working Cost #UE4 | @UNREALENGINE FBX Alembic VAT ○ ✕ ○ ○ △ ? △ ○ ? RBD has pixels per piece, so the data size is small.
VAT So, to briefly summarize... Data Size Performance Working Cost #UE4 | @UNREALENGINE FBX Alembic VAT ○ ✕ ○ ○ △ ◎ △ ○ ? Processing load depends on the GPU If you're using a current gen console, VAT is generally considered to be the lightest
VAT So, to briefly summarize... Data Size Performance Working Cost #UE4 | @UNREALENGINE FBX Alembic VAT ○ ✕ ○ Properly setting up and ○ △and managing materials ◎ △ ✕ textures is difficult Exports are also prone to problems ○
VAT Here's what VAT looks like! FBX Alembic VAT Data Size ○ ✕ ○ Performance ○ △ ◎ Working Cost △ ○ ✕ #UE4 | @UNREALENGINE
Workflow Don't quote me on this comparison, but just for reference... FBX Alembic VAT Data Size ○ ✕ ○ Performance ○ △ ◎ Working Cost △ ○ ✕ #UE4 | @UNREALENGINE
Workflow Incidentally, if you put Realtime-destruction in here... FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ? Performance ○ △ ◎ ? Working Cost △ ○ ✕ ? #UE4 | @UNREALENGINE
Workflow Incidentally, if you put Realtime-destruction in here... FBX Data Size ○ Performance ○ Working Cost △ #UE4 | @UNREALENGINE Alembic VAT PhysX Chaos ✕ ○ ◎ △ ◎ ? ○ ✕ ? Data size is small because it is calculated in real time
Workflow Incidentally, if you put Realtime-destruction in here... FBX Data Size ○ Performance ○ Working Cost △ #UE4 | @UNREALENGINE Alembic VAT ✕ It's pretty tough to○ calculate tens of thousands of pieces of parts in real time PhysX Chaos ◎ △ ◎ ✕ ○ ✕ ?
Workflow Incidentally, if you put Realtime-destruction in here... FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE It's very easy to not have to go back and forth to the DCC tool
Workflow I guess it's something like this FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE
Workflow I hope that you will choose the best method depending on your situation FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE
Workflow By the way, in this example, I used FBX in Rigid Body FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE
Workflow And for Soft Body, I used Alembic FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE
Workflow FBX Japanese house The whole town (RigidBody) Alembic Pig Goodwill, etc (SoftBody) The reason for this is that I focused on implementation speed and didn't care about the processing load. (I was thinking of replacing it with VAT if it was too heavy.) #UE4 | @UNREALENGINE
SoftBody By the way, SoftBody is easy to implement in Alembic or VAT #UE4 | @UNREALENGINE
SoftBody https://www.sidefx.com/tutorials/game-tools-skinning-converter/ There is also a method of FBX called the Skinning Converter, so please try it out. #UE4 | @UNREALENGINE
Scene production Now, I finally got the Pre-destruction implemented in UE4 Let's adjust the look and feel #UE4 | @UNREALENGINE
Scene production First of all, regarding material assignment after importing destruction data #UE4 | @UNREALENGINE
Automation with BP This time, I used the Editor Utility Widget to automate the assignment because it was a little complicated and there were many material types #UE4 | @UNREALENGINE
Automation with BP It is very hard to manually assign dozens of materials, so for simple tasks, you can use BP's automation to your advantage #UE4 | @UNREALENGINE
Automation with BP https://qiita.com/EGJ-Kaz_Okada/items/985b98fb934d751f4f69 http://kinnaji.com/ https://qiita.com/EGJ-Kaz_Okada/items/9f530db3b53d0fde3f20 A lot of people have been sending out a lot of information about Editor Utility Widget on the net. Thank you so much. #UE4 | @UNREALENGINE
Effect Now that the look is somewhat better, the next step is effects #UE4 | @UNREALENGINE
Effect Niagara Raymarching I used Niagara and Raymarching #UE4 | @UNREALENGINE
Niagara I implemented Niagara with reference to Mr. Ikeda's book #UE4 | @UNREALENGINE
Niagara Extract the position and direction of the impact from the destruction data created by Houdini. #UE4 | @UNREALENGINE
Niagara I use the Niagara node of SideFXLabs to export and import as HCSV to UE4. #UE4 | @UNREALENGINE
Niagara By using Niagara, it is easy to create effects that are compatible with a destruction simulation #UE4 | @UNREALENGINE
Niagara https://www.unrealengine.com/ja/release-notes Niagara is Production-ready from 4.25 I hope you will take advantage of this opportunity #UE4 | @UNREALENGINE
Raymarching Next, Raymarching #UE4 | @UNREALENGINE
Raymarching https://shaderbits.com/ I'm grateful for Ryan's shaders #UE4 | @UNREALENGINE
Raymarching There are materials in the Volumetrics plugin that you can use right away #UE4 | @UNREALENGINE
Raymarching In this case, I wanted to move the smoke in 3D using Raymarching, so I created a 3D texture using sequential numbers #UE4 | @UNREALENGINE
Raymarching The smoke simulation is performed in Houdini to match the destruction simulation #UE4 | @UNREALENGINE
Raymarching Export the 3D texture in the Volume to Texture node of SideFXLabs #UE4 | @UNREALENGINE
Raymarching I fed it to the render target of the Volumetrics material as a sequential number #UE4 | @UNREALENGINE
Raymarching Scene capture was used to apply sequential numbering to the render target #UE4 | @UNREALENGINE
Raymarching Uses Python to automatically create and align planes with sequential texture assignments #UE4 | @UNREALENGINE
Raymarching You can reflect the sequential numbered textures to the render target by capturing the scene while letting them fade into the camera #UE4 | @UNREALENGINE
Raymarching I didn't care about memory in this case, but I think it's a good idea to loop it, depending on the situation #UE4 | @UNREALENGINE
Raymarching Also, Volumetrics has a real-time fluid simulation sample that you can try out as well #UE4 | @UNREALENGINE
Material Next, a little trick with materials #UE4 | @UNREALENGINE
Material I distorted it to give it a natural brokenness #UE4 | @UNREALENGINE
Material The technique uses Pre-Skinned Local Position to skew the model when it is broken #UE4 | @UNREALENGINE
Material The Pre-Skinned Local Position node is only available for skeletal mesh animations, but it is very useful #UE4 | @UNREALENGINE
Material Even in the case of Alembic and VAT, it is possible to embed the positions before and after the breakage into the UV to create natural cracks #UE4 | @UNREALENGINE
Material https://www.slideshare.net/EpicGamesJapan/ue4-139190798 Adding a dedicated UV to the edges is also a good idea if it's too tough to split the model #UE4 | @UNREALENGINE
Shooting The construction of the destruction scene is overall complete, so I'll shoot from here #UE4 | @UNREALENGINE
Shooting https://docs.unrealengine.com/ja/Engine/Plugins/VirtualCameraPlugin/index.html In this case, I used a virtual camera to add some natural camera shake #UE4 | @UNREALENGINE
Shooting All you need to do is install the special app and plugin and you're ready to shoot #UE4 | @UNREALENGINE
Shooting https://historia.co.jp/archives/7374/ I think adding a camera shake track is a good idea, as minor camera shake and other things will be corrected and disappear #UE4 | @UNREALENGINE
Finishing touches The lighting and postprocess is basically the same as the Kyoto Asset setup #UE4 | @UNREALENGINE
Finishing touches It's very easy to switch between day and night if the proper lighting settings are in place #UE4 | @UNREALENGINE
Finishing touches Japanese Tim : Make the pig's eyes glow red !!! You will be able to respond flexibly to sudden changes from the director Japanese Tim : Great !!! #UE4 | @UNREALENGINE
Finishing touches And so on ...... #UE4 | @UNREALENGINE
Finishing touches Ta-dah! #UE4 | @UNREALENGINE
Finishing touches Ta-dah! #UE4 | @UNREALENGINE
Conclusion #UE4 | @UNREALENGINE
Conclusion To create a destruction scene, you need a model that is DestructionReady Destruction should be planned #UE4 | @UNREALENGINE
Conclusion To create a destruction scene, you need a model that is DestructionReady Destruction should be planned There are multiple workflows for destruction implementation in UE4 Choose the better one for your situation #UE4 | @UNREALENGINE
Conclusion I hope that your destructive urges are legitimately resolved in UE4 #UE4 | @UNREALENGINE
Conclusion Have a great life, God of Destruction! #UE4 | @UNREALENGINE
Thank you very much for your attention #UE4 | @UNREALENGINE