Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
unity creative
$5.99
INTERVIEWS, ARTICLES,
TUTORIALS!
Interview with game artist/developer Thomas Pasieka (3D
ATTACK) and Concept Artist Bjorn Hurri (Lead Artist at Opus
Artz Ltd.) - Learn how to make ropes and a rope bridge using
RopeScript2 - Follow us on the 4th part of Shawns C#
tutorial and more...
[1]
index
Issue Four
5-12
14-20
22-26
27-33
34-37
38-40
41-50
51-53
54-58
[2]
unitycreative
editorial
Tavy
3D Attack
CONTENT
Are you interested in contributing material
for futures issue of Unity Creative?"D o e s
your company have something special to
offer and you want to let the community
know about it? Are you currently
developing a game and want to share a bit
about it? How about sharing what you
know in a tutorial? Contact us with your
ideas at 3dattack@3dattack.us
ADVERTISING
If you are interested in placing an ad in
Unity Creative Magazine, we are happy to
serve. Feel free to contact us a
3dattack@3dattack.us for pricing
information and more.
COPYRIGHT INFORMATION
Unity Creative Magazine and all material
contained therein are copyright protected."
You may not disassemble or distribute
any part of this publication without prior
written consent from 3D Attack directly."
[3]
unitycreative
6HOOLQJDFRPSOHWHJDPHLVQWWKHRQO\ZD\WR
.BLF.POFZXJUI6OJUZ
6HOOJDPHVWDUWHUNLWVFKDUDFWHUVHQYLURQPHQWVDQGPRUH
*DPH6WDUWHU.LWV
6FHQHV
6FULSWV
(QYLURQPHQWV
[4]
DFWLYHGHQQHWFDWHJRU\XQLW\G
:DU3ODQHV
E\PDMGBDEGXO
3UHIDEV
THOMAS PASIEKA
Unity Creative: Hi Thomas, thanks for
taking time to do an interview with us
today, let's dive right in! Please tell us
a little about yourselfwhere were you
born, now live, your family, etc?
[5]
unitycreative
[6]
unitycreative
[7]
unitycreative
[8]
unitycreative
scenes within Unity! Over are the days of trying to get two
uv maps working in C4D (which quite frankly is just
beyond my understanding anymore - how can something
so essential be so complicated in C4D - sorry for the rant).
In any case, I don't have to do that in C4D anymore as I
can now simply create a second uv set for the lightmap
right in Unity! To me, that is a huge time saver and very
much appreciated feature. I would not want to miss this!!
Unity Creative: Ok, I've got to go here, DUNGEON
LEGEND. Please, tell us a bit about this highly anticipated
game you are working on:
Thomas P.: Dungeon Legend is a RPG currently in
production by us "3D ATTACK". I would call this a Triple A
Indie production. It's a rather large undertaking and
requires quit a bit of dedication and a skillful talented
team. I am happy to have a dedicated awesome team of
talents to work with. The game is supposed to hit the iPad
first and later on iphone and other devices as well.
[9]
unitycreative
[10]
unitycreative
Unity Creative:
What are some of
difficulties you have
had to overcome
during the process of
developing this
game?
Thomas P.: Well it's
not an easy task to
maintain a group of
people that are
scattered all over the
world. This requires
some coordination
and people skills.
Trying to keep everybody happy is my responsibility, next
to creating all the environment art and writing core rules/
mechanics. Takes a bit of extra effort on my end as I have
to take screenshots, videos and write etc., so everyone
understands what I/we need.
Then there is also time zone issues. Jon lives in Australia,
Erez in Israel, Andreas in Germany, Glen in the UK, Teck
in Singapore, Bjorn in the UK and I living in the US. We all
try to communicate via Skype and email. This works pretty
good so far.
There are a few communication issues, due to the fact that
you are "chatting over the internet", and that can
sometimes be a bit frustrating, but it usually gets worked
out rather quickly.
Overall I think it's all working very well. Everyone on the
team is a professional and acts professionally. Then there
are the few software related issues due to the fact that not
all software supports the FBX format as they probably
should. Getting a rigged and animated character out of
[11]
unitycreative
Thomas P.: Well I suggest you to start out small. Don't try
to make the next big RPG or FPS right away. Try to be
realistic. Make a bunch of smaller games first, as this will
be more rewarding in the beginning. Finishing a small
game is a very important step in your career and the
feeling you get from a finished product/game is invaluable.
Do one thing at a time. Try to focus and stay focused. You
won't get anything done by trying to juggle too big of a
project or too many things at a time.
Unity Creative: Thanks again Thomas. It was a joy to
get to know you and your work better. We are looking
forward to seeing more of you in the future. I give to you
the last word
Thomas P.: Last words, I'd like to thank all my team
members and the community/gamers for supporting
Dungeon Legend and my wife Tavy who has to deal with a
man who lives in a fantasy world called "Dungeon Legend"
for the last year. Thanks everybody! Go and make more
games!
[12]
unitycreative
[13]
beginning C#
part 4
[14]
unitycreative
Object-Think
There are a couple of approaches that have been
identified as being successful in getting experienced
systems designers to change their thinking from
structured to object-oriented think.
Basic Concepts
A class is much like a data entity type when
modeling data. (A class is the general category
[15]
unitycreative
Defining requirements
o The scenario or use case approach is a
natural way of diving the system into
manageable units. The objective here is
to identify what the system must do and
to complete the required tasks.
Building the model
o Identify the Objects and Classes
o Identify Hierarchies
o Identify Important Attributes
o Identify Object Relationships
o Identify Behaviors - Services and
Messages
When you start off try to first define the main classes,
then further expand and refine as you learn more about
the object structures and their relationships.
Object-Oriented Programming
Object-oriented programming uses classes to
encapsulate behaviors and attributes in order to hide their
implementation details in a concept known as information
hiding. Consider operating a Television set, surely it can
be argued that one can operate a television set without
knowing how a television works.
[16]
unitycreative
[17]
Contructors
When a program creates an instance of a class through
an operation called instantiation, the classs constructor is
called to initialize the classs instance variables
(attributes). A class can contain overloaded constructors
to provide multiple ways to initialize the object. In general
class declaration follow the following form:
[18]
unitycreative
"(none)")
10: {
11: }
12: public Person(string firstName, string lastName)
13: {
14:
msFirstName = firstName;
15:
msLastName = lastName;
16: }
17: }
18:
19: Person person = new Person("Shawn");
//
Shawn (none)
20: Person person1 = new Person("First", "Last"); //
First Last
21: Person person2 = new Person();
// (none)
(none)
This reference
As seen in the previous example the overloaded
constructors used the this reference to access the
constructors in the following form : this(parameters).
Every object can access a reference to itself through the
this reference.
[19]
unitycreative
Next Issue
In the next issue we will cover static, const and readonly
members, as well as indexors in the context of lists of
elements. We will further take a look at array types and
how indexors can be defined on classes to provide array
style access to them.
[20]
unitycreative
[21]
THE IMPORTANCE OF
SCALE
I am pretty sure that almost all of you have dealt
with "scale" issues during your game projects.
Often you have to re-scale an imported object
because it is sized twice as big as the other
objects in your scene. The problem becomes
even bigger when you start working with a team
of artists. If all of your artists scale their objects
as they see fit, you are in for some trouble or
constant adjusting of delivered assets. That's
not really practical or fun. Best thing to do in
advance is to tell all your guys on the team to
use proper sizing/scale.
All these game engines out there
have, almost certainly, a different
way of handling scale. Valve's
Source Engine, for example, has
some important info about the matter
and how to set up your models.
According to Valve you have to set up
your map/levels to their specifications (if
you want to avoid problems you'll stick to
that). Have a look at the following table
taken from Valves website:
Map Grid
1
2
4
8
16
32
64
128
(160
256
512
Imperial
=
=
=
=
=
=
=
=
=
=
=
0.75"
1.5"
3"
6"
1'
2'
4'
8'
10'
16'
32'
Metric
=
=
=
=
=
=
=
=
=
=
=
0.01905
0.04
0.08
0.15
0.3
0.6
1.2
2.4
3.0)
4.9
9.8
[22]
unitycreative
Player Eyelevel
28 = 1' 9"
64 = 4' 0"
height crouching
height standing
Architecture
128 = 8'
64 = 4'
108 = 6'
48 = 3'
normal
normal
normal
normal
0"
0"
9"
6"
corridor height
corridor width
door height
door width
Did you have a good look at the that table? Good, now
forget about it. Get it out of your head, as handling Units
in Unity is much easier. Lets have a look at something
simple, yet very important in Unity, The Grid.
Unitys Scale:
1 Unity Unit = " 1 Meter or
#
#
3.2808 Ft. or
"
"
1.0936 yard
If you move the cube just by 0.5 Units in the X,Y and Z
axis, you will notice that the cube perfectly fits onto the
grid between the grid lines. That tells us that Unitys Grid
is actually 1 Unit wide.
Important: 1 Unity Unit equals 1 Meter
So now that we know that that Cube is 1 Unit, or 1 Meter,
we have something to work with! Not only is that info vital
for your 3D Package, but also important if you deal with
Physics in your game. Personally, I believe that Unitys
Unit system makes the most sense. No need to convert
from that to anything else but the very easy to use metric
system. In any case, if you are not familiar with the Metric
system have a look at the following little summary:
[23]
unitycreative
Now that we know all the above, we should figure out how
to reproduce the Grid and size of the Cube in our 3D
Application, so we can export models out of our 3D App of
choice, and match that very cube we created in Unity.
Once youve set this up properly you need to tell your
team mates to do the very same so you are all on the
same page. This will make sure that everybody uses the
same scale in their documents and therefore the whole
process/pipeline will be much smoother.
3
4
[24]
unitycreative
[25]
unitycreative
[26]
unitycreative
Interview With
Concept Artist
Bjorn Hurri
Unity Creative: Hello Bjorn. It's great to have the
opportunity to interview you. The reason I was wanting to
interview you is because you have been working in the
game industry as a concept artist. Can you tell us a bit
about yourself?
Bjorn Hurri: Hi Thomas, Well I am currently the lead artist
at Opus Artz ltd, an outsourcing company for the
entertainment industry, in London. I have been in the
industry for a few years now. I started it all with some Indie
development back in 2000, some projects with their own
engine, some as mods for an already existing one.
I think at that point I really got a taste of it and ever since I
have been pursuing a career in it aggressively.
Unity Creative: What did you do before you started
painting? How did you get into concept art?
[27]
unitycreative
[28]
unitycreative
[29]
unitycreative
Unity Creative: So you're pretty much full of passion when 3. ...then draw some more!
it comes to painting. Your specialty seems to be Creatures/
Monsters. Not much into environment concept?
Unity Creative: That is surely some good advice there. Do
you think becoming a concept artist is a good career choice
Bjorn Hurri: I do quite a lot of environments professionally. these days? It seems as the game industry is using concept
My passion lies in characters and monsters though. They art more and more in public as well.
are so much fun to draw. Every boys fantasy to do it as a
living.
Bjorn Hurri: Oh I don't know. It is a very competitive market
and a lot of fish in the sea. Personally I was never worried
Unity Creative: What kind of advice can you give aspiring because I had the firm believe that my work would ideally
concept artist?
speak for it self and work would come on its own. It is a
good career choice if you make it. Definitely money to be
Bjorn Hurri: That is a bit of a tricky question as a lot of made if you are into that. In a perfect work we could all do it
people want different things. I have a few good pointers for the love of creating instead of the pay slip.
though.
Unity Creative: Unfortunately we all have bills to pay.
1. Make sure to work on your networking skills, make some Different question... do you have personal game projects
friends in the industry or fellow artists. You'd be surprised you are working on?
how much that pays off in the long run.
Bjorn Hurri: Yes, I am creating a pixelated cat burglar
2. Make the decision to go all out. If you want it you have to game with a friend of mine. We are still working on the
bleed for it. Draw draw draw.
"skeleton" but we will soon be ready to show some
[30]
unitycreative
interesting stuff from it. I did post some sprite test a year
ago or so and a lot of blogs showed some interest in it.
Hopefully it will end up in a finished product that we can
share with game/art enthusiasts.
Unity Creative: Sounds great! What game engine are you
using for your project?
Bjorn Hurri: We are making our own engine, but we are
still open for the possibility to port it to other engines
depending on the need.
Unity Creative: Is the Unity engine a possible candidate?
Bjorn Hurri: Yes, it is. We have actually done some
extensive research about it and it is one of our top
candidates to port to. We started the project using Unity, but
we quickly realized we wanted to build the base functions of
the game in isolation. A home brew engine was ideal as we
could quickly make tailor-made prototypes as a proof of
design before we go full steam ahead.
Unity Creative: That's great to hear. The Unity engine is
surely more than capable. Next question. Do you teach
individuals or do you have training videos of any kind?
Bjorn Hurri: I have had a few people studying under me in
the past. It is nothing that I have as a routine though as it is
quite time demanding for both parts. Currently as a Lead
artist at Opus Artz, one of my responsibilities are to coach
my team to higher heights.
[31]
unitycreative
On the topic of videos, no unfortunately I have not any Unity Creative: Thank you very much as well Bjorn. It was
training videos up. I have plans to make a dvd at some a pleasure to talk to you as usual. Best of luck for your
point but at the moment there isn't enough hours in a day.
future!
Unity Creative: Yeah I can understand that... time is Bjorn Hurri: Cheers
something very precious. Speaking of which, I don't want to
take any more of your time as I am sure you have to attend Please visit Opus Artz if you are in need of concept art:
to family matter with your newborn baby and all.
http://opusartz.com/
Bjorn Hurri: Thank you very much for the interview, very
good questions! Best of luck!
[32]
unitycreative
[33]
unitycreative
import. Go ahead and make sure all of the files are select
and press Import.
[34]
unitycreative
Now that you have your links oriented right, they might look
a little too big. To make the links fit better and to make the
chain look a bit more realistic, lower the Link Scale value
down to 0.75. You may also notice that your chain is flat! As
we all know, a chain has alternating segments. In order to
duplicate this we make sure the Alternate Links check-
[35]
unitycreative
When you make a new rope, the default collider will be set
to Capsule. This collider works great for round ropes but
with our bridge using chain instead of ropes, it will result in
unrealistic collisions. To chance the collider from Capsule
to Cube, simply select the drop-down next to Collider
When you select the Cube collider you will notice that 2
new properties showed up. The first is called Collider 1
Size. This property is used to set the size of the collider for
all of the normally oriented (Non-Alternate) links. The
second property called Collider 2 Size is used to set the
alternating links collider size. Also note that if you did not
select Alternate Links the second collider size property
would not be visible.
When editing colliders, it would be nice to see what we are
doing. Fortunately for you and me I have included the
ability to preview the colliders as you edit them. To enable
this, go to the Preview section of the editor. Next check
the Show Colliders check-box and you will instantly see
your colliders. Be warned that if you are using a slower
computer, the more links you have the slower your editor
will run with this setting.
Type and select Cube. (As a side note: During the time I
wrote this tutorial, the new collider type Mesh was not yet
working!)
The colliders are all shaped like a box right now because
the X, Y, and Z values are set to 1 in both properties. To get
your colliders to follow the shape of your links better set
Collider 1 to (2,0.75,3.5) and Collider 2 to (0.75, 2, 3.5).
[36]
unitycreative
[37]
unitycreative
[39]
unitycreative
[40]
unitycreative
RapidUnity
Vehicle Editor
Tutorial
[41]
unitycreative
PC #
http://images.autodesk.com/adsk/files/
fbx20113_1_converter_win.exe
Mac#
http://images.autodesk.com/adsk/files/
fbx20113_1_converter_mac_enu.pkg.tgz
[42]
unitycreative
A file dialog will appear, locate the Porsche 997 GT3 rsr.
3DS file in the location you unzipped the files to in the
previous section, and click Open. (Refer to figure 3)
First open the Hierarchy View (Refer to figure 5), click the
Tools menu, and select Hierarchy View, or use the
keyboard shortcut by pressing F8.
figure 4
[43]
unitycreative
figure 8
figure 6
Thats the body done, now lets move onto the wheel,
click the File menu, and select New, select Yes to
clear the scene.
figure 7
[44]
unitycreative
Using the Top view, click and hold down the left
mouse button, then drag the cursor to encompass the
two front wheels. (Refer to figure 10)
figure 10
figure 11
Now click the Select all button, and use the scrollbar
on the left-hand side of the Hierarchy View dialog to
scroll to the bottom of the list of objects.
[45]
unitycreative
Wheel.dds
997_GT3.tga
CALIPER.tga
cpit.dds
DISC.dds
sw.dds
TIRE.tga
vitre_di.tga
UnityDefaultCar.unitypackage
UnityAdvancedCars.unitypackage
A
Lab_Software_RapidUnity_Vehicle_Resource_Pack_v1_
5.unitypackage
figure 15
figure 14
[46]
unitycreative
figure 17
First, change the Scene view to a Right view, now use the
Vehicle Editor Body Settings sliders to adjust the size and
center postion of the box collider.
figure 16
figure 18
[47]
unitycreative
figure 21
http://www.alabsoft.com/images/TarmacSurface.jpg
Then drag this texture from the Projects panel in Unity
onto the Plane object in the scene, change the tiling x
and y values to 40 (Refer to figure 22)
figures 19 & 20
figure 22
Now for the fun part, and when all your efforts are repaid!
First move the VehicleRig GameObject up on the Y-axis,
set transform position for Y to 3.
[48]
unitycreative
figure 23
figure 25
Now stop the scene, lets setup the camera to follow the
car around.
Within the Project panel, select the Standard Assets
folder, Scripts, Camera Scripts and select and drag the
SmoothFollow script up and drop it onto the Main Camera
in the Hierarchy view.
Next, with the Main Camera selected in the Hierarchy
view, select and drag the VehicleRig GameObject from
the Hierarchy view down to the Target field of the
SmoothFollow script within the Inspector panel (Refer to
figure 24).
figure 26
figure 24
Now play the scene again, this is much better, now the
camera follows the car nicely!
[49]
unitycreative
[50]
unitycreative
<Code Snippets>
EventRouter
Player.js
A solution that keeps your code clean, but still gives you
the flexibility of having arbitrarily defined communication
between Game Objects ,is the idea of an event router.
Let us consider a very simple example of a scene
needing communication between Game Objects and then
see how an event router can solve this problem.
enum CoinEvent {
#
Collected
}
function OnTriggerEnter(collider:Collider) {
EventRouter.Publish(CoinEvent.Collected, this);
Destroy(gameObject);
}
[51]
unitycreative
<Code Snippets>
One last thing to note. Since the EventRouter is written
in C# you'll need to place it in your Plugins directory in
order to get everything compiled in the correct order. If
you're using C# in your project that's a non-issue.
============================
This means there's no need for a separate coroutine
method which is really handy to keep down the clutter in
classes that are firing off multiple delayed events.
DelayedCopy.cs
using UnityEngine;
using System.Collections;
using CustomExtensions;
WritePreamble.js
#
void Start() {
#
#
this.CallMethodAfterDelay(gameObject, "Clone", delay);
#
}
#
#
void Clone() {
#
#
var copy = (GameObject)Instantiate(gameObject);
#
#
copy.transform.Translate(Random.Range(-2f, 2f),
Random.Range(-2f, 2f), 0);
#
}
}
function Start() {
#
var typewriter = GetComponent(Typewriter);
#
typewriter.text = "We the People of the United States, in
Order to form a more perfect Union, establish Justice,
insure domestic Tranquility, provide for the common
defence, promote the general Welfare, and secure the
Blessings of Liberty to ourselves and our Posterity, do
ordain and establish this Constitution for the United
States of America.";
#
typewriter.Write();
}
Like the EventRouter, the Typewriter class is written in C#
so you need to place it in your Plugins directory to use it
from UnityScript.
There are some things to note here. First, this only works
with C#. Sorry UnityScript people but I don't know how to
get UnityScript to recognize extension methods.
============================
If you need to invoke a method at a later time usually
coroutines are your best friend. And while Unity does
[52]
unitycreative
<Code Snippets>
Second, you have to remember to stick the "using
CustomExtensions;" line in every file where you are going
to use these methods, even though they're technically
static, that's just how C# works.
I hope you will find them useful as well. If you have any
questions, comment, improvements, or suggestions
about these files, please contact me at
david@koontzfamily.org.
David Koontz
Happy Camper Studios
[53]
unitycreative
CREATING A SIMPLE
CHAIN ROPE
I.
II.
III.
Go to Reverie Interactive
website
(www.reverieinteractive.com).
Go to the downloads page by
clicking on the Downloads link
at the top of the website.
Choose whether you want the
Unity Package or the Files and
download the appropriate file to
its destination on your
computer.
Malesuada eleifend, tortor molestie, a fusce a vel et. Aliquam amet est class.
Installing the Unity Package:
[54]
Fig 2
Fig 4
10. Once you enable the Cube Collider, you will notice
that it is far to large and does not match the links at
all. See our settings in (Fig. 16)
11. Now that your cube colliders more closely match
your links, you are finished. Go ahead and hit play
and enjoy your newly created chain! You can also
save the chain as a prefab and re-use it whenever
youd like in your scene.
Fig 5
Fig 0
Fig 6
Fig 1
[55]
Fig 7
Fig 9
Fig 8
Fig 10
Fig 11
[56]
Fig 12
Fig 13
Fig 14
[57]
Fig 16
Fig 15
Final
[58]
[59]
unitycreative