Table of Contents

modeling guideline

hard surface modeling

cmds for modeling related

import maya.cmds as cmds
 
# toggle display of border edge (border edge), and change border width (4 is good)
cmds.ToggleBorderEdges()
cmds.ChangeEdgeWidth()

Image Picture to Model

Method 1 - Plane with Square Image then Knife Cut

Method 2 - auto version of method 1

AI curve to Logo Model

Cleanup AI Curves

3D curves requirements

bevelPlus -ch 1 -js 1 -tol 0.01 -ns 4 -cap 4 -width 0.1 -depth 0.1 -ed 0.5 -bevelInside 0 -outerStyle 2 -innerStyle 2 -polygon 1 -no 1 -polyOutMethod 2 -polyOutExtrusionType 3 -polyOutExtrusionSamples 2 -polyOutCurveType 3 -polyOutCurveSamples 6 -polyOutUseChordHeightRatio 0 `ls -sl`;


Steps - version 001

  1. Prepare and Clean AI
    • for one block of text with intersection area, Type > convert to outline first, then use pathfinder panel to convert into a clean cutout line, instead of all the shape lines.
    • then export as EPS format for cleaner file format (illlustrator 3 eps)
  2. Import AI logo
    • (optional) scale up 100x times, to avoid small bevel value error
  3. Surface > Bevel Plus (Important note: Please do each Bevel operation seperately for each independent geometry, means each output mesh should have all its face connected as a shell; also make sure select the Outline curve first then select inner hole curves; Also Curve direction has a impact on whether it convex inside or outside)
    • keep bevel inside outside (but sometimes, bevel inside cause more problem than bevel outside, so in AI, make sure the trace image eat inside a bit with threshold if you use trace image to get the cutout line)
    • bevel: width 0.1 depth .3 extrusion 0.5; (most important factor is width, try it to get it right)
      • if you can turn bevel inside in channelbox, tune down width value until no “flying polygon face” issue
    • output Polygon: along extrusion section 1; along curve span 3; (so it won't be too high res for later smooth operation)
      • or if you prefer sharp bevel without smooth operation, then try extrusion section 2; along curve span 6; or higher for a straight sharp out-of-box result
  4. Select the front and back Cap Face, then triangle the face to make it not a n-gon face
    • (optional) then quad the face
  5. (optional) Smooth the whole geo (may results worse result)
    • update 2016.718. actually I would avoid smooth at this stage as it mess up the topology too much, I will leave it same resolution with just trianglize
  6. if you like smooth bevel edge, then export the part as obj
    • use Zbrush to ZRemesher it for re-topo and smooth out bad faces
    • ZRemesher setting: same count, adaptive 100 (means use more than polycount to get shape better), curve 50 (if you have used retopo brush to draw the guide lines, follow user line or by self more);
    • divide with smooth, then flat brush and smooth brush to fix it bit
    • re do ZRemesher with half resolution and if needed, reduce to a polycount amount
  7. Then bring the Obj back to Maya to cleanup and smooth

Steps - version 002 (Maya and AI only workflow)

CAD NURBS to Polygon Workflow

Polygon to Wire Model

Wire Model (inspired by: https://vimeo.com/entagma/videos)

Code :

# a code to connect all the particle by a linear spline curve
import maya.cmds as cmds
from operator import itemgetter
import math
 
#  step 01: create particle system on the character to generate random points on surface for connections
particleSys = "particle1"
cnt = cmds.particle(particleSys, q=1,ct=1)
pos = []
for i in range(cnt):
    pos.append( tuple(cmds.particle( particleSys, q=1,at="position", id=i)) )
 
# result method A, single curve along all the points
cmds.curve(n="myCurve",d=1, p=pos)
# then you can use paint effect to make it into a easy animatable polygon
# then convert paint effect into polygon
 
# result method B, seg all the nearby 10 points, 
#(actually I should have checked the max distance allow, so no fly line from top to bottom for last few lines
myGrp = cmds.group(n='myGrp',em=1) # a group to hold all the seg curve for cleaner outliner
 
# loop through each point, and connect to the left rest points
for i in range(cnt-1):
    connect = 10 # how many connections per point
    curPoint = pos[i]
    otherList = pos[(i+1):]
    # get all the distance from current point to left rest points
    tmpDisList = [ distance(curPoint, otherPoint) for otherPoint in otherList ]
    result = enumerate(tmpDisList)
    resultSort =  sorted(result , key=itemgetter(1)) # get smallest distances
    for j in range(connect):
        endPointId = i + 1 + resultSort[j][0]
        endPointPos = pos[endPointId]
        # if u want check max distance allowed for drawing, eg. 5 unit
        #if resultSort[j][1] < 5: 
        tmpC = cmds.curve(n=("curveSeg_"+str(i)+"_"+str(endPointId)), d=1,p=[pos[i], endPointPos])
        cmds.parent(tmpC, myGrp)
 
def distance(a,b):
    return math.sqrt(math.pow((a[0]-b[0]),2) + math.pow((a[1]-b[1]),2) + math.pow((a[2]-b[2]),2))
 
################ brush
# for the brush of so many seg, better test for one curve first, and tweak brush global size
# after ready, select all the curve that you like to brush, then connect curves to the strock object
curveList = cmds.ls(sl=1) 
for i in range(len(curveList)): 
    cmds.connectAttr(curveList[i]+".worldSpace[0]", "stroke1.pathCurve["+str(i)+"].curve", f=1)
 
# then convert paint effects to polygon, done

To Study

UV unfolding tool

Modeling guidelines

Procedural modeling

Texture to Logo Model

Modeling and Texture workflow

model_texture.jpg

speed modeling and quick painting in maya

3D Painting in Maya

manual brush preset code

ResetTemplateBrush;
rename (getDefaultBrush()) myBrush;
setAttr myBrush.globalScale 5;
setAttr myBrush.mapColor 1;
setAttr myBrush.textureType 4;
setAttr myBrush.mapMethod 2;
setAttr myBrush.repeatU 1;
setAttr myBrush.repeatV 1;
setAttr -type "string" myBrush.imageName "images/grass.jpg";

Sculpting with displacement map

Scultp with Sculpt geometry tool

reference: maya doc map based terrain creation

Soft corner

Method

reference and LOD

Shape to Shape modeling