1 0:00:00.000 --> 0:00:04.000 Welcome to Office Hours, my name is ProbablePrime, if you have any questions please drop them 2 0:00:04.000 --> 0:00:08.080 in the Office Hours text chat that is two above the one that you're currently in and 3 0:00:08.080 --> 0:00:09.760 I'll get to the order that they arrive. 4 0:00:09.760 --> 0:00:15.320 If there are no questions we are going to sit here on the precipice of doom with no 5 0:00:15.320 --> 0:00:17.960 noise or sound at all. 6 0:00:17.960 --> 0:00:20.240 The precipice of doom of silence. 7 0:00:20.240 --> 0:00:25.320 So just get those questions in or we have to sit here, you'll slowly go mad at the lack 8 0:00:25.320 --> 0:00:26.320 of sound. 9 0:00:26.320 --> 0:00:30.720 So we have our first question here from Lex which says, what's a good way to optimize 10 0:00:30.720 --> 0:00:33.720 avatars for network traffic, are you making sure that only necessary things are being 11 0:00:33.720 --> 0:00:37.280 sent over the network to make sure the host doesn't get overloaded with data? 12 0:00:37.280 --> 0:00:41.280 That really does depend on the type of avatar, I see a lot of people that do like preemptive 13 0:00:41.280 --> 0:00:45.920 optimization for things that don't make sense to be optimized. 14 0:00:45.920 --> 0:00:49.560 There are like cases where you might want to do it for like artistic reasons, for example 15 0:00:49.560 --> 0:00:54.680 the anylander people will make their own IK, make their own sort of bones and rigging systems 16 0:00:54.680 --> 0:00:56.600 because of artistic reasons. 17 0:00:56.600 --> 0:00:59.960 They like making everything inside game without stepping outside of games. 18 0:00:59.960 --> 0:01:02.740 So they get that functionality. 19 0:01:02.740 --> 0:01:06.900 But I've seen some people who make their own IK because they're like, well, the IK is bad, 20 0:01:06.900 --> 0:01:08.540 it's laggy and I want to avoid it. 21 0:01:08.540 --> 0:01:12.660 That's an example of like optimization that's not needed. 22 0:01:12.660 --> 0:01:19.000 If there's a problem with IK, we'll fix it eventually, we'll optimize it. 23 0:01:19.000 --> 0:01:25.240 There's a good parallel to be placed here on browser stuff and JavaScript, I'm quite 24 0:01:25.240 --> 0:01:26.840 opinionated here. 25 0:01:26.840 --> 0:01:31.600 So there's a bunch of frontend libraries that are designed to just put HTML on the page 26 0:01:31.600 --> 0:01:33.160 and make it interactive. 27 0:01:33.160 --> 0:01:37.840 It's the stuff that powers TweetDeck, like Twitter, whatever website you use, it uses 28 0:01:37.840 --> 0:01:39.460 JavaScript these days. 29 0:01:39.460 --> 0:01:43.840 And there's a lot of cases where developers of JavaScript think they know better than 30 0:01:43.840 --> 0:01:47.400 the browser manufacturers and they'll write their own mechanisms for doing various things 31 0:01:47.400 --> 0:01:51.680 and then the browser people catch up and they're like, hey, if you use our method, it's so 32 0:01:51.680 --> 0:01:52.680 much faster. 33 0:01:52.680 --> 0:01:58.100 So a good example here would be React, which has what's called a virtual sort of HTML virtual 34 0:01:58.100 --> 0:02:00.640 layer where stuff gets copied around. 35 0:02:00.640 --> 0:02:05.780 And that was super fast and is still quite fast, but emerging standard in most browsers 36 0:02:05.780 --> 0:02:11.840 is now a native virtual HTML that makes stuff a lot faster than even React. 37 0:02:11.840 --> 0:02:17.000 But it's going to take years for people to use that because there's inertia from using 38 0:02:17.000 --> 0:02:18.000 the old stuff. 39 0:02:18.000 --> 0:02:20.000 So again, it's a good example. 40 0:02:20.000 --> 0:02:25.480 We know in some cases, we know better than you about our ability to optimize it. 41 0:02:25.480 --> 0:02:31.040 And when we optimize it, if you don't put anything hacky in place, then you get those 42 0:02:31.040 --> 0:02:32.900 optimizations for free. 43 0:02:32.900 --> 0:02:38.040 As a more sort of neo-centric example, if the React stuff blew over your head, let's 44 0:02:38.040 --> 0:02:41.840 say there's one node that you're using quite a lot, using it in every single logics chain 45 0:02:41.840 --> 0:02:46.000 you ever do, and it has a known issue with lag. 46 0:02:46.000 --> 0:02:50.760 You could, for example, avoid that node, or you could open up a bug report, and we could 47 0:02:50.760 --> 0:02:54.960 look at that bug and fix that node, and then every single use of that node would benefit 48 0:02:54.960 --> 0:02:56.360 from the optimization. 49 0:02:56.360 --> 0:03:01.400 If every single user avoided that node because it wasn't optimized, there would be no performance 50 0:03:01.400 --> 0:03:03.240 gain from us making that change. 51 0:03:03.240 --> 0:03:04.240 So keep that in mind. 52 0:03:04.240 --> 0:03:08.760 With that out of the way, once you're away from stuff that is just standard, so if you 53 0:03:08.760 --> 0:03:12.400 want your IK, your avatar to have IK, use IK, user IK systems. 54 0:03:12.400 --> 0:03:17.480 If you want your avatar to have blend shapes, use those. 55 0:03:17.480 --> 0:03:22.080 For reasons other than network traffic, the best practice right now is to actually slice 56 0:03:22.080 --> 0:03:23.080 your head off. 57 0:03:23.080 --> 0:03:24.080 This is kind of grim. 58 0:03:24.080 --> 0:03:28.240 Slice your head off and make sure your blend shapes are only on your head and not on the 59 0:03:28.240 --> 0:03:29.240 rest of your body. 60 0:03:29.240 --> 0:03:33.040 Now, of course, there are body modification blend shapes, like sizing, et cetera. 61 0:03:33.040 --> 0:03:34.040 Those should only be on the body. 62 0:03:34.040 --> 0:03:41.620 The point being is only put the blend shapes where they need to be and split the meshes 63 0:03:41.620 --> 0:03:46.880 such that the data is not copied between those two places, and that's better for performance 64 0:03:46.880 --> 0:03:49.100 in other reasons but not network traffic. 65 0:03:49.100 --> 0:03:54.360 Beyond those two things, which are literally nothing to do with the question really, avoid 66 0:03:54.360 --> 0:03:55.360 writes where you can. 67 0:03:55.360 --> 0:04:00.100 I see a lot of people doing animations or like reciprocal motion based on sort of writes 68 0:04:00.100 --> 0:04:01.100 or Boolean matches. 69 0:04:01.100 --> 0:04:04.520 For example, they might have a tail wag and they're using a Boolean match to do the tail 70 0:04:04.520 --> 0:04:05.520 wag, right? 71 0:04:05.520 --> 0:04:09.740 So they latch the latch on, it goes to true, and the tail swings to the right. 72 0:04:09.740 --> 0:04:13.080 Then the latch off, and the tail swings to the left. 73 0:04:13.080 --> 0:04:16.860 And what you're having there is you're just turning a Boolean match on and off for literally 74 0:04:16.860 --> 0:04:18.260 no reason. 75 0:04:18.260 --> 0:04:21.640 You can use a drive for that, and that would be a lot more performant and a lot less network 76 0:04:21.640 --> 0:04:22.640 traffic. 77 0:04:22.640 --> 0:04:23.640 Just use a sine wave. 78 0:04:23.640 --> 0:04:24.640 That's what a sine wave is. 79 0:04:24.640 --> 0:04:29.840 A sine wave is essentially on a smooth level, a Boolean match turning on and off. 80 0:04:29.840 --> 0:04:30.840 Just mathematics. 81 0:04:30.840 --> 0:04:32.960 So keep that in mind. 82 0:04:32.960 --> 0:04:35.740 And then limit what's on your avatar as well. 83 0:04:35.740 --> 0:04:39.080 If you don't use it every session, you don't need it. 84 0:04:39.080 --> 0:04:43.360 So you know, don't parent a gun to your avatar, because I can guarantee you only shoot that 85 0:04:43.360 --> 0:04:46.320 gun like once a day, maybe. 86 0:04:46.320 --> 0:04:49.180 Sometimes if you parent it to your avatar, you'll find excuses to use it, and it's not 87 0:04:49.180 --> 0:04:52.720 very polite to just walk into every session and be like, oh yeah, the gun on my avatar, 88 0:04:52.720 --> 0:04:55.000 which I need to justify having, I'll shoot everyone. 89 0:04:55.000 --> 0:04:58.520 No, just don't put the gun on your avatar. 90 0:04:58.520 --> 0:05:01.060 Same thing goes with like multi-tools and stuff like that. 91 0:05:01.060 --> 0:05:05.160 If you don't use it, don't put it on your avatar, and before you won't have that. 92 0:05:05.160 --> 0:05:09.040 Then beyond that, just make sure you're using as many drives as possible. 93 0:05:09.040 --> 0:05:12.200 Writes might sound good, repeated writes might sound good, but writes are sort of like a 94 0:05:12.200 --> 0:05:14.440 network synchronization things. 95 0:05:14.440 --> 0:05:20.360 Yeah, the blend shape thing is like, it's just like really, in some cases, like annoying. 96 0:05:20.360 --> 0:05:25.680 It's like there are like defined ways to handle them, but a lot of times, either the defined 97 0:05:25.680 --> 0:05:31.880 ways to handle them right now are kind of difficult to do, or rely on a sort of culture 98 0:05:31.880 --> 0:05:34.160 change in avatar basemakers. 99 0:05:34.160 --> 0:05:37.600 For example, the culture with avatar basemakers right now is to add as many blend shapes as 100 0:05:37.600 --> 0:05:39.640 possible, because that actually drives their sales up. 101 0:05:39.640 --> 0:05:42.640 If they can, you know, especially the body modification blend shapes, if there's like 102 0:05:42.640 --> 0:05:46.600 five different body types and blend shapes change all of those, beautiful, that's a lot 103 0:05:46.600 --> 0:05:48.160 of money for those avatar makers. 104 0:05:48.160 --> 0:05:51.360 If there's a lot of expression blend shapes, again, that's going to drive sales up because 105 0:05:51.360 --> 0:05:53.000 they can make cute faces, etc. 106 0:05:53.000 --> 0:05:58.000 But what that doesn't do is it doesn't provide bases into the community that have optimization 107 0:05:58.000 --> 0:05:59.000 in mind. 108 0:05:59.000 --> 0:06:04.520 If they started just, you know, guillotining the head off properly, there'd be performant 109 0:06:04.520 --> 0:06:05.520 there. 110 0:06:05.520 --> 0:06:10.480 If they, I don't know, if they had something in Unity Blender, or even if we had something 111 0:06:10.480 --> 0:06:14.600 inside of a Neos that made it, baking the blend shapes and putting those around would 112 0:06:14.600 --> 0:06:16.200 be a lot better. 113 0:06:16.200 --> 0:06:19.480 You can do it now, and I do recommend you do it, but some people are just like, it's 114 0:06:19.480 --> 0:06:22.600 too complicated, or I don't want to do it, or I don't understand how to do it. 115 0:06:22.600 --> 0:06:25.040 We could make a better system for that. 116 0:06:25.040 --> 0:06:30.660 I always imagine, like, you know, in Star Trek, where medicine, you know, in Star Trek, 117 0:06:30.660 --> 0:06:32.880 some guys might not notice I trick it. 118 0:06:32.880 --> 0:06:37.840 In Star Trek, of course, because it's a sci-fi, so in the future, I'm always sort of fascinated 119 0:06:37.840 --> 0:06:38.840 by the medical episodes. 120 0:06:38.840 --> 0:06:42.000 You know, someone walks into the doctor, it always seems like much better than the healthcare 121 0:06:42.000 --> 0:06:43.940 system in any country I've ever been in, right? 122 0:06:43.940 --> 0:06:48.120 You just walk into, like here, in reality, you walk into the doctor, and they just got 123 0:06:48.120 --> 0:06:49.460 to guess what's wrong with you. 124 0:06:49.460 --> 0:06:53.040 But in Star Trek, you walk into the doctor, they beep you of a scanner, or then they inject 125 0:06:53.040 --> 0:06:55.840 you of one injection, and then you're done, and you can leave. 126 0:06:55.840 --> 0:06:59.240 Like that's how our tooling should be for avatars, right? 127 0:06:59.240 --> 0:07:02.840 You get out a tool, or you get out a UI, you stick the avatar in it, and you're like, I'll 128 0:07:02.840 --> 0:07:04.880 want to optimize it, and we'll just do everything for you. 129 0:07:04.880 --> 0:07:09.360 We'll find out where the head is, we'll guillotine it, we'll separate those things, we'll bake 130 0:07:09.360 --> 0:07:13.440 burn chips that you aren't using, and then we'll provide you with the optimized version. 131 0:07:13.440 --> 0:07:16.940 You can just save that to your inventory, and that way, you've got an optimized one 132 0:07:16.940 --> 0:07:18.560 and an editing one. 133 0:07:18.560 --> 0:07:20.680 Blender and Unity should also be doing some of that. 134 0:07:20.680 --> 0:07:22.720 I know that VRChat actually does do some of that. 135 0:07:22.720 --> 0:07:26.080 When you upload an avatar, you'll see things like preparing your avatar for upload. 136 0:07:26.080 --> 0:07:30.160 That does do some sort of optimizations and changes to the avatar when it's uploaded. 137 0:07:30.160 --> 0:07:33.320 People just don't notice that, of course, because they can't sort of investigate the 138 0:07:33.320 --> 0:07:34.320 intermediary stage. 139 0:07:34.320 --> 0:07:38.880 The intermediary stage goes straight to VRChat, and so you don't see what's happening there. 140 0:07:38.880 --> 0:07:41.800 But I do know that they do some stuff to sort of adjust things. 141 0:07:41.800 --> 0:07:44.620 To answer this question about, wait, that's a thing, yeah. 142 0:07:44.620 --> 0:07:45.620 It's called Web Components. 143 0:07:45.620 --> 0:07:47.840 It comes under the sort of generic tree of that. 144 0:07:47.840 --> 0:07:53.040 It's a more native way to do what every front-end library does right now, which is basically 145 0:07:53.040 --> 0:08:01.160 like instead of having to write code and JavaScript and stuff to do like, oh, custom element here, 146 0:08:01.160 --> 0:08:07.740 like cheese fountain might be a custom element in HTML, you can just do it using standard 147 0:08:07.740 --> 0:08:13.160 stuff that's built into the browser, and it's faster because it runs faster because it's 148 0:08:13.160 --> 0:08:14.160 in the browser. 149 0:08:14.160 --> 0:08:15.160 It's not JavaScript. 150 0:08:15.160 --> 0:08:18.320 But it's taking a while for people to catch up to it. 151 0:08:18.320 --> 0:08:19.320 Moving on. 152 0:08:19.320 --> 0:08:23.720 Jonathan has a question, will there be any way in the future to pull your own avatars 153 0:08:23.720 --> 0:08:24.720 out of Neos? 154 0:08:24.720 --> 0:08:27.640 Like if you worked on your avatar at some point in the future, you want to edit a few 155 0:08:27.640 --> 0:08:31.160 things on it in Blender, but don't want to go back through the process of redoing everything 156 0:08:31.160 --> 0:08:33.080 on a new version of your avatar. 157 0:08:33.080 --> 0:08:34.640 Yes and no. 158 0:08:34.640 --> 0:08:39.480 When your avatar is imported into Neos, it is changed through a couple of mechanisms. 159 0:08:39.480 --> 0:08:43.000 First of all, it goes from a sort of FBX or whatever you import it as, whatever file type. 160 0:08:43.000 --> 0:08:51.400 It goes from there to like ass importers internal format, and then into Neos's internal format. 161 0:08:51.400 --> 0:08:54.600 And going backwards from that is kind of difficult. 162 0:08:54.600 --> 0:08:56.400 And so that's why that doesn't work right now. 163 0:08:56.400 --> 0:08:58.920 That's why exporting avatars does not work right now. 164 0:08:58.920 --> 0:09:02.120 There are stuff that we can do there to make that a lot easier. 165 0:09:02.120 --> 0:09:05.800 What I would actually think would be a better move there, though, would be to make it more 166 0:09:05.800 --> 0:09:10.040 seamless for you to reimport the avatar and just sort of like shoot it across onto the 167 0:09:10.040 --> 0:09:11.140 current avatar. 168 0:09:11.140 --> 0:09:14.840 You can already do that, but it does have limitations. 169 0:09:14.840 --> 0:09:18.880 If you don't change blend shapes, you just change weights or you just adjust blend shapes. 170 0:09:18.880 --> 0:09:21.920 So no added blend shapes, no added bones. 171 0:09:21.920 --> 0:09:27.040 You can just update the mesh reference on your avatar and it will work. 172 0:09:27.040 --> 0:09:30.400 If you add blend shapes or add bones, it can not work. 173 0:09:30.400 --> 0:09:33.480 I should probably like document that a little bit because like some people don't realize 174 0:09:33.480 --> 0:09:34.480 that happens. 175 0:09:34.480 --> 0:09:37.400 But yeah, if you don't add any bones, you don't have any blend shapes, you just edit 176 0:09:37.400 --> 0:09:39.640 stuff in those existing constraints. 177 0:09:39.640 --> 0:09:41.600 Just replace the mesh reference. 178 0:09:41.600 --> 0:09:42.600 Perfectly easy. 179 0:09:42.600 --> 0:09:43.600 You don't need to do anything. 180 0:09:43.600 --> 0:09:45.200 I don't have all the time for UV editing. 181 0:09:45.200 --> 0:09:51.160 UV editing is quite stable and usually UV editing doesn't touch the bones or blend shapes. 182 0:09:51.160 --> 0:09:53.800 You're just adjusting the UVs or adjusting the textures. 183 0:09:53.800 --> 0:09:57.520 You can just drop in a new mesh reference. 184 0:09:57.520 --> 0:09:58.980 I also do it for weights. 185 0:09:58.980 --> 0:10:04.320 Weights also appears to be one that is stable as long as you don't add any bones, for example. 186 0:10:04.320 --> 0:10:08.880 I always have issues with clothing, like clipping where the skin clips through or bits of clothing 187 0:10:08.880 --> 0:10:12.160 clip with each other and so I edit the weight painting a lot and I don't need to recreate 188 0:10:12.160 --> 0:10:13.160 the avatar in that case. 189 0:10:13.160 --> 0:10:15.160 I just update the mesh reference and it works. 190 0:10:15.160 --> 0:10:18.480 But that is because I am not breaking any of those constraints I mentioned. 191 0:10:18.480 --> 0:10:24.200 I also want to get one of those like, you know when you have to do a humanoid unity 192 0:10:24.200 --> 0:10:25.200 and let's see if I can get a picture. 193 0:10:25.200 --> 0:10:26.200 Yeah, yeah, yeah. 194 0:10:26.200 --> 0:10:27.200 There's this screen. 195 0:10:27.200 --> 0:10:30.420 I want to see if we can get something similar to that inside Unity. 196 0:10:30.420 --> 0:10:34.840 It would only, inside Neos, it would only appear when there's a problem. 197 0:10:34.840 --> 0:10:40.400 Like if we can't automatically do it, we could like open it up or maybe you could edit it 198 0:10:40.400 --> 0:10:41.840 afterwards if there was a problem. 199 0:10:41.840 --> 0:10:43.960 I don't want that to be a step that everyone has to go through. 200 0:10:43.960 --> 0:10:47.480 I want it to be a step that people have to go through if they want to edit stuff or they 201 0:10:47.480 --> 0:10:52.040 want to adjust it or it's coming in wrong and they need to just do it manually. 202 0:10:52.040 --> 0:10:55.240 That would be great because then it would be like, cool, you don't need to worry about 203 0:10:55.240 --> 0:10:56.240 the rig. 204 0:10:56.240 --> 0:10:59.620 We have a lot of people that come in and they say like, hey, what is the rig requirements 205 0:10:59.620 --> 0:11:00.620 for Neos? 206 0:11:00.620 --> 0:11:04.480 And we link them the wiki article I wrote, but then they're like, oh, I've got a remake 207 0:11:04.480 --> 0:11:09.240 my avatar to conform to that rig and I'm like, it's really not like, it's not that much different 208 0:11:09.240 --> 0:11:10.240 to VR chats. 209 0:11:10.240 --> 0:11:11.840 Like it's almost identical to VR chats. 210 0:11:11.840 --> 0:11:17.920 Like, I don't know why you're redoing your rig, so cool, confusing, but there we go. 211 0:11:17.920 --> 0:11:24.040 Moving onwards to more questions, Kip says, do you know a good sound file playlist object 212 0:11:24.040 --> 0:11:25.040 in public folders? 213 0:11:25.040 --> 0:11:26.040 I don't know playlists. 214 0:11:26.040 --> 0:11:31.920 The only playlist one I know is the Polylogix YouTube player that can handle YouTube playlists. 215 0:11:31.920 --> 0:11:38.280 There are a few I have seen that can do like multiple sound files in a list, but I don't 216 0:11:38.280 --> 0:11:39.520 have one to hand. 217 0:11:39.520 --> 0:11:41.480 I'm somewhat sound-adversed. 218 0:11:41.480 --> 0:11:47.520 So he's boiling in here, so I'm going to go ahead and turn on the magical AC. 219 0:11:47.520 --> 0:11:50.280 Yeah, I have a portable AC unit. 220 0:11:50.280 --> 0:11:55.880 It's a big, large, stupid, but it makes the room cold, so I'm happy about that. 221 0:11:55.880 --> 0:11:58.840 It doesn't make the room cold when I have too many doors open, because if I have my 222 0:11:58.840 --> 0:12:02.360 bedroom door and my bathroom door open, it kind of doubles the square footage which it 223 0:12:02.360 --> 0:12:04.320 needs to exact pressure on. 224 0:12:04.320 --> 0:12:07.640 I can never remember if an air conditioner does negative or positive pressure, but it 225 0:12:07.640 --> 0:12:11.440 needs like a complete closed system to work effectively. 226 0:12:11.440 --> 0:12:14.680 So we're going to go close them doors, be right back. 227 0:12:14.680 --> 0:12:17.720 Keep questions coming, I'll get back to them in just a second. 228 0:12:17.720 --> 0:12:21.320 And I'm back with the bedroom and bathroom door closed, we now have a closed pressure 229 0:12:21.320 --> 0:12:24.120 system which has immediately doubled the effect of the air conditioner. 230 0:12:24.120 --> 0:12:28.040 So if your air conditioner isn't working, close those windows, close those doors, get 231 0:12:28.040 --> 0:12:30.560 a draft excluder for your doors as well. 232 0:12:30.560 --> 0:12:35.560 I have a sticky plastic draft excluder that went on my front door, because when my AC 233 0:12:35.560 --> 0:12:39.440 was on, there was this whistling noise, which was effectively cold air I'm paying for, going 234 0:12:39.440 --> 0:12:41.840 out underneath my door, and I'm like, nope! 235 0:12:41.840 --> 0:12:43.960 I'm paying for that air! 236 0:12:43.960 --> 0:12:44.960 Screw you! 237 0:12:44.960 --> 0:12:48.360 With that, we're out of questions, if you have any more questions, please do let us 238 0:12:48.360 --> 0:12:49.360 know. 239 0:12:49.360 --> 0:12:50.360 Please drop those questions in. 240 0:12:50.360 --> 0:12:54.120 If there are no additional questions, then soul crushing silence commences now. 241 0:12:54.120 --> 0:12:59.240 You have the power of the sun in your hands, you can ask any question you want, and you're 242 0:12:59.240 --> 0:13:01.760 choosing to ask a B in silence. 243 0:13:01.760 --> 0:13:02.760 Interesting. 244 0:13:02.760 --> 0:13:06.040 Quick call out by the way, occasionally when colliders come up in office hours, I make 245 0:13:06.040 --> 0:13:11.880 a reference to a good example for using active colliders being mining with a pickaxe. 246 0:13:11.880 --> 0:13:16.460 And I got kind of annoyed that I kept forgetting to make that tutorial, so I spent some time 247 0:13:16.460 --> 0:13:17.960 yesterday and made the tutorial. 248 0:13:17.960 --> 0:13:22.260 It's probably the hardest I've worked on a tutorial in a long time, so I'll just link 249 0:13:22.260 --> 0:13:23.600 it in the office hours chat there. 250 0:13:23.600 --> 0:13:28.520 Here's a 30-minute long tutorial about building a mining system, and that's cool. 251 0:13:28.520 --> 0:13:31.560 It was probably about, like, three hours start to finish. 252 0:13:31.560 --> 0:13:33.480 I was like, I should record this. 253 0:13:33.480 --> 0:13:34.480 I need some assets. 254 0:13:34.480 --> 0:13:35.560 I have found some assets. 255 0:13:35.560 --> 0:13:37.640 I will build the object and make sure it works. 256 0:13:37.640 --> 0:13:38.640 Okay, it works. 257 0:13:38.640 --> 0:13:39.640 Cool. 258 0:13:39.640 --> 0:13:44.560 Now I've got to do, like, a recording of a 30-minute tutorial without many mistakes. 259 0:13:44.560 --> 0:13:45.800 I did it in one take. 260 0:13:45.800 --> 0:13:47.160 I did it in one take. 261 0:13:47.160 --> 0:13:48.520 No editing. 262 0:13:48.520 --> 0:13:52.040 There are a couple, like, oopsie doozles, but it's fine. 263 0:13:52.040 --> 0:13:58.120 The storm says that the CJ group made a system using active colliders. 264 0:13:58.120 --> 0:14:00.120 Yeah, they should have. 265 0:14:00.120 --> 0:14:01.880 Colliders are exactly what you need for that. 266 0:14:01.880 --> 0:14:04.600 The reason behind that is, I mean, I talk about it a little bit in the tutorial as well, 267 0:14:04.600 --> 0:14:08.840 but it's like a problem with, like, sets. 268 0:14:08.840 --> 0:14:11.940 Basically you have a set of miningable objects that you want to be static. 269 0:14:11.940 --> 0:14:15.720 You don't want the mineable objects that are out in the world to be doing anything idly. 270 0:14:15.720 --> 0:14:19.880 If they're doing anything, you've got some wrong stuff there. 271 0:14:19.880 --> 0:14:22.640 They don't need to be doing any maths or living their best life. 272 0:14:22.640 --> 0:14:24.240 They're just inanimate objects. 273 0:14:24.240 --> 0:14:27.540 But then you've got a bunch of people wielding pickaxes that want to be doing stuff. 274 0:14:27.540 --> 0:14:32.440 They want to be attacking the ore, so it makes sense to put the colliders on the stuff, which 275 0:14:32.440 --> 0:14:33.440 is... 276 0:14:33.440 --> 0:14:34.440 There's less of. 277 0:14:34.440 --> 0:14:36.280 There are more ore veins than people. 278 0:14:36.280 --> 0:14:37.280 No business lawyer. 279 0:14:37.280 --> 0:14:42.120 If you wanted to mine trees without punching them, you would need to maybe get an axe tree 280 0:14:42.120 --> 0:14:43.400 chopping thing. 281 0:14:43.400 --> 0:14:48.180 I'm happy to do more RPG-style tutorials. 282 0:14:48.180 --> 0:14:51.480 In that video, I talk about, like, hey, what's next after mining smelting? 283 0:14:51.480 --> 0:14:53.440 We could totally do a smelting tutorial. 284 0:14:53.440 --> 0:14:58.280 That would actually probably be easier, because that would just be, like, hey, you take the 285 0:14:58.280 --> 0:15:02.880 mined ore, you throw it into the furnace, you wait a few seconds logic-wise, and now 286 0:15:02.880 --> 0:15:04.880 it pops like a bar. 287 0:15:04.880 --> 0:15:07.760 Stereotypical mining. 288 0:15:07.760 --> 0:15:11.360 Although it might be interesting to see if we can recreate hydrineer systems. 289 0:15:11.360 --> 0:15:17.560 So in hydrineer, you can drop multiple ore nuggets into a cauldron and then pour it out, 290 0:15:17.560 --> 0:15:20.960 and that will get you a higher bar, like a higher purity bar. 291 0:15:20.960 --> 0:15:24.320 Which works out fine, until you realize that you've been, you know, playing the game a 292 0:15:24.320 --> 0:15:30.680 long time, and that your one gold bar has, like, three million gold worth of gold inside 293 0:15:30.680 --> 0:15:31.680 it. 294 0:15:31.680 --> 0:15:36.960 Because it's just, like, cool, that cauldron will just keep adding weight and quality until 295 0:15:36.960 --> 0:15:38.200 you stop it. 296 0:15:38.200 --> 0:15:39.800 So linker says health system. 297 0:15:39.800 --> 0:15:41.520 Yeah, I keep thinking about that one. 298 0:15:41.520 --> 0:15:45.200 It's difficult to do, and the reason behind that one is that there are so many health 299 0:15:45.200 --> 0:15:47.800 systems that exist out there already. 300 0:15:47.800 --> 0:15:52.560 There are a couple that sort of communicate between multiple games as well, they've established 301 0:15:52.560 --> 0:15:53.560 a couple of standards. 302 0:15:53.560 --> 0:15:57.840 In a way, there's a standard one of the building groups uses, and I would think there's a standard 303 0:15:57.840 --> 0:16:00.200 which the Japanese community uses as well. 304 0:16:00.200 --> 0:16:02.320 And so I would hate to introduce another standard. 305 0:16:02.320 --> 0:16:08.480 But if I make it deliberately a little bit crunchy and a little bit basic, then that 306 0:16:08.480 --> 0:16:09.480 might work. 307 0:16:09.480 --> 0:16:10.880 That's what I did for the mining system as well. 308 0:16:10.880 --> 0:16:15.680 There's no, like, durability or anything like that, or, like, sound isn't good either in 309 0:16:15.680 --> 0:16:18.200 the tutorial, but it gets you started. 310 0:16:18.200 --> 0:16:19.200 Yeah. 311 0:16:19.200 --> 0:16:20.200 Simpler systems are good. 312 0:16:20.200 --> 0:16:24.900 I especially love having, like, a place to go on from. 313 0:16:24.900 --> 0:16:29.680 So again, referring to that video above, I put, like, the whole resource pack I found 314 0:16:29.680 --> 0:16:34.080 in the world, which has all sorts of resources, including, like, crystals and stuff like that. 315 0:16:34.080 --> 0:16:38.120 And I show very clearly during the tutorial, here's where you make an ore more difficult 316 0:16:38.120 --> 0:16:40.280 to mine or require more hits. 317 0:16:40.280 --> 0:16:43.120 And so you could go into that world, and if you wanted to learn a little bit more, you 318 0:16:43.120 --> 0:16:48.760 could set it up such that the crystal resources required more mining or maybe a different 319 0:16:48.760 --> 0:16:49.760 pickaxe. 320 0:16:49.760 --> 0:16:50.760 But it is the... 321 0:16:50.760 --> 0:16:55.280 There have been other examples, but it's one of, like, you know, the sort of initial examples 322 0:16:55.280 --> 0:17:00.880 of where I take, like, 500 other videos I've recorded and smush them together into a new 323 0:17:00.880 --> 0:17:01.880 tutorial. 324 0:17:01.880 --> 0:17:05.120 Sometimes I do, like, isolated technical concepts, and it's like, well, why would I need this 325 0:17:05.120 --> 0:17:06.120 node? 326 0:17:06.120 --> 0:17:07.120 Well, here's a video for you. 327 0:17:07.120 --> 0:17:08.120 It's called Mineable. 328 0:17:08.120 --> 0:17:12.920 Yeah, I don't want to make big claims here, because it's hard to prove, but I think I 329 0:17:12.920 --> 0:17:16.700 was the first person to do a health system. 330 0:17:16.700 --> 0:17:21.880 If you look up the world browser for deathmatch template, there is an ancient world. 331 0:17:21.880 --> 0:17:23.960 It was a long, long, long time ago. 332 0:17:23.960 --> 0:17:29.320 In fact, the only person I recognized that was around back then in this chat right now 333 0:17:29.320 --> 0:17:30.320 was business lawyer. 334 0:17:30.320 --> 0:17:33.400 But business lawyer has been here forever. 335 0:17:33.400 --> 0:17:35.440 And that was the first time I saw it. 336 0:17:35.440 --> 0:17:36.440 I had guns. 337 0:17:36.440 --> 0:17:37.960 I had HP points. 338 0:17:37.960 --> 0:17:38.960 I had respawning. 339 0:17:38.960 --> 0:17:40.560 I had it all down. 340 0:17:40.560 --> 0:17:44.660 The reason behind that sort of rush was that I don't think anyone understood dynamic impulses 341 0:17:44.660 --> 0:17:45.840 back then. 342 0:17:45.840 --> 0:17:51.320 But Fruch kept going around in various worlds, and they were, like, showing off dynamic impulses, 343 0:17:51.320 --> 0:17:54.080 and people were like, oh, those are cool. 344 0:17:54.080 --> 0:17:58.360 And then he started seeing stuff being created using dynamic impulses, and he's like, yay, 345 0:17:58.360 --> 0:17:59.360 the knowledge is spreading. 346 0:17:59.360 --> 0:18:01.700 I don't know if he just added dynamic impulses. 347 0:18:01.700 --> 0:18:02.700 It might have been that. 348 0:18:02.700 --> 0:18:04.000 I don't know if you can look at the update notes. 349 0:18:04.000 --> 0:18:05.400 But yeah, look at deathmatch template. 350 0:18:05.400 --> 0:18:06.400 It is ancient. 351 0:18:06.400 --> 0:18:11.120 I was going to do a tutorial on how that worked, but of course then it changed because of dynamic 352 0:18:11.120 --> 0:18:12.120 variables. 353 0:18:12.120 --> 0:18:13.120 Yeah. 354 0:18:13.120 --> 0:18:14.120 Deathmatch template. 355 0:18:14.120 --> 0:18:15.120 12th of April, 2019. 356 0:18:15.120 --> 0:18:16.520 Long, long, long time ago. 357 0:18:16.520 --> 0:18:21.120 So Kip says if a mesh has the same vertex groups, can you swap it out by changing the 358 0:18:21.120 --> 0:18:22.120 reference? 359 0:18:22.120 --> 0:18:23.120 Yes. 360 0:18:23.120 --> 0:18:24.120 Yes, I think so. 361 0:18:24.120 --> 0:18:25.120 Try it. 362 0:18:25.120 --> 0:18:26.120 Here's the best bet as well. 363 0:18:26.120 --> 0:18:30.120 If you save the avatar and you have edits that you want to apply anyway and you're worried 364 0:18:30.120 --> 0:18:33.240 about reimporting the avatar, it's worth it to try. 365 0:18:33.240 --> 0:18:36.520 Just go in a world, slap down the saved avatar, update that mesh. 366 0:18:36.520 --> 0:18:41.320 If it turns into a cosmic horror being, then you're out of luck. 367 0:18:41.320 --> 0:18:42.720 Sometimes it will just work. 368 0:18:42.720 --> 0:18:45.000 There is also the rig transfer tool tip. 369 0:18:45.000 --> 0:18:47.080 I have no idea how that's meant to work. 370 0:18:47.080 --> 0:18:49.300 I've been meaning to ask for years. 371 0:18:49.300 --> 0:18:55.160 Because the avatar rig transfer tool tip either does cosmic horror or works flawlessly, and 372 0:18:55.160 --> 0:18:58.320 I don't understand why or when. 373 0:18:58.320 --> 0:19:01.880 Specs says, yes, I think the key to having either of those work is has the vertex sort 374 0:19:01.880 --> 0:19:02.880 of changed. 375 0:19:02.880 --> 0:19:03.880 Or something like that. 376 0:19:03.880 --> 0:19:05.800 It's like, has the vertex order changed? 377 0:19:05.800 --> 0:19:07.200 Has the number of bones changed? 378 0:19:07.200 --> 0:19:08.840 Has the number of shape keys changed? 379 0:19:08.840 --> 0:19:13.560 A fun story here which leads to a bunch of crazy cosmic horror is if you rig transfer 380 0:19:13.560 --> 0:19:16.840 tool tip to stuff you know isn't going to be incompatible, sometimes it can lead to 381 0:19:16.840 --> 0:19:18.080 cool results. 382 0:19:18.080 --> 0:19:24.560 I have a version of my regular tutorial avatar which I accidentally rig transferred with 383 0:19:24.560 --> 0:19:26.760 a Dutch angel dragon. 384 0:19:26.760 --> 0:19:32.360 And it turned me into this very spindly creature that has a Dutch angel dragon head that's 385 0:19:32.360 --> 0:19:36.640 all shriveled and a tiny wing on one side. 386 0:19:36.640 --> 0:19:40.120 It looks really cosmic horror-y, but kind of artistic as well. 387 0:19:40.120 --> 0:19:42.120 So try that out. 388 0:19:42.120 --> 0:19:48.520 Maybe take a Hobkin and rig transfer it onto a Rex and see what monstrosity you create. 389 0:19:48.520 --> 0:19:51.480 Kip says, do you have a tutorial on camera objects and outputting it to a texture real 390 0:19:51.480 --> 0:19:52.480 time? 391 0:19:52.480 --> 0:19:53.480 Possibly. 392 0:19:53.480 --> 0:19:56.680 Give me a second. 393 0:19:56.680 --> 0:19:57.680 Not directly. 394 0:19:57.680 --> 0:20:02.960 The following video on a showcase of building a key to him might help. 395 0:20:02.960 --> 0:20:05.720 Because that uses a camera texture. 396 0:20:05.720 --> 0:20:11.400 The builder key to is a very simple in terms of textured model. 397 0:20:11.400 --> 0:20:15.920 By his name, he periodically jumps in and says hi. 398 0:20:15.920 --> 0:20:23.280 And the text sheet basically has squares of color for each part of the key to. 399 0:20:23.280 --> 0:20:24.280 Except for the body. 400 0:20:24.280 --> 0:20:26.200 The body is more complicated so you can do patterns and stuff like that. 401 0:20:26.200 --> 0:20:29.720 But things like the collar, the tie, the eyes, the nose, et cetera, those are all sort of 402 0:20:29.720 --> 0:20:31.520 just single squares. 403 0:20:31.520 --> 0:20:38.240 And so you can change the color of those by just what I do is I put a quad over that area 404 0:20:38.240 --> 0:20:39.740 on the texture sheet. 405 0:20:39.740 --> 0:20:44.920 And then I have a camera in front of that, which I then hook up to the actual texture 406 0:20:44.920 --> 0:20:45.920 of the Akita. 407 0:20:45.920 --> 0:20:47.820 And that way you can see the changes live. 408 0:20:47.820 --> 0:20:52.920 And then when you hit bake, I bake that camera view into an actual texture. 409 0:20:52.920 --> 0:20:57.120 And I set that texture to be the texture of the avatar. 410 0:20:57.120 --> 0:20:58.800 Similar way to how neoto shop works. 411 0:20:58.800 --> 0:21:02.520 It's inspired by how neoto shop works. 412 0:21:02.520 --> 0:21:05.800 And leads to a lot of cool stuff going on there. 413 0:21:05.800 --> 0:21:08.880 You can kind of see how composition works in this random screenshot. 414 0:21:08.880 --> 0:21:12.840 I'm going to pull out of the middle of nowhere. 415 0:21:12.840 --> 0:21:19.620 Here where we have this is a science application I was doing the other day. 416 0:21:19.620 --> 0:21:25.660 In this picture, you can see that we've got two cameras being composited by having a third 417 0:21:25.660 --> 0:21:27.080 camera in front of them. 418 0:21:27.080 --> 0:21:30.480 So two cameras output their two views to a quad. 419 0:21:30.480 --> 0:21:35.040 And then in front of that is another camera which composites them together with some UIX, 420 0:21:35.040 --> 0:21:36.600 which is graphing data. 421 0:21:36.600 --> 0:21:40.520 And then you could make that a texture for an avatar if you wanted to. 422 0:21:40.520 --> 0:21:44.880 For another example of seeing that in place, at the top of my head, my MMC 2022 entry does 423 0:21:44.880 --> 0:21:46.800 have that in there for the whirlpools. 424 0:21:46.800 --> 0:21:49.640 I don't remember where they are, how to get to them. 425 0:21:49.640 --> 0:21:53.520 That world was created quite rapidly as I gave myself a weekend to do it. 426 0:21:53.520 --> 0:21:55.040 So take a look. 427 0:21:55.040 --> 0:21:57.120 With that, I believe we're out of questions and out of time. 428 0:21:57.120 --> 0:21:59.080 So I'm going to go ahead and leave things off here. 429 0:21:59.080 --> 0:22:00.360 And I will see you again next week. 430 0:22:00.360 --> 0:22:04.320 If you have any questions in the meantime, please feel free to direct message me, post 431 0:22:04.320 --> 0:22:09.080 on the Discord, make bug reports, et cetera. 432 0:22:09.080 --> 0:22:11.500 And I'll get back to you as soon as I can. 433 0:22:11.500 --> 0:22:14.800 Watch that mineable ore video if you're interested in making a mining system and keep your requests 434 0:22:14.800 --> 0:22:16.200 coming in for what you'd like to see next. 435 0:22:16.200 --> 0:22:17.200 I saw health system. 436 0:22:17.200 --> 0:22:18.840 I'll add that to my list to do. 437 0:22:18.840 --> 0:22:19.840 Oh, your previous question. 438 0:22:19.840 --> 0:22:21.400 If I missed the question, I'm going to go back to it. 439 0:22:21.400 --> 0:22:22.400 I'm sorry, Lex. 440 0:22:22.400 --> 0:22:23.400 I'm sorry. 441 0:22:23.400 --> 0:22:24.400 That wasn't a question. 442 0:22:24.400 --> 0:22:26.960 Do you mean the anim.j one? 443 0:22:26.960 --> 0:22:27.960 I haven't looked yet. 444 0:22:27.960 --> 0:22:28.960 I promise you. 445 0:22:28.960 --> 0:22:29.960 I haven't looked yet. 446 0:22:29.960 --> 0:22:30.960 I do mean to look. 447 0:22:30.960 --> 0:22:31.960 It's just I haven't looked yet. 448 0:22:31.960 --> 0:22:33.360 My list is quite big. 449 0:22:33.360 --> 0:22:35.680 I will communicate when I take a look. 450 0:22:35.680 --> 0:22:36.680 All right. 451 0:22:36.680 --> 0:22:37.680 Speak to you later. 452 0:22:37.680 --> 0:22:52.860 All right.