Well, I guess I'm gonna start it. So Welcome everybody. Thanks for being here today. So I'm gonna talk about How I use blender in a video game creation. So my name is Mattias for Marty. I'm an indie game dev I'm a French guy. So I hope that My accent won't bother you and that you will understand Everything I say if that's not the case don't hesitate to stop me and ask me to repeat or So First of all like a lot of people I'm gonna talk a little bit about myself Introduce myself because I guess that almost nobody here knows about me, which is quite okay. So I'm a passionate French guy who creates a video game a 3d cartoon video game So you have a few pictures behind just to show you the kind of stuff I do My background is computer science. I come from computer science. I studied software development and all that stuff and I learned 3d and painting and creation well artistic creation I would say on my own So I like to paint Play music and of course create video games. So Today I'm gonna talk about how I use blender the indie game dev style. I would say If that means something so Lot of people here already know blender, you know that it's a reference 3d tool in open source There are plenty of applications animated movies CG CGI post-production lots of stuff and of course video game too so I Guess a lot of people here already use blender so I hope that you will pick a few tips and tricks and maybe some Efficiency tips to well boost your your workflow if you are creating 3d assets, I hope so and maybe if there are some newbies here. I hope to show some kind of simple overview of Blender I just thought Chronometer Okay, just a little talk about the outline I will try to show you little tips and tricks that I use almost every day in four different Areas so first modeling texturing Animation and a bit of level design too, which might be called something else if you're not in video game For example, I said dressing or decor creation landscape, whatever I hope you might find something useful even if you're not in video games I will try to make quite some demos in blender. Hopefully everything will go well So let's start With modeling so you might know it but in video games we use Low poly meshes because what we aim at is real-time rendering with 3d engine Just by the way, I didn't say it but I don't use the blender game engine I use some other game engine that I can't talk about if you want after the presentation But I will focus on the asset creation part only so using modeling texturing animation tool but not the blender game engine so To create my 3d models. I have a very low poly approach And I use some kind of very basic tools But I hope I will show you here a few Minor tweaks that you can use to boost your your creation So first of all I use of course the loop cut. I guess almost everybody here knows the loop cuts, but there is some slight Option which is pretty handy which is named the UV correction By the way, you can also use it with the simple slide tool. So I will show you this So here I have a simple basic blender scene and for example, I will simply create create a cube that I will Texture so here I use oops. Sorry. What did I just do? Okay, it starts crashing Strange stuff happens Okay So does everybody sees well is this okay? Oh Actually, we tried a few minutes ago and we didn't find how to do this So if somebody knows how to turn off the lights, you're welcome. Oh Yeah, sure Well, except that I will use one of those panels.   So once you have textured a model Sometimes it's kind of a pain to remodel it because you will mess up all the UV mapping So a nice option here, for example, if I want to add a loop cut here, you see that the default behavior is That it will stretch the texture if I move the new look at I've just created So this sometimes is cool to create Deformation if you want to have a very cartoonish stuff, which is usually what I do But sometimes you don't want that sometimes you want I will just delete this one and create another one and you can just check here the simple correct UV map and Then when you slide it will automatically Recompute the good UV map, which is pretty handy when you are modifying Model, which is already textured. Of course, this is limited to the Will say clean topology when you can use where loop cuts you can't always use this But actually it works also with the knife tool. The knife tool already keeps good UV mapping. So this This might be handy handy tools not to destroy the UV map you've already done So this was the first trick I Talked about the slide, which is the double G Shortcut, maybe you already know about it But there is the same option with the double G when you say double G here You have the oh, sorry for vertices for example, you can slide it with the the correct Okay, nice the user interface don't show up. I guess this is live demo Anyway, you can use it with the double G shortcut too. I also use the trackball rotation. Maybe you already know this Generally, this is to pose Rocks on the landscape or all that stuff you can quickly arrange and create some kind of noisy pattern to just put them Quickly in the in the landscape. So this is really a simple shortcut that I really use often Two other shortcuts that I use quite Quite regularly all the bridge head loops and the grid fill I use it to create architectural stuff. I don't know if lots of you create or use blender to create architectural stuff, but sometimes you want just a simple hole in a wall to put a window or something like that and it can Be a pain to create it. So a simple way I found to do this is let's say you have a wall here And you want just to create a simple square hole to put your window a quick way to do This is to use the simple loop cut then to select the faces that you want to To remove and use the bridge edge loop. So you have to find it in the in the search menu. It's not Easily Easily displayed but as soon as you do this it automatically it automatically connects the opposite faces. So this is Oh, thanks for the light. I don't know Thanks, you have a question W and Sorry. Oh, yeah. Okay. Yeah. Nice. Nice. Oh Yeah, okay Thanks guys I'm pretty sure I learned something today Okay, so this is a way of doing it and the other ways is the the famous short cut he's just told about thank you And also another shortcut I use quite often is sometimes for my game. I create a strange strange shapes for let's say a cave or Level which is Underground or like this and you have strange strange floor shapes like this for example Then you extrude the walls and you have plenty of stuff around and sometimes architecture is a bit Complicated and you you end up with some gap here to fill a quick way to do this is to use the grid fill Which in this case is a bit useless because I could have extrude Extruded the base floor, but sometimes you start from a corridor you already have and there are things happening all around with holes And all that stuff. So if you simply want to fill up A cap on the top of some kind of weird Tubular things the grid fill is kind of handy because it creates some kind of cool topology and after that you can if you want for example create pillars inside the inside the The room for example with us with a simple bridge loop. Of course, you have to refine it and Reshape it add maybe details and all that stuff, but this is really a handy tool when it comes to Quickly block a level design So this is pretty handy I'm gonna I'm gonna Go to the texturing part now and Actually, there are Two sub parts. There is a bit of painting here and a bit of mapping UV mapping. So I will try to present you useful options still So for the texturing part the first The first thing that you have to take care of when you when you Texture paint for example, I will still use my simple cube example Is that when when you start with a default blender scene usually you have a lamp Here and as you can see The lamp creates shadows. This is expected, of course but when you want to texture paint here and When you use the sampler, which is the S shortcut you can see here on the Up all left side that the the color picker changes, okay But you have to know that the color you are you are picking is the color of the texture underneath not of the pigs Not of the displayed pixel exactly for example if I sample in the dark here I have the color of the texture which is something you might expect but visually it's it can be misleading especially if you don't have one light but Plenty many lights if you want a precise color control what you want to do is just Delete the light or put it on another layer or whatever and you want to use The the perfect Texture display and by the way you have to use in if you are in Texture painting mode here so you can okay modify the texture. That's it But you might want to be in texture display and not solid display because solid display also creates some kind of Subtle shading so this might bother you if you are a texture artist Yeah, I guess you can make it show less I Still use this technique because this is a quick and it's all the shortcut, but you can make it show less of course This is the quickest way I found at the moment actually So that's it for the little tips about painting now. We'll talk about subtle behavior of the basic UV mapping tools As I am an indie developer. I always try to find quick ways to do thing To have something which is let's say, okay so For always always in the blocking part of the the creation So here I will just show you the cube projection everything everyone knows it I guess it perfectly matches the texture on the faces of the cube one Curious thing is that if you move the cube in the world and you read you a cube projection You have some kind of offset in the texture, which is usually not what you want If you want to texture an object, which is not at the origin with the cube mapping a simple trick is to use the cursor the 3d cursor to just Save the the world pose of your object then you move the object back to back to the center You make a cube projection and you put the object back to the To the cursor so this is a good way to do it and you have to know that the cube mapping is dependent on the world coordinates of the vertices of the object Another interesting thing is that The scale also affects the mapping I Maybe you you you you didn't see it I just scale the object in object mode if I do a cube mapping here the mapping is okay But if I apply the scale to the mesh and then I'll do a cube projection There is some kind of tiling happening because the scale is bigger So you have to know when you use those basic tools that The scale of the object and the position at the world position of the vertices are Affecting the UV mapping Yeah, of course you can compensate this with scale. Oh Funny thing. Hey, hey This is unexpected at least to me So well you you have to know this kind of stuff when you want to quickly prototype I Will also show you the cylinder projection. I guess You already know about this. Sorry. This is here. Just creating some cylinder and This UV mapping is dependent on the camera view at least with the Oh, sorry, I made a cube projection. Yeah cylinder projection with the default setting. It's dependent on the view So if you want a perfect Default mapping you might want to get an orthographic projection with a side view So there the mapping is perfect and if you are if you have if you have a different point of view Perspective one when you do the silent the projection you get something weird which might Be interesting depending on what you want, but most of the case you don't want this You can check the options here if you want to align align to the object Which is some kind of quick quick fix Another way interesting of another interesting way of doing mapping on strange object for example for organic objects, not simple cube and cylinder Is to use the follow active quarter will show you this when you have a Mesh like this and you have something quite weird like let's say this stuff happening. Well, this is awful Okay, I'm gonna make it better a little bit Okay, let's say you have some kind of tree branch Going on here a quick way to True to texture it is to use the follow active quads Which if you have already a section textured it will propagate the The texture mapping to the whole object like just like this and if the base section is well texture with a Good seamless mapping the seamless property will be propagated all through the All through the tube form which is kind of handy too Of course It needs There needs to be a good topology behind it, you know if you start to add vertices here and there There will not be quads everywhere and the follow active quads won't perform very well So you have to think about topology each time you want to To map something let's say the the quickest way Is this okay not too quick not too slow Okay, the the extrusion It's just you said you select the face here and you just control left click and it will automatically Connect. It's a it's a quick extra actually Okay, so last thing about UV mapping. I will show you a real level I'm working on which is yeah, it's called present, but actually actually it's more kind of an Messy building You see and So this is a level I'm working on it's not finished yet. So really it's blocking Phase still so the idea is here. I have a mesh with two textures and I quickly want to scale them The stone texture that I have here. So when you have multiple textures an easy way to select the same faces to use the shift G Shortcut and just select the same images the faces with the same image and then you can use the Famous cube mapping which will wrap Unwrap sorry the object quick and dirty so Here you can see that I have kind of a problem the the texture is obviously repeating So this is not that good What I want to do is to have some kind of bigger texture. I want to modify the scale of the mapping. So What I would do First is just scale the the map here But as soon as I do this you can see that it creates seams on the on the faces why is that so it's because the building is huge and Only the world coordinates of the vertices are taken into account for for UV mapping so When you are using UV mapping here, you can modify the size here of the projection which kind of which is Handy, but the thing is that if afterwards you want to change the scale The same problem arises. So a way I have found to do this is to make a cube projection with a awfully small scale so that Here when you zoom you can see that I have the global shape of the building and no faces are Separated you see so this way when I scale back up I can pretty much scale what I want There won't be any seams At least on the faces Along the same direction So this is a good way to Let's say earn a few a few seconds of Off-work and as I often modify the texture and strap. Yes, sorry Yes, the smart Yes, it might it might work actually Sorry, sorry. Yes, the smart UV project. Yeah, let's say default stuff Yes Sorry, I didn't get it Yeah, yeah, there might be some kind of problem with this because you don't know where is the up and the down so some Yeah here see I have the texture upside down which might be Confusing well, it might be some kind of other way But I'm pretty sure UV UV automatic UV and wrap can be a pretty useful in other situation for maybe not for architectural building with the the up down textures, but definitely I use it on other stuff Anyway, so your projection So That's it I guess for the texturing parts. Let's go back here Yes, you to some ab just be careful with the object scale and the object placement when you do auto UV mapping If you are careful with this you can save a few minutes of work and when you are iterating every day This can be really a lifesaver so Now let's talk a little bit about animation. So I'm not an animation guru I've seen animation gurus out there. So I'm a pretty ashamed of what I'm going to show now please please be merciful so When you are creating video games very useful very usually you have A file for each character of the game So here I have an eagle and there are many animation on the same character for example for this eagle I have a wing flap I have when when it screams where it when it glides or all that stuff So the first thing you want to do when you work with multiple animation is to create fake users For the animation. So I will show you a simple Animation file. I have which is here. So it's not an eagle. It's a seagull. Well, almost I Just wanted to get that yeah perspective view so The idea yeah when you select here See I have a few animations and they're still there because I have a fake user On it you can activate here so that you tell blender that even if the animation is not currently playing Blender will not delete it when you close the software. So this is the first mistake You can make when you are working on animation. You forget that you close it and you lose days of work So another important stuff when you create any Animation for video game is that you want loopable animation Which pigs are don't care about but when you do video game, this is mandatory actually so The problem is that when you want to create cyclic or loopable animation I will start from from scratch. There are many ways. So for very simple Animation, you can simply copy paste the first keyframe to the the end of the animation So I'll just show you this I will only animate one wing here very quickly very awfully Sorry this way. Okay, just set up a rotation keyframe. Oops. Sorry. I wasn't at the animation starts. So Here I just set up a keyframe the same at the end of the animation and some kind of Wing flap here in the middle of the animation when I do this Actually, the animation is pretty crap, but it's perfectly looping which is what I want sadly this technique is very Useful for very simple items where you have very simple moves, but when you have something more complicated For example when you take into account. Oh, sorry Overlap that is to say. Oh Sorry, my mouse is doing What it wants I will just add a little offset here in the animation well and overlap so I'm just Sliding the The the keyframes so when I do this now if I Just see here. There is some kind of well pretty simple overlap, but you have this sense of of Movement going from the base of the wing to the tip of the wing Which is quite nice at the bottom, but at the top as soon as I play the animation it will break on The loop part you see this is this is a problem. So it happens because the the 3d. Oh, sorry What happens with my mouse? Okay, anyway If I look at the curves here What you can see is that if I only look at the oh, sorry Let's say this one the end of the move at frame 60 is Here, but when it loops back to the first frame We have some kind of jump in the movement. So a quick way to Solve the problem is simply to select all and use some kind of extrapolation and makes a click This will repeat Automatically repeats the animation before and after itself. So here you have some kind of nice looping animation Well, what happens? Oh, sorry. Yeah Welcome. Okay. Let's say I'm doing this How you set up the first frame, okay? Be nice. Thank you Okay, so this is a way of doing it but the problem with this approach is that the Cyclic animation is dependent on the animation length of each bone So if you have a bone whose keyframes are Whose keyframe duration is shorter than the other bones This will be total crap because the loop will happen in in the middle of your animation It's just you have one bone looping on 30 frames and the other looping on 60 frames And you have something quite messy. So another way I found to fix the problem is first disable the cyclic animation and then So this is pretty crappy, but it works actually It's just simply manually duplicate and move the animation this way It's a bit annoying because sorry because you have to do it each time you want to make the animation loopable So you work on the animation then you wanted to pay bill so you have to copy I guess you can create a script to do this But what I have seen is that this technique always works Meanwhile the cyclic extrapolation sometimes fails So this is a workaround it can be handy. So take it So that's I guess that's enough for the animal. No, I have something else Yeah, a simple trick I found is that when you use animation for 3d real-time rendering the Scaling on bones doesn't works exactly the same way that in blender. So you might have surprises when you Animate for example a character who is breathing. I will show you this Where is it? Here on your design, that's it. So okay Anyway, so here I have a simple character that you can see here and I have a bone which controls the chest and To simulate the breathing I only apply a simple scale on the Y and X axis to make the character breathe which is Kind of simple, but does the trick The thing is that I could have used the spine bone But as soon as I scale the spine bone here I have a problem because here in blender it could be okay except that the the shoulder rises but When I import this in my 3d game engine the scale is automatically Propagated to all the children bones, which is something you usually don't want So a workaround is to use what I call leaf child bone. This is a Bone whose parent is the spine bone, but this scalable bone doesn't have any children So the scale is not propagated to the arms and the neck and the head and that way the character The scaling of the chest works properly in the game engine So I don't show you this now because I don't have time, but this is a trick I found really useful That's it about the animation part. I think I'm gonna go on with the level design And I will show you a few tricks here and there and how I use them to quickly create stuff for levels so first of all, I tend to use a lot snapping and Proportional editing so I'll show you a quick example with How I put grass on the ground Very quickly so here I'm gonna take the where is it level design. I'm on it. So here I have do this I Have this simple grass theft here and I want to duplicate it and Put it everywhere on the ground So the simplest way to do this is to activate the the snapping of course, but you want to select the good Parameters so one that I found is Pretty handy is to snap to the face and to put the active point of the object on the on the ground So for example, I duplicate and it automatically snaps the grass theft on the ground But it snaps the active point of the object and the thing is that the Terrain has some slopes and you don't want the the Grass theft to be midway in the air. So if you if we look below the terrain I have set up the active point of the object to be a little bit above the base of the grass that way When I move the object, I have all the grass blades Going down to the terrain even if we are in a slope, which is pretty handy to use with the active pivot point So You can activate this This option which will snap multiple elements at the same time So once you have a few grass theft, you can quickly create a few others and And you can move them around like this So you have to be careful because you snap on the element that is below the object So if you snap from the side view here, you can quickly make mistake and snap the grass theft on all the grass theft So you have to be careful on the angle that you use from your camera You mainly want to use a top-down angle, which is more handy Now we have those grass thefts. They are all the same. So it's not very Visually interesting. So what I usually do is that I use The proportional editing to add some kind of Variety, so here you can simply oh, sorry You can you have to use the individual origin, but you can simply add some scale around here I have a huge fellow for radius here Yeah, so you can simply and quickly add some rotation to some of the items at some scale And you create very easy Some variations on the grass theft So that's it for the oh, what do I have? Oh, I have other layers. Yeah, that's a previous demo. Sorry Now I will finish with a real level design that I have where is it here? So this is some kind of simple cartoonish village and sometimes when you have a full level design like this You want to correct a little bit? Let's say this window here that I have and I want to focus on it and I work to work on it But there is so many stuff around that it's kind of cluttering the way So a good way to work only on the the object you want when you have a huge level design is To use the local view. I guess Some of you already know this trick Where is the local view? Here and you only have the building you are working on so this is not a very Complicated trick, but it's really useful when you have cluttered scenes Another trick I use very often is the repeat last action which is Chift air as a shortcut and With this stuff you can easily duplicate. Let's say. I'm sorry. Let's say a duplicates Peeler pull some kind of Design elements here and you can sorry Repeated multiple times. This is very handy when you have to create Street lamps around the street or whatever it can be useful with many many options Including merge invertises on the mesh when you are cleaning all that stuff. This is really handy The last thing I use is Sorry Shift or repeat last action Yeah, and the last thing I use is empty objects I use lots of these and this is I guess quite specific to my level design approach the idea here is that There is some kind of line between Between the buildings and the trees and whatever and there are those empty objects Actually, if I select this one, you might see that it has a specific name. It's called paper lantern and Why I do this is that I want to this point To hold a paper lantern, but the thing is I don't want to have it repeated 200 times on the level I want to save Disc space and time loading so I only put a frame which is some kind of reference position And then when I load the level in my game engine I dynamically change the frame with a specific name with the complex game object I have because it's not only a model of a paper lantern. It's also has Some kind of behavior. It moves with the wind. There are some fireflies around It lights up or it lights on or off depending on the weather all that stuff. So The thing is that when I load the level into my game it dynamically replaces all that Complex object, I would say it's more objects And it keeps the blender file quite easy to read and to to load So I guess I Have finished world with all that little tips and tricks. I hope that you picked something that you didn't know Thank you very much for your attention And if you have any questions don't hesitate to contact me by email if you're curious about what I do my game Let's try you can go on my website. There is a free demo. You can check it out. Tell me what you think about it You can check out the blog. I have many articles and posts. So Thanks a lot everybody. I don't know if there is time for questions. Maybe No Okay, great. Well, don't hesitate to come and talk with me for I use unity. It's not a surprise. Yes It's the easiest approach


The Chancellor's Declaration of Free Speech here has prompted questions about hate speech. Cal TV sat down with Dean of the Law School Erwin Chemerinsky for his take. Hate speech is protected speech under the First Amendment.  Chemerinsky said that the Supreme Court has made it clear that even hateful expression is protected under the Constitution. So when the Nazis wanted to march in Skokie in the late 1970s and early 1980s and the town tried to stop them, every court, including the Supreme Court, said the Nazis had a right to express their hateful message. When Richard Spencer, the white supremacist, wanted to speak on the Auburn campus and the university tried to stop him, he sued and got an injunction protecting his ability to speak. For the Dean, there is no exception in the First Amendment for hate speech. We can certainly have a discussion about whether hate speech should be protected by the First Amendment, but under current law it's clear that hate speech is protected speech. Chemerinsky also made it clear that free speech is not absolute.    It's speech that tries to vilify a group based on race, sex, religion, sexual orientation. But none of those definitions is very precise. When it comes to how UC Berkeley has handled controversial speakers, he says so far UC Berkeley has done a superb job in protecting free speech while upholding safety for the community. Ben Shapiro, Milo Yiannopoulos came onto campus. There was no violence, no incidents. They got to speak and everyone's safety was protected. At the same time I know that students across campus have organized counter demonstrations. If free speech could happen, there would be many counter events. I think that's the appropriate response to the speech we don't like. Reporting for CalTV, I'm Anna Luck.