Automation with Blender: python:blender
UPDATE: 2020/06.23 install PySide2 for Blender 2.83
cd D:\YourPathToThat\blender-2.83.0-windows64\2.83\python\bin D: .\python.exe -m pip install PySide2
/Applications/Blender.app/Contents/Resources/3.2/python/bin/python3.10 -m pip install --upgrade pip /Applications/Blender.app/Contents/Resources/3.2/python/bin/python3.10 -m pip install pyside2
set camera clipping distance
viewport | Blender | Maya |
---|---|---|
quad view | ctrl+alt+Q | space |
view switch | numpad,ctrl+numpad | space+RMB markmenu |
expert mode | ctrl+alt+space | ctrl+space |
max. panel | ctrl+space | space |
tool panel | T,F6 | ctrl+A |
property panel | N | ctrl+A |
view selected | num. | f |
isolate selected | shift+h | use icon |
view all | home | a |
- | MMB centric | alt centric |
rotate view | MMB drag | alt+LMB drag |
pan view | shift+MMB drag | alt+MMB drag |
dolly view | ctrl+MMB drag | alt+RMB drag |
add object | shift+A menu | shift+RMB markmenu |
select all/none | a | double click/click none |
drag select, add,remove,toggle | b LMB drag MMB drag | default ctrl+shift drag ctrl drag shift drag |
paint select | c | |
soft select | o | |
obj/vtx,edge,face mode | tab, | RMB markmenu, script |
hide operate axis handle | ctrl+space | q |
UI interaction | Blender | Maya |
---|---|---|
tear off panel | left-corner cross sign + shift LMB drag | just drag |
swap panel | left-corner cross sign + ctrl LMB drag | - |
slider UI | hold ctrl =10% incr hold shift = 1% incr press E to overshoot | hold ctrl = small incr middle drag in view |
Action | Blender | Maya |
---|---|---|
wireframe on shaded | object property : display : wire+all edge | view menu : wireOnShade check, script |
wire/shade view | z | 4 |
snap toggle | shift+tab | |
snap menu, 3d cursor | shift+S | |
vtx, curve, grid snap | incremental snap + grid align btn | hold v, c, x |
delete obj | x, delete | delete |
undo | ctrl+z | ctrl+z |
redo | ctrl+shift+z | ctrl+y |
Duplicate object | shift+D | ctrl+D, shift+D |
duplicate as instance | alt+D | ctrl+shift+D w option |
repeat last action | shift+R | g |
adjust last action | F9 | |
hide object / unhide | H, alt+H | ctrl+H, shift+H |
increase/decrease component selection | ctrl+Num+/- | shift+</> |
to shell selection | L | |
select all/none | a | double click/click none |
continue selection | ctrl+select | shift + double click select |
loop selection | alt+select | double click select |
convert bet obj type | alt+C | |
combine objects | ctrl+J | |
separate object | ||
center pivot | ctrl+alt+shift+C | |
parent, unparent | ctrl+p,alt+p | p, shift+p |
Blender Special shortcut
move obj to layer | m |
curor/selection grid snap | shift+S |
select border edge | ctrl+shift+alt+M |
cursor to origin | shift+C |
zero T,R,S | alt+G,alt+R,alt+S |
modelling shortcut in blender
fill hole=insert face | f, ctrl+f |
---|---|
extrude edge, face, vtx | e, ctrl+LMB end click |
offset=insert face | i |
subdivide | w |
insert edge loop=loop cut | ctrl+R w scroll |
offset edge loop | ctrl+shift+R |
bevel | ctrl+b |
cut face=knife | k |
merge vert menu | alt+m |
average vert=smooth vert | |
edge menu | ctrl+e |
face menu | ctrl+f |
vert menu | ctrl+v |
set normal to face | ctrl+n |
Blender is 2nd 3D application I picked up when I was starting the 3D learning. (Cinema 4D is my first 3D app, Maya is my 3rd, 3DS Max is my 4th).
Before 2.6, the Blender interface is the most struggling thing to cope with,
But now, as 2.6 comes with a new interface, it pops up and let you use optional Maya user interaction;
Now I started to pick it up again.
show selected vertex count and vertex count
show vertex index
bounding box display:
Parenting:
Seperate object
Select edge loop
Steps:
@echo off rem Put the path of the blender folder and cd to the obj file folder set PATH=D:\blender-2.78a-windows64 set FILENAME=Cliffs_Beach.blend set TARGET=Cliffs_Beach.obj blender %FILENAME% --background --python blend_to_obj.py -- %TARGET%
import bpy import sys argv = sys.argv argv = argv[argv.index("--") + 1:] # get all args after "--" obj_out = argv[0] bpy.ops.export_scene.obj(filepath=obj_out, axis_forward='-Z', axis_up='Y')
ref:
the reverse process: