Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


首页 > >

18. 一月 2013

 

Introduction

Welcome to our first Programmer Art tutorial series.  The ultimate goal in these tutorials is to instil  a programmer with the capacity to create their own art assets, in this case using Blender.  One thing I want to make clear right off the hop, this won't teach you how to create *GOOD* art, that part takes many years of practice.  What it will do however, is cover all of the bits you need to know to create "programmer art" for your game.  Who knows, in the end way may even make an artist of you!

 

Over the series we will hopefully be covering general Blender navigation, modelling, texturing, animating and possibly rendering.  Each of these topics could actually fill a book, so the focus here is purely functional in scope.  I would say think of this as the Coles notes version of Blender, but apparently outside of Canada, that expression means nothing…  So instead, think of this as Blender for Dummies, where I am in fact assuming you Dummies are actually rather clever! :)  This post is going to be an overview of Blender itself, the interface can be a bit daunting at first. If you are already somewhat comfortable with Blender, you may want to skip ahead.

 

Meet Blender

Blender for those of you that may not have encountered it before, is a free and open-source 3D modelling application available for Mac OS, Windows and Linux ( and more… ).  It is a remarkably capable package containing tools for modelling, animating, paint, texturing, rendering and even editing video.  Heck, Blender even includes a full featured Python powered game engine!

Blender has a bit of a reputation for being… difficult.  In many ways, especially since more recent UI overhauls, this is mostly an unfair reputation.  On the other hand, Blender is certainly different.  If you have some experience with other 3D applications, you will find Blender a bit daunting at first.  Don't worry, once it clicks it gets a lot better.  One of the big issues with Blender is a lot of the documentation out there is for Blender 2.4 and earlier and those versions were massively different.

Obviously before we begin, we need to get a copy of Blender.  Simply head over to the download page and download the most recent version for your platform of choice.  In this tutorial, I will be using 2.65a, simply because it is the most recent version.  Blender updates on generally a 6 week schedule, so if your version is slightly newer, it shouldn't be a huge difference.

So, if you haven't already, download and install Blender.  Once it's installed, load it.  

 

Welcome to the UI

So, now that you have fired up Blender, you should see:

Blender Start Screen

 

Clicking once will remove the splash screen.  This leaves you with the default starting scene below, minus the pretty blue annotations that is.

Scene Details

 

Lot's of stuff in there, each item labeled above.

The point light and camera are simply graphical icons for non-visible scene attributes, the Camera is used to render the scene from and a Point light, which you can think of similar to a light bulb in the real world.  The transform widget is a very handy little guy that we will cover shortly.

The Cube is simply a 3D model so your scene doesn't start outempty.  The cursor can be thought of as a pivot point that transform are performed relative to, we will see it in detail later.  Behind it all is a grid.  This is simply for reference and can be turned off if you want.  The thing to keep in mind, the grid isn't actually part of your scene, its just there to assist you, like the rulers in Photoshop.

There are two very important things to be aware of right now:

1- The camera you see on screen, isn't the same as the camera ( or perspective ) you use to view your scene.  The camera ( seen above ), is used for rendering your 3D scene into an image or movie.  If you are simply modelling or are ultimately exporting to a game engine like Unreal or Unity, you don't need the camera at all.  You manipulate your view of the world through a different means, that we will cover very soon.  Simply put, if you aren't rendering to an image or movie, you don't really need a camera, although they can be useful for visualizing your results.

2- This is just the starting scene.  At any time you can delete everything here.  Go ahead if you went.  Click in the scene and press the 'A' key, which is the same as Select/DeSelect All.  Then hit X to delete the selected items.  You will see a prompt box like so:

Delete Prompt Blender

 

 

 

Either press X again, or click Delete, and voila:

Empty Blender Scene

 

A completely empty scene, minus of course the cursor/pivot and the grid.

 

If you prefer Blender start with an empty scene every time you start up, you can now save your changes.  Select File->Save User Settings ( or CTRL + U ).

Blender Save User Settings

 

Keep in mind, Save User Settings will save all changes you have made to Blender as your defaults, such as key binding changes, window location, visibility and size.  To go back to the original default if you mess something up, simply select Load Factory settings.

 

If you want to customize the Blender interface, take a look at this video I put together earlier.  Just remember, if you mess things up, you can always start fresh by choosing Load Factory Settings.  The following video is completely optional, as the process can be a little confusing.  That said, the UI is amazingly flexible, as you will see.  The video is available in 1080p if the text is hard to read.

 

 

A look around the interface

Blender is an amazingly customizable interface, you can turn it into just about whatever you want, but it is also very easy to screw things up.  Any window can be split appear, changed, merged together, etc.   The following video I made earlier shows how you can customize the interface to your liking.  For now, I wouldn't bother too much, it can be a rather confusing process and this tutorial will assume you are using the default settings.

Blender Screen Aspects

 

Screen Layout Selection

The Screen Layout selection can be used to select between various different layouts.  The one displayed above is 'Default'.  As you are working on different aspects, you will switch between different modes, for example, the Animation layout is optimized towards animation tasks, UV Editing is for texturing tasks, etc.  

 

Tools and Properties Panel

As mentioned in the diagram, you can toggle the left and right panel ( Tools and Properties ) by hitting the T or N key.  The Tools panel will be used quite commonly, when you use a tool ( like a bevel for example ), if it requires input or has options, they will appear on the tools menu.  The Screen Properties menu is used much less commonly, mostly to configure screen viewport settings, like texturing modes, size and scale settings, etc.  You can also use it to fine tune the position of objects numerically.

 

Animation Timeline

This timeline is used during the animation process, we will cover it in detail later.  You can dragon the window above it down or close it completely for now if you want.  Refer to the earlier video for details on how to resize, split and merge windows.

 

Properties Windows

Yeah, it's kinda confusing having two windows named properties, I know…  This guy is important and you will be using it a lot.  This is where textures are handled, special effects, modifiers, render settings and more are created, accessed and applied.  We will deal with it various times in later tutorials.

 

Scene Graph

This is your scene in hierarchical form.  You can use it to hide, select and delete various objects within your scene.  Your scene is ultimately a tree of nodes, which in turn contain other nodes.   In a complex scene, this will be a godsend.  For simpler scenes and these tutorials, we will rarely use it.  

 

 

Hotkeys used in this tutorial

KeyAction

KeyAction
A Select/Deselect All
X Delete selected
T Hide/Show Tools panel
N Hide Show properties panel

 

Coming Next

In the next tutorial we will learn how to navigate around the Blender UI.

 

 

On to next part

blog comments powered by Disqus

Month List

Popular Comments

Learning Scala, found a great book
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


10. December 2013

 

So lately I’ve been working on my LibGDX tutorial series and I am certainly a fan of the library.  Java on the other hand, after years of using C#, just seems flawed.  Not that it is a bad language, just that it’s a bit kludgy.  Fortunately there are a number of languages built over top of the Java Virtual Machine, allowing you to make use of most of the Java eco-system, while working in a different language.  Some of the more popular options are Groovy, a scripting language that targets the JVM and Clojure, a functional LISP like language.  I don’t personally want a fully dynamic language ( I like typed languages for large projects ) so Groovy is out, while LISP might as well be Klingon.  I like some functional programming, but my brain just doesn’t work that way… to warped by years of procedural programming.

 

Fortunately there is Scala.

 

I’ve only just started playing with it but I am already impressed.  It’s almost as if someone took all the aspects of Java I dont like and set out to fix them.  Things I like:

  • runs on the Java VM, so can use libraries like LibGDX without issue but still feels familiar
  • type inference.  Feel like a dynamic language while staying dynamically typed.  I miss var from C#!
  • Functional programming lite.  High Order functions.
  • It’s got REPL ( command line programmability ) even if it’s faked.  Great way to learn the language.
  • Everything is an object, one of Java’s biggest warts
  • Pattern matching… it’s like an uber switch statement and looks to be a huge time saver
  • traits and sealed… I think.  Basically a trait is an interface with codability, while sealed allows a class to define which classes can extend it.  It will take some use, but both seem to solve commonly encountered problems, but both may have huge downsides.
  • makes the language much more compact while still feeling like Java.
  • operator overloading.  This was simply a stupid Java mistake.
  • best conditional expression evaluation I have ever seen.  Optional semi colons.

 

I'm still just at the beginner phase, but I have to say I’ve already had a ton of AHAH moments.  There are a few annoyances, at least initially.  For example, I dont like the variable coming after the variable name… there might be a huge win here somewhere, but it feels very unnatural coming from Java. 

 

Anyway, back when I started looking to catch up on Java I looked for a book that taught Java but did so making certain assumptions about the programmers experiences.  For example, I know what a class is, how a loop works, etc…  Sadly I never found such a book.  This time however, for learning Scala, I did.

 

Scala for the Impatient

cover This book is exactly what I was looking for when I was looking for a Java book for experienced programmers.  In the authors own words:

I wrote this book for impatient readers who want to start programming in Scala right away. I assume you know Java, C#, or C++, and I don’t bore you with explaining variables, loops, or classes. I don’t exhaustively list all the features of the language, I don’t lecture you about the superiority of one paradigm over another, and I don’t make you suffer through long and contrived examples. Instead, you will get the information that you need in compact chunks that you can read and review as needed.

From what I have read this is exactly true.  I have no prior Scala experience, but I have never found myself once struggling with any concepts presented in this book.  Nor frankly have I been bored, something I often struggle with for programming books.

I need to make something extremely clear.  If you do not have a solid prior programming foundation in C# or Java ( or possibly C++ ), this is not the book for you!  The book basically covers how Scala deviates from other languages, so if you don't know the fundamentals, you will struggle.  It is also not a language reference.  If you are new to programming or want a language reference, Programming in Scala is probably the book you want.

One other thing I really appreciate about this book is the authors writing style.  It’s an easy read and he has a sense of humour.  Here for example is his tip on operating overloading:

In Java, you cannot overload operators, and the Java designers claimed this is a good thing because it stops you from inventing crazy operators like !@$&* that would make your program impossible to read. Of course, that’s silly; you can make your programs just as hard to read by using crazy method names like qxywz. Scala allows you to define operators, leaving it up to you to use this feature with restraint and good taste.

That paragraph is pretty typical of how the book goes.

So I’m heading off on this Scala adventure in my spare time.  Expect a few related posts here and there as I go.

Programming ,

blog comments powered by Disqus

Month List

Popular Comments