masicblack强烈推荐的插件。
翻译原文地址https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Enhanced_3D_Cursor
Enhanced 3D Cursor也就是加强的3D游标。为方便理解,我都添加了小注,图片放到文章底部,尽量不打乱原文结构。
强大的 3D 游标
游标的历史记录和书签; 拖拽/吸附 游标用户界面位置
3D视图 > 操作鼠标; F10; 属性面板 插件版本 2.9.8 作者(们) dairin0d Blender版本 2.7 开源许可 GPL 3+ 分类 3D视图 发行 贡献软件
翻译小注:在3D视图拖拽鼠标,或者按下F10,都可以看到效果,也可以在属性面板最下面看到。
可执行文件信息
文件名 space_view3d_enhanced_3d_cursor.py 当前版本下载地址 https://raw.github.com/dairin0d/enhanced-3d-cursor/master/space_view3d_enhanced_3d_cursor.py
http://developer.blender.org/diffusion/BAC/browse/master/space_view3d_enhanced_3d_cursor.pyPython 模块 math, time
链接http://blenderartists.org/forum/showthread.php?229754-A-script-to-place-cursor-on-objects-surface-(and-some-other-functionality)
安装
- 把python脚本放入你的插件文件夹.
- 在用户首选项 / 插件 面板 激活它.
- "变换扩展选项" 和"3D游标工具" 子面板将会出现在3D视图属性面板中. 同时, 你可以通过操作鼠标按键来拖拽3D游标了.
翻译小注:可直接使用从文件安装功能;这两个子面板的名称在blender中没有翻译,请看文章底部图片。
特点
- 拖拽3D游标可以通过一个相似的方式来 移动/旋转/缩放 变换操作
- 游标的移动可以约束到一个或者两个轴向上在当前坐标系中
- 在当前坐标系中你可以输入精确的游标坐标值
- 游标可以吸附到 网格/顶点/边/面/边界盒/物体
- 表面吸附过程中法线和切线将会显示
- 法线/切线 的快照可以以空物体的形式添加
- 旋转/缩放 游标位置 围绕当前坐标系原点
- 游标位置历史记录
- 游标历史在所有场景中始终都是一样的 (游标位置的改变会添加一条新的记录)
- 历史轨迹 (在3D视图中以折现的形式显示)
- 游标位置书签
- 书签存储在库;每一个库可以指定各自的坐标系
- 保存/重现 书签
- 交换游标和书签位置
- 在书签位置创建空物体
用法
注意: 这里我假定操作鼠标的按键是左键LMB ,选择的鼠标按键是右键RMB. 但是如果你设置了不同的按键,本脚本将会使用你的设置.
游标 拖拽/吸附 操作
通常
拖拽游标使用左键LMB . 当你松开释放按键时更改将会被确认.如果视图被锁定到了光标, 操作期间锁定将会被禁用.
翻译小注:请看文章底部图片。
按下F10 (或者在你的用户设置中你给插件自定义的按键) 在不接触鼠标的情况下加载操纵杆.你也可以在鼠标拖拽过程中按下F10来进入 "鼠标自由模式". 在这种情况下, 鼠标位置的改变将会在你下一次按下F10 或者LMB 时生效确认.
需要注意的是,在雕刻模式或者绘画模式下,操作杆将不会被调用在你按下鼠标的时候.
翻译小注:"鼠标自由模式"也就是不受当前插件影响,退出插件功能。
轴线约束和精确的游标坐标在游标位置模式, 游标的坐标将会显示在3D视图标题栏的左侧面.右侧面显示的有,从左到右此次是
- 质心点.
- 坐标系统. 系统预定义的坐标系以紫色显示。.翻译小注:自定义的坐标黑色显示。(自定义坐标系CTRL+ALT+空格)
- 吸附元素. 如果吸附开启, 它将会以蓝色显示. 如果 "自身吸附" 选项开启, 一个长方形轮廓也将会显示.
如果 "仅控制物体中心点" 模式开启, 质心点(并且,一些情况下, 吸附元素)将会是黑黄色显示..翻译小注:括号中的吸附元素一些情况下也会显示黑黄色。"仅控制物体中心点"和黑黄色效果见文章底部图片
精度, 游标坐标系显示的, 可以通过 PageUp 和 PageDown去控制..翻译小注:拖动过程中按下PageUp 和PageDown,可以调节3D视图标题栏左侧游标坐标的精度。
按下X, Y or Z 将会约束游标移动在所选坐标系的单一轴向上.按住他们的同时再按下⇧ Shift 可以约束游标在另外两个轴向移动. 按下同样的按键两次可以移除约束.游标被禁止移动的轴向将会变成灰色.
你可输入精确的坐标值给任何XYZ轴向; 这些值将会覆盖所有的由鼠标产生的约束和位置信息. 允许输入一些合法基础的数学表达式.输入的数值将会以蓝色显示; 无效的输入将会以棕色显示. 其他的, 坐标将会以黑色显示.翻译小注:这些颜色显示指3D视图标题栏左侧游标坐标
当前输入位置由插入符号(橙色竖线)标明.切换到 下一个/前一个 轴向, 按下相应的↓或者 ↑ .
同样的: 你可以按 ⇆ Tab(制表键), ↵ Enter(回车) 或者↵ NumPad(数字键盘回车)去选择下一个轴向. 如果和⇧ Shift组合使用, 它们会切换前一个轴向作为输入.
清除当前轴向输入, 按Ctrl+← Backspace.清除所有轴向输入, 按Ctrl+Delete.翻译小注:这个功能没实现,不仅没有清空数据,反而和确认效果差不多。
你可以复制, 剪切和粘贴当前显示的游标坐标.
- 复制, 按 Alt+C. 现在剪贴板将会包含三组由tab字符分割的数值. 请注意, 取决于当前坐标系, 它们可能是 XYZ, ZXY 或者 YZX 顺序.翻译小注:我测试分割字符为逗号。
- 剪切,按 Alt+X. 除了复制坐标数据到剪贴板以外,它还会清空所有的坐标输入.翻译小注:我测试同样是只复制不清空。
- 粘贴, 按 Alt+V. 这会将剪贴板的数值填充到轴向中. 不同的坐标系数值可以由tab或者换行符分割. 请注意, 取决于当前坐标系, 它们可能是 XYZ, ZXY 或者 YZX 顺序顺序插入的。
注意: 这个方法同样可以粘贴包含函数的公式和Python数学模块定义的常量 (例如 "sin(pi/4)").
变换坐标系统按A在绝对和相对坐标系之间切换. 在相对坐标中游标的位置在操作是会以原点的数据(0, 0, 0)初始化. 对于绝对坐标系,原点取决于被选择变换的方向.
选择坐标系统, 按以下任意键:
按键 坐标系 绝对原点 说明 B 全局 世界的中心 L 自身 物体模式: 质心点. 其他模式: 激活物体的位置 如果没有物体被选中, 效果同全局坐标系 M 缩放("面") 同自身坐标系, 但是会考虑物体的缩放 J 视图 同自身坐标系 N 法线 编辑模式: 质心点 如果没有物体被选中(或者不在编辑模式下), 效果同自身坐标系 K 表面 光线投射点 Z坐标: 法线, X坐标: 第一条切线,Y坐标: 第二条切线 [, ] 自定义 同自身坐标系 按下这些键循环切换可用的自定义的变换方向 (尤其是名字为 "缩放" 或者 "表面"). 如果你按下Ctrl 当你选择坐标系时,游标会吸附到坐标系的原心. 在不改变坐标系的条件下你还可以按 Ctrl+0 来把坐标系归零.翻译小注:不是数字键盘0
变换质心点设置质心点模式, 按以下任意键:
按键 质心点 H 活动元素 U 3D 游标 I 各自的原心 O 边界框中心 P 质心点 如果你按下 Ctrl 当你选择质心点时, 游标会吸附到质心点的位置.
同样,你可以打开 "仅控制物体中心点" 选项,通过按 T. 如果这个模式被激活, 游标将会吸附到物体的中心而不是 面/边/顶点/边界盒.
旋转/缩放 模式别刻意选择 移动, 旋转和缩放游标的位置通过按相应的 G, R 和 S.
旋转和缩放模式作用类似于Blender的旋转/缩放操作。不同点是:
- 游标总是 旋转/缩放在当前坐标系
- 代替"跟踪球"旋转,你可以旋转在一个相似的方式围绕两个未锁定的轴向
吸附吸附可以通过"变换中吸附" 选项打开. 同样的,当你拖拽游标时, 你可以开启它通过按住 Ctrl 键.如果"游标视深"选项开启 (用户设置-界面标签页),游标将一直是吸附到面除非其他不同的吸附选项被开启.翻译小注:手册3D游标一节有提到,有兴趣的可去查阅
在操作过程中你可以按下相应的按键来更改吸附的类型..翻译小注:前提是要开启系统吸附功能
按键 吸附元素 描述 C 增量 在所选坐标系中吸附到整数坐标点. 如果⇧ Shift 被按下, 吸附会精确到 1/10 坐标单位. V 顶点 吸附到鼠标下多边形最近的顶点. E 边 吸附到鼠标下多边形最近的边的位置. 如果⇧ Shift 被按下, 吸附到边的中心(中点). F 面 吸附到鼠标下多边形的表面. 如果⇧ Shift 被按下, 吸附到面的中心. VV 体积 ("边界框") 会吸附到物体边界盒的顶角、边的中心、面的中心,在所选坐标系中. 当吸附元素是非增量时 (或者当前坐标系是表面 ), 元素的法线和切线将会显示. 边或者面的法线可以随意插入到相应顶点的法线中.
按 W 创建法线的快照(蓝绿色), 或者Q 创建第一切线的快照(紫色). 它们将会作为空物体添加到场景中.
在编辑模式中, 你可以吸附游标到"原始" 网格 或者应用了所有修改器的网格.这个功能控制通过 "自身吸附" 选项 (在编辑模式有效); 你可以在游标拖拽过程中开启通过按D.
键盘布局 (点击查看高分辨率图像) .翻译小注:需要点击两次,总之看到大图为止。图片里面的就不翻译了,自己都试试这些快捷键吧。
用户界面面板
翻译小注:为了可以对照上图查看功能位置,下面面板的翻译保留原英文,中文翻译在后面括号中给出
"变换扩展选项" 面板:
- "Relative coordinates" (相对坐标系)开启/关闭使用相对坐标系当坐标系统的原心是计算得来的.翻译小注:快捷键为A
- 如果 "Snap only to solid"(仅吸附到实体)开启中, 线框显示下的物体 ("线")在拖拽过程中将会被忽略. 同样, 除非吸附元素是 "体积" ("边界盒"), 边界显示模式下的物体做拖拽过程中将会一直被忽略.
- "Normal interpolation mode"(法线插值模式) 定义看了法线插值的使用. 可选项为 "总是", "从不" 和 "Smoothness-based"(基于平滑) (默认选项). 在基于平滑模式, 法线只会在标记为平滑的面插入.
- 如果 "use comma separator"(使用逗号做分隔符) 开启中,复制游标坐标的结果的三组数值将会以逗号分割; 否则, 他们默认会以Tab 字符分割.翻译小注:怪不得上面我复制的是逗号
"3D游标工具" 面板(普通):
- "Set"(设置) 按钮-- 打开游标位置对话框. 在这个对话框中, 你看可以输入精确的游标坐标值在所需的坐标系中使用方便的Bender用户图形界面.
- "Show/hide guides" (显示/隐藏 向导)-- 显示/隐藏 辅助线 ("向导") 可视化的在游标拖拽过程中. 插图中显示了"向导"的一个示例; 红, 绿和蓝色线条对应 X, Y 和Z方向上的游标投影在当前坐标系统中.黄色的虚线标示了当前坐标系统的原心和游标位置的偏移量.翻译小注:原心?更像是游标上一个位置和当前位置的偏移量
- "Show/hide snap elements"(显示/隐藏 吸附元素) -- 显示/隐藏 吸附元素在游标拖拽过程中.
- "Toggle sticking"(粘性开关) -- 如果开启, 游标将会粘性吸附最后一个它吸附的物体.
- "Show/hide normal and tangentials"(显示/隐藏 法线和切线) -- 你可以分别 打开/关闭 法线和切线的可视化在游标拖拽过程中.
- "Show/hide cursor" (显示/隐藏 游标)-- 可以使游标不可见,尽管用了一个容易的方式. 有一个很大的缺点: 因为Blender无时无刻不再重绘.
"3D游标工具" 面板 (游标历史记录):
- "Show/hide history trace"(显示/隐藏 历史轨迹跟踪)-- 开启/关闭 可视化游标的历史位置.
- "History size" (历史记录数值)-- 指定游标历史记录的游标位置的数量.
- "Current history entry"(当前历史记录) -- 你可以通过这个控件移动游标到游标历史记录的任意游标位置.
"3D游标工具" 面板 (游标位置书签):
你可以保存你以后想要使用的游标的位置到书签中. 书签自身存储在书签库中, 它是非常方便的如果你想在逻辑上区分书签的位置或者在不同的坐标系中存储它们.
如果没有书签库 (a),你可以创建通过按 "New Library" (新建库)按钮; 书签库在创建后可以重命名. 当至少存在一个书签库 (b), 你可以删除它("X" 按钮), 添加一个新的 ("+" 按钮) 或者选中其他的书签库 (点击书签库的名字右侧的图标).你可以添加, 选择, 重命名和删除书签在书签库中通过相同的方式..翻译小注:明明是点击书签库的名字左侧的图标嘛
- "Show/hide active bookmark"(显示/隐藏 激活的书签) -- 开关当前选中的书签位置的可视化.
- "Library's coordinate system"(书签库的坐标系) -- 指定书签位置存储和恢复的坐标系. 可选项: 全局, 自身, 缩放, 法线和环境. 它们不依赖当前的变换方向, 除了环境 需要注意的是 自身, 缩放和法线坐标系不会生效如果没有激活物体的话.
- "Library's relative mode" (书签库的相对模式)-- 指定当前书签库是否使用相对坐标系. 如果相对模式开启, 书签位置存储会不同于当前游标位置和当前历史记录的位置. 这个不同会通过淡橙色线来标示当历史轨迹可见时. 相对模式的书签位置会存储相对当前游标位置.
- "Overwrite bookmark"(重写书签), "Swap bookmark and cursor"(交换书签和游标的位置), "Recall bookmark(召回书签)" 和 "Create Empty at bookmark"(在书签位置创建空物体)功能非常明显了 :)
已知问题
- 自动注册 键盘布局/快捷键可能给一些用户带来麻烦. 这种情况下, 你可以在插件设置中关闭键盘的自动映射.
- 质心点的位置和变换方向在一些情况下并不和Blender的一些内部工具相一致 (Blender API 不完全引起的).
- 由于Blender存储数据的方式, 游标历史和书签作为"Default" 屏幕的属性存储(如果没有这个"Default"名字的屏幕,第一个可用的屏幕将会被使用). 在大多数情况下, 用户从来不会删除或者重命名屏幕, 因此这是不太可能的,他们意外擦出了他们自己所有的书签和库..翻译小注:"Default"应该指的屏幕的默认布局,blender最顶端菜单栏显示的
- 这是是有必要的,退出和进入编辑模式来获取关于当前被选择的网格的有关信息. 因此一些交互的编辑模式操作将会被应用当你点击3D视图时.
- 如果在游标移动进行的时候你关闭了插件然后重新开启了它, 在删除链结构时它将会出现错误并且插件可能不像期望的那样工作 - 因此不要这样做 (非常, 非常罕见的情况).翻译小注:StructRNA,链结构,他人推荐这么翻译的,应该是blender API中的属性节点相关的
外部链接
- 在blenderartists.org上的一个帖子: http://blenderartists.org/forum/showthread.php?229754-A-script-to-place-cursor-on-objects-surface-(and-some-other-functionality)
遇到的问题
- 视图设置为锁定到物体时,点击3D视图中任意位置都会报错。
- 坐标系数值精确输入时Ctrl+← Backspace,Ctrl+Delete没有清空数据,反而有确认效果。
附加图示
"Transform Extra Options" and "3D Cursor Tools"----"变换扩展选项" 和"3D游标工具" 面板,系统未翻译
视图锁定到光标是的操作效果,“锁定到光标”会自动被禁用
"Manipulate object centers only"---"仅控制物体中心点" 下图中的双向箭头
那个“黑黄色”,开启"仅控制物体中心点" ,质心点(一些情况下的吸附元素)会显示黑黄色