Jump to content

Everything 3D + A getting started guide


Vorontsov

Recommended Posts

Last Updated: 2017-04-14 (YY-MM-DD).

 

1.) How do I get started in 3D?

There are many ways to get started, the quickest way is to actually start
with a 3D program. There are many to choose from, such as:

  • Maya (Has the most documentation available along with 3ds Max)
  • 3ds Max (Has the most documentation available along with Maya)
  • Cinema 4D (Mostly popular for the movie industry rather than the games industry)
  • Modo (Personal favorite)
  • Blender (Free)

If your only goal is to create assets for the source engine, you would have the easiest time in 3ds max using wallworm tools. Your second option would either be Blender, because it's free and has alright source tools or Modo (me and tomm would have to get you up to speed).

Results in other programs may wary!

Once you obtain a 3D Package of your personal choice (I would recommend you to trial a few, get a feel for them).

The next step is to start with tutorials or lessons. There are many on the internet, they range from text and image tutorials to video tutorials. You aren't going to find a tutorial for everything out there, but most will explain techniques that you need to adapt in order for you to achieve whatever final result you want.

 

2.) Wow! That's a lot of programs! Which one is best? I heard ______ is best.


You heard wrong, while you can argue that one program does certain tasks better than another program, there is no one program to rule them all. It has and always will be the skill level of the artist. Which program you choose is solely dependent on your own personal taste and which aspect of the 3D industry you want to be involved in. 3ds Max and Maya are the most hyped throughout the ages and so therefore the most used, and therefore the most documentation available online. The interfaces are like a rocket ship and have a steep learning curve, but there isn't any 3D program you can't learn if you take the time to use it and follow some tutorials. If you're starting out, I would recommend starting with a generalist package and not a specialized one.

 

3.) Wow, Generalized vs Specialized? How do I know?

A generalized package like 3ds Max, Maya, Softimage are packages that let you model, render, animate, texture, and create dynamics all within the same application. They don't require third party plugins or applications to add another basic feature, like a renderer or animation tools. However you can get plugins for these apps to enhance their features.

 

4.) Ooooh Zbrush, I see so much awesome work from that software, I'm gonna start there!

No, you're getting ahead of yourself. You should start learning about basic modeling & important fundamentals before jumping into Zbrush. Zbrush is a great program for advanced users to sculpt in additional detail to their existing models, or to prototype models quickly by sculpting them out. It is not a good idea to get into Zbrush when you're not very familiar with general 3D concepts

 

5.) Okay, I see I'm not very good at this stuff, can you model ______ for me?

No, anybody with any decent skill on this forum does this work for a living or for some kind of gain (mostly). It's important to do what everyone else did, to teach yourself how to fish. Someone who is feeling generous or has the time might help you out, but don't expect the person to follow your every order and make an amazing piece of work, you get what you pay for.

 

6.) But it's too hard, isn't there any easy button? I don't feel motivated.

No, like all things it takes time and effort to master a program, practice makes perfect and playing around with the interface will get the shortcuts ingrained into your muscle memory. Everyone has been through creative block & slumps, and has had their ups and downs. Keep on grinding and you will become a professional twerker.

 

7.) So which program is the easiest to learn?

No, you shouldn't learn a program. You should focus on learning techniques. When you master a technique the program becomes nothing more than a tool to achieve your desired results. As said before 3ds Max and Maya have the most documentation but you should look at learning how to model and the right techniques instead of "What button does X". You can get UI information from the program's help files. F1 and Google are your friends.

 

8.) "So, what do studios look for when hiring if I don't know program ______ won't I get turned down?"

When a studio judges your demo reel and resume they have an order of priority.

  • Quality of Work
  • Versatility
  • Experience
  • Program skills

 

9.) So studios don't care what program I use? Why do they care about versatility?

Except for Animators who are pretty much exempt from most rules of 3D, most studios want people who can perform multiple tasks instead of just a specialized one. They want modelers who can also texture, they want riggers who can also do dynamics, they want lighters who can also texture. It's okay to be specialized in one area, but it doesn't hurt to be versatile, it will always keep you employed.

When a studio looks at your program skills they do often look to see if you have experience in their preferred in house package, but MANY times you're going to get a studio that has added their own tools and pipeline so it wouldn't matter what program you know as long as your skills are good. If you know techniques you can pretty much pickup any 3D package in a matter of days. Of course there are some that are hard set that you know program ________ but for the most part what package you know is not that important. (Yes even you Blenderfags can get a job in a studio if you know what you're doing.)
 

10.) If you want to get into game asset creation, your three primary focus of interests are:

  • Modeling
  • Texturing
  • Animation

 

Low poly modeling is an art in itself, trying to get as much detail with as few polys as possible takes some practice, there is no formula for this. You create a low poly model and use techniques such as good UV textures and normal maps to enhance the look of the model in the game engine.

A great place to start for game asset creation:
http://www.poopinmymouth.com/tutorial/tutorial.htm

Animating for games is pretty much the same as for movies, except that your model has a higher chance of deforming badly and you may not have as much control over your rig. Still the basic concepts of animation will always apply.

 

11.) Huge list of links. Very handy!

Spoiler

Yep,
Tutorials:
http://www.free3dtutorials.com
http://www.3dbuzz.com/vbforum/sv_home.php
http://www.3dk.org/tutorials/date/15/1.html
http://www.3dtotal.com
http://cg.tutsplus.com/
http://www.creativecow.net/
http://www.videocopilot.net/
http://poopinmymouth.com/
http://www.tutorialized.com/
http://www.creativecrash.com/
http://www.thegnomonworkshop.com/
http://www.digitaltutors.com/09/index.php
http://www.evermotion.org/tutorials
http://www.google.com/

Specific Starter Tutorials:

-Modeling
http://www.3dtotal.com/ffa/tutorials/max/joanofarc/joanmenu.php : 3DS Max Character Modeling tutorial - Best you'll find
http://www.poopinmymouth.com/tutorial/tutorial.htm : Great introduction to basic game character modeling
http://newtek.com/lightwave/training.php : Free Lightwave 3D training videos

-UVMapping and Texturing
http://racer445.com/ : Intro to texture concepts and normal mapping
http://cgtextures.com/ : Best free texture resource
http://features.cgsociety.org/story_custom.php?story_id=4678 : Introduction to texture concepts
http://www.grungetextures.com/gallery/
http://www.absolutecross.com/graphics/textures/
http://www.psbrushes.net/ : Brushes can be used to create textures
http://www.photoshopbrushes.com/
http://www.smashingapps.com/2009/01/26/31-most-colorful-collection-of-high-quality-texture-packs.html
http://www.creativecrash.com/3dsmax/downloads/shaders/c/
http://www.creativecrash.com/maya/downloads/shaders/c/
http://www.creativecrash.com/downloads/3d-textures/c/
http://cg.tutsplus.com/tutorials/texturing-a-human-face-day-1-the-uvw-unwrap/ : UV Unwrapping in Max
http://download.autodesk.com/media/3dsmax/peltmap_max8_380k.mov : Demo of pelt unwrap feature in Max



-Dynamics
http://www.allanmckay.com/site/
http://www.joegunn3d.com/Tutorials.html


-Game Character Creation
http://www.noesisinteractive.com/xnabot/
http://www.fpsbanana.com/tuts/8485


-Game creation resources
http://www.blender.org/
http://unity3d.com/
http://www.udk.com/download.html
http://www.gamasutra.com/
http://www.gameartisans.org/

-Zbrush
http://www.3dartspace.com/index.php?option=com_content&task=view&id=304 Meats Meier Intro to Zbrush, free, informative, highly recommend.
http://cg.tutsplus.com/articles/web-roundups/tutorial-roundup-82-earth-shattering-zbrush-tutorials/


Free Downloads:

Blender 3D:
http://www.blender.org/
Wings3D:
http://www.wings3d.com/
Softimage Mod Tool:
http://usa.autodesk.com/adsk/servlet/pc/item?id=13571257&siteID=123112
Houdini Apprentice:
http://www.sidefx.com/index.php?option=com_download&Itemid=208&task=apprentice

Underage b&s and College fags who can get discount software:
http://www.studica.com/index.cfm
http://www.journeyed.com/

Compositing:
http://www.thefoundry.co.uk/pkg_examples.aspx?ui=CBC2593A-2C9F-4EF9-84BE-C198B0171453
http://www.youtube.com/eyeonsoftware
http://www.youtube.com/user/TheFoundryChannel
http://www.videocopilot.net/
http://www.digilab.uni-hannover.de/docs/manual.html
http://www.tutorialsphere.com/tutorials/eyeon-fusion/compositing
http://library.creativecow.net/articles/holt_karl/syntheyes.php : Introduction to Matchmove with Syntheyes.
http://ae.tutsplus.com/articles/roundup/26-tracking-and-3d-matchmoving-plus-after-effects-tutorials/ : 26 great Camera tracking and Matchmove tutorials

Animation:
-Free Rigs
http://www.11secondclub.com/resources/
http://animationbuffet.blogspot.com/
http://www.xsibase.com/tools/skeletons.php

-MoCap libraries (free and none free)
http://mocap.cs.cmu.edu/search.php
http://www.mocapclub.com/Pages/Library.htm
http://accad.osu.edu/research/mocap/mocap_data.htm


3D Communities:
http://www.cgsociety.org/
http://www.cgchannel.com/
http://www.cgfocus.com/
http://area.autodesk.com/
http://spinquad.com/
http://www.cgsphere.com/

Job Hunting:
http://www.highendcareers.com/
http://jobs.cgsociety.org/

Concept Art - General Illustration:

http://www.dangheno.net/pteachingspg1.htm - starting guide on how to do figure drawing

http://www.reybustos.com/03ra/ra.html - useful images that shows you without telling how to interpret the body anatomy and how it deforms, where all the superficial muscles are in different poses

http://www.pixelovely.com/gesture/figuredrawing.php - great tool for doing gestural and anatomical studies of humans and animals

http://www.posemaniacs.com/ - good for quick gestural drawing, helps you with proportions and quick figure sketching blocking out human forms, don't use it for anatomical studies

http://www.itchstudios.com/psg/art_tut.htm - general tutorial for digital painting and such, contains a few gems of good useful information

http://www.wetcanvas.com/Articles2/135/120/index.php - bunch of compositional guidelines useful to give images that little extra chazzaz.

http://www.piclists.com/ - for when you need a random pic to draw

http://www.ldaustinart.com/paul/speedpaint.php - for when you need a random idea to draw

http://chanarchive.org/4chan/ic/18681/art-resource-links-v2-0#1012088 - More resources

http://www.conceptart.org/forums/forumdisplay.php?f=42 - Concept artist community

 

 

12.) How $details can help your CS:GO models / textures

What are $details?

$detail is a parameter you can add to your .vmt to add further detail to your texture / model's texture

How to find the usable $details folder

Use a program called GFCScape or VIDE (I will be using VIDE).

In VIDE, under tools I will select the "Package Viewer". With the Package Viewer I will open a .vpk file called pak01_dir (found in C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo)

Now I will click the "Search" icon and search for "detail". Press enter and scroll down until you find the following:

L0a8xoj.png

Open this folder and voila, you found quite a few details. This is not all of them, it is hard to track down all of them. A good way is opening up Valve's own .vmt's, like the Nuke ones, and you will run into nice $details for various metals that can really change the game for your model / texture, or keep on hunting in VIDE / GFCScape. You can also create custom detail textures, basically a detail is a grayscale texture that will be overlayed on top of the current work you apply it to. 

Enough talking, let's give some examples of what they can do!

4lw7gjp.jpg

Here, my model's texture is just a flat color so you can easily observe how the $details affect the surface.

Here are the parameters for the details I used in the image above:

1) $detail metal/hr_metal/hr_metal_detail_001

2) $detail detail/dt_carpet1

3) $detail detail/dt_wood

4) $detail metal/hr_metal/hr_metal_detail_002

 

The parameters I use to control my $detail is the following:

$detail - Specifies the location of the detail you want to use.


$detailscale - Controls the scale of your detail.


$detailblendfactor - Controls the opacity of your detail.0

 

Here is an example .vmt for a model:

$basetexture "models/de_transit/cube_preview"
$detail detail/dt_carpet1
$detailscale 3
$detailblendfactor 0.5

Valve use this a lot in their models and textures, and you should too. They can range from being very subtle eye-candy, or making sure your diffuse looks like galvanized metal.

 

13.) Counter-Strike: Global Offensive

When it comes to CS:GO, Valve's Developer Wiki will be your new Bible. Most questions you have, can be answered by this wiki. Stop being lazy. A lot of this is straight outta compton Valve’s Developer Wiki.

 

 

13. B) Terminology

QC, VTF, VMT, SMD, OBJ, FBX

What is a “.qc” ?

A “.qc” file is a text-file script which controls the process of compiling SMDs into a binary model that can be loaded into a game. The extension stands for Quake C, the programming and scripting language from which the Valve Data Format was originally derived.

A QC configures the model's location and name, which SMD files are used to provide geometry, collision meshes and animations, how the model reacts when shot, and so on.

 

What is a “.vtf” ?

A texture is a .vtf (“Valve Texture File”) that is the proprietary texture format used by the Source engine. VTF files are generally referenced in a Material instead of being accessed directly, which allows re-use in different ways. Both textures and materials are stored in subfolders of game_dir/materials/.

 

What is a “.vmt” ?

A material is a .vmt ("Valve Material Type") text file that defines a two-dimensional surface. It contains all of the information needed for Source to simulate the surface visually, aurally, and physically.

 

What is a “.smd” ?

The Studiomdl Data file format (.smd) stores 3D models in ASCII for analysis and compilation by studiomdl. SMD files are usually generated by an SMD export plug-in for a given model editor package like the Wallworm Model Tools for 3ds Max

 

What is a “.obj” ?

A .obj is a geometry definition file format first developed by Wavefront Technologies. For the most part it is a universally accepted format.

The .obj file format is a simple data-format that represents 3D geometry alone — namely, the position of each vertex, the UV position of each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of vertices, and texture vertices. Vertices are stored in a counter-clockwise order by default, making explicit declaration of face normals unnecessary. OBJ coordinates have no units, but OBJ files can contain scale information in a human readable comment line.

Basically it’s a format for your 3D model that you are going to use when compiling your model for the Source Engine, if not an .obj format then an .fbx, .smd or .dmx format.

 

What is a “.fbx” ?

A .fbx (Filmbox) is a proprietary file format (.fbx) developed by Kaydara and owned by Autodesk since 2006. It is used to provide interoperability between digital content creation applications. Does mostly the same thing an .obj does.

 

 

13. C) Models

A model is a collection of points, or vertices, that form a 3D shape known as a mesh. The gaps between the points are usually filled with polygons, and these polygons are usually covered with a material. Models are used for almost every 3D object in Source that isn't a part of a map's underlying brush geometry. NPCs, physics objects, guns, and sometimes even buildings are all models. Models are created in external modelling packages that are not part of the Source SDK. The SDK tool studiomdl is used to compile files exported from a modelling package into the binary MDL format that Source understands.

 

Your collision model(s) have to be made up of convex pieces, that together match the shape of your model as well as they can. They also have to be 100% smooth. You can either create your collision models piece by piece manually or find plugins to use for your piece of software.

 

How do I export models into the game?

You have several options assuming you’ve already created a model in a 3d package of your choice. CS:GO supports various formats: SMD, DMX, OBJ and FBX

The easiest way would be to export your mesh into OBJ or FBX since most of the 3D packages natively support these formats and there’s really no need for a third party tool (although it does make the process much easier).

 

OBJ format has some limitations you should be aware of:

  • only 1 UV channel. (With the recent update CS:GO supports the usage of two UV channels which is only achievable with an FBX format)

  • can’t use it for collision hulls/meshes.

  • can’t export bones/no animation support.

  •  

Now I’ll explain the most basic way to get your model into the game without the use a 3rd party tool.

First create a QC file, here’s an example testcube.qc:

 

$modelname "de_yourmap\testcube.mdl"

$body mybody "testcube.fbx" (As said previously this format can also be an OBJ, SMD or DMX. Don't include this in the QC!)

$staticprop

$surfaceprop default

$cdmaterials "models\de_yourmap"

 

$sequence idle "testcube.fbx"

 

Now create a batch file, let’s call it compile.bat. And paste in the following:

"C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin\studiomdl.exe" -game "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo" %1

pause

 

We can now drag and drop our QC directly on our newly created batch file and let it do the compiling process.

You can also use Guistudiomdl or Crowbar rather than creating your own batch files, these provide a lot more functionality than a simple batch file.

If you can’t see any errors then you should be able to launch HLMV and browse to your compiled model, in this case you would find it inside a directory called “de_yourmap” as specified in the example QC above.

 

My model is pitch black, what’s going on?

M5X95Yv.png

 

In the picture above, we’re missing the material (.vmt) since we haven’t created it yet. So go ahead and create a basic material file inside:

 

<path to your csgo installation>\csgo\materials\models\de_yourmap

 

Call it testmaterial.vmt and paste in the following:

 

"VertexlitGeneric"

{

   $basetexture models/de_yourmap/testmaterial (Path to your .VTF)

   $surfaceprop concrete

}

 

Assuming you have your texture ready, save it as testmaterial.vtf and you should be done.

F9wVdEd.png

That’s pretty cool, but it has no collisions, wat do?

Since our model is just a very basic convex shape (a revolutionary cube)  we can use it as a collision mesh as well. For anything more complex you’d have to make a proper separate collision mesh.

 

so the resulting QC file will look like this

 

$modelname "de_yourmap\testcube.mdl"

$body mybody "testcube.fbx"

$staticprop

$surfaceprop default

$cdmaterials "models\de_yourmap"

 

$sequence idle "testcube.fbx"

 

$collisionmodel "testcube.fbx"


Now compile again and enjoy the result after all this hard work.

Well that’s beautiful, look at our final model!

LG3hAXd.png

 

Alternatively you can avoid all of this long, hard work by using an exporter.

 

 

On 7/26/2016 at 10:27 PM, grapen said:

I'd like to add that CS:GO has a hard cap of (IIRC) 40 convex pieces for a collision mesh. If you exceed this, the compiler will still compile the mesh, though try to merge a large portion of the pieces together, resulting in a terrible collision mesh, far from what you had in mind. You might not even notice this until much later. You can bypass this however via $maxconvexpieces in your qc. This doesn't mean that you should go crazy on the total amount of pieces, keep it reasonable for performances sake. There are cases where it's going to be worth it though, like really large models that need to offer smooth gameplay.

 

Known exporters

 

Special thanks to @tomm for helping me with the new edition of this handy little guide. Happy git gudding.

 

Edited by Vorontsov
Update
Link to comment
Share on other sites

  • FMPONE pinned this topic
  • 3 weeks later...

Nice write-up! If you're taking suggestions I'd like to add that CS:GO has a hard cap of (IIRC) 40 convex pieces for a collision mesh. If you exceed this, the compiler will still compile the mesh, though try to merge a large portion of the pieces together, resulting in a terrible collision mesh, far from what you had in mind. You might not even notice this until much later. You can bypass this however via $maxconvexpieces in your qc. This doesn't mean that you should go crazy on the total amount of pieces, keep it reasonable for performances sake. There are cases where it's going to be worth it though, like really large models that need to offer smooth gameplay.

Link to comment
Share on other sites

  • 1 month later...
  • 6 months later...
  • FMPONE unpinned this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Mapcore Supporters

    Funds go towards hosting and license costs, Discord server boosts, and more. If you'd like to donate, check out our Patreon announcement.

×
×
  • Create New...