Pig & Kyoto -Let's be the God of Destruction in UE4- 【UE4 VFX Art Dive 2020】

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

profile-image

Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Pig & Kyoto -Let's be the God of Destruction in UE4Epic Games Japan Technical Artist - Developer Relations Osamu Saito

2.

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

3.

Introduction #UE4 | @UNREALENGINE

4.

Introduction Destruction is wonderful … #UE4 | @UNREALENGINE

5.

Introduction #UE4 | @UNREALENGINE

6.

Introduction Have you ever been tempted to destroy things anyway? #UE4 | @UNREALENGINE

7.

Introduction We all have an inner drive to destroy. #UE4 | @UNREALENGINE

8.

Introduction But in a country where there is the Rule of Law, you can't just break things without permission. #UE4 | @UNREALENGINE

9.

Introduction If so, let's use UE4 to destroy stuff! #UE4 | @UNREALENGINE

10.

Speaking Today #UE4 | @UNREALENGINE

11.

Speaking Today How to use pigs to destroy the streets of Kyoto #UE4 | @UNREALENGINE

12.

Speaking Today How to use pigs to destroy the streets of Kyoto →Introduction to Destruction Features & Workflow in UE4 #UE4 | @UNREALENGINE

13.

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...

14.

Introduction therefore #UE4 | @UNREALENGINE

15.

Introduction #UE4 | @UNREALENGINE

16.

Introduction #UE4 | @UNREALENGINE

17.

Introduction #UE4 | @UNREALENGINE

18.

Introduction #UE4 | @UNREALENGINE

19.

Introduction I destroyed it! #UE4 | @UNREALENGINE

20.

Introduction I'm going to give you an explanation through this example #UE4 | @UNREALENGINE

21.

Introduction In the beginning, the Great Destroyer in me said #UE4 | @UNREALENGINE

22.

Introduction Destroy something beautiful In the beginning, the Great Destroyer in me said #UE4 | @UNREALENGINE

23.

Introduction So I used the beautiful assets in Kyoto. #UE4 | @UNREALENGINE

24.

Introduction The author has given me permission to destroy it with a pig #UE4 | @UNREALENGINE

25.

Introduction So, let‘s go ahead and destroy it … #UE4 | @UNREALENGINE

26.

Introduction Wait #UE4 | @UNREALENGINE

27.

Introduction Have you ever received a request like this? #UE4 | @UNREALENGINE

28.

Introduction Hey bro, I'd like to tear this building down. We already have a model. That's easy, right? #UE4 | @UNREALENGINE

29.

Introduction Yes, I am Guilty #UE4 | @UNREALENGINE

30.

Introduction The model should be Destruction-Ready #UE4 | @UNREALENGINE

31.

What is Destruction-Ready? ・The model is closed ・There is no overlap in models #UE4 | @UNREALENGINE

32.

Why? ? Destruction, in other words, is a "physical" simulation #UE4 | @UNREALENGINE

33.

Why? ? Shape, structure and mass of things If they are not correct, you cannot run a correct simulation #UE4 | @UNREALENGINE

34.

Why? ? It has to be a physically correct model, with proper geometry and no overlap #UE4 | @UNREALENGINE

35.

Model preparation These beautiful Kyoto assets are not only beautiful, but have been "optimized" for games #UE4 | @UNREALENGINE

36.

Model preparation Assets for games have been deleted or merged where they are not visible in the model for optimization purposes #UE4 | @UNREALENGINE

37.

Model preparation So if you simulate this as it is...... #UE4 | @UNREALENGINE

38.

Model preparation BAAANG #UE4 | @UNREALENGINE

39.

Model preparation If we simulate it correctly, it looks like this #UE4 | @UNREALENGINE

40.

Model preparation Physically correct models are very important #UE4 | @UNREALENGINE

41.

Model preparation So how much work would it take to make the one house I just mentioned Destruction-Ready? #UE4 | @UNREALENGINE

42.

Model preparation Whole Houdini node diagram #UE4 | @UNREALENGINE

43.

Model preparation Simulation Setting #UE4 | @UNREALENGINE

44.

Model preparation Model Setting #UE4 | @UNREALENGINE Simulation Setting

45.

Model preparation Let me visualize the areas that needed to be fixed #UE4 | @UNREALENGINE

46.

Model preparation This house #UE4 | @UNREALENGINE

47.

Model preparation Here's what it looks like if you arrange them part by part #UE4 | @UNREALENGINE

48.

Model preparation Red is the part that is not Destruction-Ready #UE4 | @UNREALENGINE

49.

Model preparation A look at the model from the back #UE4 | @UNREALENGINE

50.

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

51.

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

52.

What I want to tell you It's hard to make an optimized asset Destruction-Ready afterwards #UE4 | @UNREALENGINE

53.

What I want to tell you Let's plan ahead and destroy it #UE4 | @UNREALENGINE

54.

What I want to tell you Incidentally, in this example #UE4 | @UNREALENGINE

55.

What I want to tell you There are 100+ models in use in the screen alone #UE4 | @UNREALENGINE

56.

What I want to tell you I automated it as much as I could, but it was very hard... #UE4 | @UNREALENGINE

57.

Model preparation And yet, another failure #UE4 | @UNREALENGINE

58.

Model preparation I've laid out these Destruction-Ready models in UE4 and I want them destroyed #UE4 | @UNREALENGINE

59.

Model preparation Stupid human #UE4 | @UNREALENGINE

60.

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

61.

Model preparation When you import a model into UE4, it's basically all triangulated #UE4 | @UNREALENGINE

62.

Model preparation These triangular polygons are all individual #UE4 | @UNREALENGINE

63.

Model preparation If "Remove Degenerates" is checked, vertices with the same position, same UV and same normal will be combined #UE4 | @UNREALENGINE

64.

Model preparation So importing into UE4 means that you're going to get a completely different model than the original one #UE4 | @UNREALENGINE

65.

Model preparation And when exporting FBX, UE4 cleverly merges the vertices together before exporting #UE4 | @UNREALENGINE

66.

Model preparation This model, for example, when imported into UE4 and exported, looks like this #UE4 | @UNREALENGINE

67.

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

68.

Model preparation Stupid human #UE4 | @UNREALENGINE

69.

Model preparation By the way, how to deal with it #UE4 | @UNREALENGINE

70.

Model preparation The FBX exported from UE4 contains each transformation information #UE4 | @UNREALENGINE

71.

Model preparation The FBX exported from UE4 contains each transformation information #UE4 | @UNREALENGINE

72.

Model preparation You can use it to create a transformation matrix to recreate the layout from the original model #UE4 | @UNREALENGINE

73.

Model preparation https://twitter.com/shiba_zushi/status/1257055294095413248?s=20 I wrote more about it in the above tweet #UE4 | @UNREALENGINE

74.

What I want to tell you Let's plan ahead and destroy it #UE4 | @UNREALENGINE

75.

Workflow After many failures, the beautiful Kyoto Asset has finally become Destruction-Ready #UE4 | @UNREALENGINE

76.

Workflow There are two main workflows when it comes to destruction in UE4 #UE4 | @UNREALENGINE

77.

Workflow There are two main workflows when it comes to destruction in UE4 Pre-destruction #UE4 | @UNREALENGINE Realtime-destruction

78.

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

79.

Workflow For this example, I've adopted the "Pre-destruction" Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE

80.

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

81.

Workflow What about PhysX and Chaos? Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE

82.

Workflow …… #UE4 | @UNREALENGINE

83.

Workflow I have verified it in this house #UE4 | @UNREALENGINE

84.

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

85.

Workflow In the case of PhysX, I used about 2000 parts of StaticMesh #UE4 | @UNREALENGINE

86.

Workflow In the case of Chaos, I turned it into a GeometryCollection #UE4 | @UNREALENGINE

87.

Workflow In the case of PhysX(4.25.0) #UE4 | @UNREALENGINE

88.

Workflow In the case of Chaos(4.25.0) #UE4 | @UNREALENGINE

89.

Workflow …… #UE4 | @UNREALENGINE

90.

Workflow https://docs.unrealengine.com/ja/Engine/Chaos/ChaosDestruction/index.html #UE4 | @UNREALENGINE

91.

Workflow https://docs.unrealengine.com/ja/Engine/Chaos/ChaosDestruction/index.html Currently, Chaos is a Beta feature #UE4 | @UNREALENGINE

92.

Workflow Especially the behavior around GeometryCollection has been improved in each minor version #UE4 | @UNREALENGINE

93.

Workflow I'll talk more in-depth about Chaos another time #UE4 | @UNREALENGINE

94.

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

95.

Workflow So, let's talk about the "Pre-destruction" workflow. Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE

96.

Pre-destruction In the case of “Pre-destruction”, the destruction simulation itself must be created by each DCC tool #UE4 | @UNREALENGINE

97.

Pre-destruction This time I used Houdini #UE4 | @UNREALENGINE

98.

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

99.

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

100.

Pre-destruction https://www.sidefx.com/ja/products/houdini/whats-new-in-18/ Exporting simulation data is very easy with SideFX Labs #UE4 | @UNREALENGINE

101.

Pre-destruction When the destruction simulation is ready, I'll import it into UE4 and implement it #UE4 | @UNREALENGINE

102.

Pre-destruction The following three implementation methods were tested this time Pre-destruction Realtime-destruction FBX Niagara Alembic PhysX VAT Chaos #UE4 | @UNREALENGINE

103.

Pre-destruction FBX Alembic VAT These methods are implemented differently, but they look almost identical #UE4 | @UNREALENGINE

104.

Pre-destruction The characteristics of each method are explained below FBX Alembic VAT Data Size ? ? ? Performance ? ? ? Working Cost ? ? ? #UE4 | @UNREALENGINE

105.

FBX Let's start with FBX FBX Alembic VAT Data Size ? ? ? Performance ? ? ? Working Cost ? ? ? #UE4 | @UNREALENGINE

106.

FBX This is classified as FBX, but the implementation is bone animation with a skeletal mesh #UE4 | @UNREALENGINE

107.

FBX The destruction motion was created in Houdini and exported to FBX using "RBD to FBX" in "Side FX Labs" #UE4 | @UNREALENGINE

108.

FBX https://www.sidefx.com/ja/tutorials/game-tools-rbd-to-fbx/ For more information on "RBD to FBX“, please click here #UE4 | @UNREALENGINE

109.

FBX UE4 will automatically create bones on import if the object has an animation baked into it #UE4 | @UNREALENGINE

110.

FBX The rootbone is created at the origin, so be careful about animation accuracy and bounds #UE4 | @UNREALENGINE

111.

FBX I think one of the benefits of skeletal mesh animation is the ability to hit notify #UE4 | @UNREALENGINE

112.

FBX The fact that effects can be attached to bones and sockets is also very easy to use #UE4 | @UNREALENGINE

113.

FBX Another powerful advantage of skeletal mesh animation is the ability to compress the animation #UE4 | @UNREALENGINE

114.

FBX http://hogetatu.hatenablog.com/entry/2018/12/05/000944 Here's a very nice article on the details of animation compression #UE4 | @UNREALENGINE

115.

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

116.

FBX And when it comes to performance, it's mainly CPU cost #UE4 | @UNREALENGINE

117.

FBX Animation update process processed in parallel in a task thread And when it comes to performance, it's mainly CPU cost #UE4 | @UNREALENGINE

118.

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

119.

FBX Skeletal animation performance depends on the number of bones Please note that the GPU skinning update process is not parallelized #UE4 | @UNREALENGINE

120.

FBX So that's a very quick summary... FBX Alembic VAT Data Size ? ? ? Performance ? ? ? Working Cost ? ? ? #UE4 | @UNREALENGINE

121.

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 ?

122.

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) ?

123.

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.

124.

FBX Here's what FBX looks like! FBX Alembic VAT Data Size ○ ? ? Performance ○ ? ? Working Cost △ ? ? #UE4 | @UNREALENGINE

125.

Alembic Then Alembic FBX Alembic VAT Data Size ○ ? ? Performance ○ ? ? Working Cost △ ? ? #UE4 | @UNREALENGINE

126.

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

127.

Alembic Also, Alembic offers three different import methods #UE4 | @UNREALENGINE

128.

Alembic In this case, I used the Geometry Cache #UE4 | @UNREALENGINE

129.

Alembic FBX Alembic VAT This is what it looks like when placed on a level #UE4 | @UNREALENGINE

130.

Alembic The destruction motion was created in Houdini as well as FBX and exported .abc in the "Alembic" node #UE4 | @UNREALENGINE

131.

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

132.

Alembic Also, the Geometry Cache is slightly annoying in that you can't preview models or motions #UE4 | @UNREALENGINE

133.

Alembic The Geometry Cache Track in the sequencer makes it easy and convenient to preview. #UE4 | @UNREALENGINE

134.

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

135.

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

136.

Alembic So that's a quick summary... FBX Alembic VAT Data Size ○ ? ? Performance ○ ? ? Working Cost △ ? ? #UE4 | @UNREALENGINE

137.

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

138.

Alembic So that's a quick summary... FBX Processing is heavy because データサイズ it is done per vertex ○ Alembic VAT ✕ ? Performance ○ △ ? Working Cost △ ? ? #UE4 | @UNREALENGINE

139.

Alembic So that's a quick summary... Data Size FBX Alembic VAT ○ ✕ ? ○ △ ? △ ○ ? Relatively quick import Performance process and easy export Working Cost #UE4 | @UNREALENGINE

140.

Alembic Alembic looks like this! FBX Alembic VAT Data Size ○ ✕ ? Performance ○ △ ? Working Cost △ ○ ? #UE4 | @UNREALENGINE

141.

VAT Finally, VAT FBX Alembic VAT Data Size ○ ✕ ? Performance ○ △ ? Working Cost △ ○ ? #UE4 | @UNREALENGINE

142.

VAT VAT stands for Vertex Animation Texture, a technique that uses a vertex shader to create an offset representation #UE4 | @UNREALENGINE

143.

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

144.

VAT The destruction motion was created in Houdini as before and exported with Vertex Animation Textures ROP from Side FX Labs #UE4 | @UNREALENGINE

145.

VAT VAT textures should be set to uncompressed, linear and nearest after importing #UE4 | @UNREALENGINE

146.

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

147.

VAT FBX Alembic VAT When it comes to data size, VAT is quite reasonable when it comes to RBD #UE4 | @UNREALENGINE

148.

VAT There is almost no CPU load on VAT because it is basically all processed by GPU #UE4 | @UNREALENGINE

149.

VAT So, to briefly summarize... FBX Alembic VAT Data Size ○ ✕ ? Performance ○ △ ? Working Cost △ ○ ? #UE4 | @UNREALENGINE

150.

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.

151.

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

152.

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 ○

153.

VAT Here's what VAT looks like! FBX Alembic VAT Data Size ○ ✕ ○ Performance ○ △ ◎ Working Cost △ ○ ✕ #UE4 | @UNREALENGINE

154.

Workflow Don't quote me on this comparison, but just for reference... FBX Alembic VAT Data Size ○ ✕ ○ Performance ○ △ ◎ Working Cost △ ○ ✕ #UE4 | @UNREALENGINE

155.

Workflow Incidentally, if you put Realtime-destruction in here... FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ? Performance ○ △ ◎ ? Working Cost △ ○ ✕ ? #UE4 | @UNREALENGINE

156.

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

157.

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 ◎ △ ◎ ✕ ○ ✕ ?

158.

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

159.

Workflow I guess it's something like this FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE

160.

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

161.

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

162.

Workflow And for Soft Body, I used Alembic FBX Alembic VAT PhysX Chaos Data Size ○ ✕ ○ ◎ Performance ○ △ ◎ ✕ Working Cost △ ○ ✕ ◎ #UE4 | @UNREALENGINE

163.

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

164.

SoftBody By the way, SoftBody is easy to implement in Alembic or VAT #UE4 | @UNREALENGINE

165.

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

166.

Scene production Now, I finally got the Pre-destruction implemented in UE4 Let's adjust the look and feel #UE4 | @UNREALENGINE

167.

Scene production First of all, regarding material assignment after importing destruction data #UE4 | @UNREALENGINE

168.

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

169.

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

170.

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

171.

Effect Now that the look is somewhat better, the next step is effects #UE4 | @UNREALENGINE

172.

Effect Niagara Raymarching I used Niagara and Raymarching #UE4 | @UNREALENGINE

173.

Niagara I implemented Niagara with reference to Mr. Ikeda's book #UE4 | @UNREALENGINE

174.

Niagara Extract the position and direction of the impact from the destruction data created by Houdini. #UE4 | @UNREALENGINE

175.

Niagara I use the Niagara node of SideFXLabs to export and import as HCSV to UE4. #UE4 | @UNREALENGINE

176.

Niagara By using Niagara, it is easy to create effects that are compatible with a destruction simulation #UE4 | @UNREALENGINE

177.

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

178.

Raymarching Next, Raymarching #UE4 | @UNREALENGINE

179.

Raymarching https://shaderbits.com/ I'm grateful for Ryan's shaders #UE4 | @UNREALENGINE

180.

Raymarching There are materials in the Volumetrics plugin that you can use right away #UE4 | @UNREALENGINE

181.

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

182.

Raymarching The smoke simulation is performed in Houdini to match the destruction simulation #UE4 | @UNREALENGINE

183.

Raymarching Export the 3D texture in the Volume to Texture node of SideFXLabs #UE4 | @UNREALENGINE

184.

Raymarching I fed it to the render target of the Volumetrics material as a sequential number #UE4 | @UNREALENGINE

185.

Raymarching Scene capture was used to apply sequential numbering to the render target #UE4 | @UNREALENGINE

186.

Raymarching Uses Python to automatically create and align planes with sequential texture assignments #UE4 | @UNREALENGINE

187.

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

188.

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

189.

Raymarching Also, Volumetrics has a real-time fluid simulation sample that you can try out as well #UE4 | @UNREALENGINE

190.

Material Next, a little trick with materials #UE4 | @UNREALENGINE

191.

Material I distorted it to give it a natural brokenness #UE4 | @UNREALENGINE

192.

Material The technique uses Pre-Skinned Local Position to skew the model when it is broken #UE4 | @UNREALENGINE

193.

Material The Pre-Skinned Local Position node is only available for skeletal mesh animations, but it is very useful #UE4 | @UNREALENGINE

194.

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

195.

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

196.

Shooting The construction of the destruction scene is overall complete, so I'll shoot from here #UE4 | @UNREALENGINE

197.

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

198.

Shooting All you need to do is install the special app and plugin and you're ready to shoot #UE4 | @UNREALENGINE

199.

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

200.

Finishing touches The lighting and postprocess is basically the same as the Kyoto Asset setup #UE4 | @UNREALENGINE

201.

Finishing touches It's very easy to switch between day and night if the proper lighting settings are in place #UE4 | @UNREALENGINE

202.

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

203.

Finishing touches And so on ...... #UE4 | @UNREALENGINE

204.

Finishing touches Ta-dah! #UE4 | @UNREALENGINE

205.

Finishing touches Ta-dah! #UE4 | @UNREALENGINE

206.

Conclusion #UE4 | @UNREALENGINE

207.

Conclusion To create a destruction scene, you need a model that is DestructionReady Destruction should be planned #UE4 | @UNREALENGINE

208.

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

209.

Conclusion I hope that your destructive urges are legitimately resolved in UE4 #UE4 | @UNREALENGINE

210.

Conclusion Have a great life, God of Destruction! #UE4 | @UNREALENGINE

211.

Thank you very much for your attention #UE4 | @UNREALENGINE