使用容器进行版本管理的工作流
此文将是官方文档的实用性梳理,更多内容详见官方文档
3dsMax官网 容器 的官方文档
容器+版本管理的工作流介绍
编程中常使用版本管理器,例如Git,SVN等进行代码的管理。可以方便的进行代码备份、还原到某一历史版本。当然最重要的是通过拉取和提交等,实现多人协同。
那在进行建模时是不是也可以使用这种版本管理模式?
来看看容器!
容器的外形:
熟悉Git,SVN的朋友可能一眼就看出这些功能是什么,后续的版本管理我用常用的SVN举例
↕一样
容器相关的界面
首先说明一下容器相关内容在软件的什么地方
-
场景资源管理器
-
容器资源管理器
乍一看 容器资源管理器 和 场景资源管理器 很像,但是这里可以显示容器状态和当前锁定者等更多的信息,当场景有多个容器时方便管理
容器的使用
创建容器
有多种途径创建一个容器
- 使用选中内容创建容器
- 直接创建容器对象
容器的管理
- 在按层次排序的资源管理器中,
[层次排序] - 容器的行为类似于“组”。在容器下的资产,表示 在容器中。
将模型等内容,在 层次排序 中移入容器中,就代表资产放置在容器中
[图为一个名为Blueprints的容器] - 在文件管理器中,每一个容器会产生一个后缀为
.maxc
的文件,独立于.max
文件,在编辑时,还会产生一个.maxc.lock
文件。表示已被锁定编辑(3dsmax自己的逻辑,与SVN版本管理器的锁定等无关)
容器.Maxc
独立于.Max
文件存在。
相当于一个仅包含特定内容的 “子.max” 文件 - 通过将一个
.max
,拆解为多个.maxc
的方式,就可以实现对项目模型细致的版本管理
既然是UE分类,那用UE类比,
.max
文件就是空的父关卡,.maxc
就是承载模型的子关卡
对容器进行版本管理
在3dsmax中,你能找到多种途径管理一个容器
例如管理器中
或修改器列表中
容器“规则”
容器默认为不可访问(关闭)
,他人无法修改
多人协同应修改为任何未锁定的对象
容器创作者可以利用“规则”卷展栏指定容器继承人的访问权限的级别。
也可以通过下方按钮,单独锁定轨迹,组件等内容,详见文档
锁定和解除锁定轨迹 官方文档
容器状态
容器状态有“加载/卸载”,“打开/关闭”
- 卸载/加载
- 加载或卸载容器中的内容。
- 当卸载时,容器关闭,其内容不显示在场景中。
- 加载或卸载容器中的内容。
- 关闭/打开
- 关闭容器将防止对其内容进行任何编辑或添加操作。
- 当打开时,将在目录产生
.maxc.lock
文件。表示已被锁定
编辑(3dsmax自己的逻辑,与SVN版本管理器的锁定等无关) - 在关闭时,容器内容被视为不可编辑状态。
此时 容器本身 仍可被选择、变换、复制等等。单击容器中的对象会选择该 容器本身 。因为 容器本身 的数据在容器外的.max
中记录
- 当打开时,将在目录产生
- 关闭容器可以提高场景性能
- 关闭容器将防止对其内容进行任何编辑或添加操作。
版本管理工作流
将3dsmax的容器与SVN结合的工作流
前文提到,这是通过将一个
.max
,拆解为多个.maxc
的方式,实现对项目> 模型细致的版本管理的方式。
因此可以说,版本管理,就是对.maxc
文件的版本管理
下面将结合我的工作流,介绍一下操作和注意事项
最好根据自己或单位的实际情况,定制属于自己的工作流
我的情况:
项目使用SVN进行管理,实际运行在一台NAS中。工作时我和同事会出现同时修改制作一个模型的情况。
工作流
-
新建项目
在非版本管理目录新建.max
项目
这样做的目的在于实现分布式建模,.max
文件没有意义,只是为.maxc
提供一个操作平台,因此不需要存在于版本管理中。
项目中每个人都可以有一个自己的.max
用来编辑.maxc
的同时,也用来保存一些参考模型或者其他不需要共享的模型 -
载入容器
在.max
新建或载入.maxc
容器若载入是为了修改容器,确保
.maxc
在目录中先行获取锁定,以防止作业途中被别人提交先行修改-
载入:载入后要注意调整容器本身的位置,
-
新建:
- 确保 容器规则 开放正确的编辑权限
- 注意容器位置。
固定模型的容器的位置一般可以居中在场景中点,可以避免位置调整。
也有另一种常见情况:容器要进行复制摆放,例如汽车轮胎或小区建筑树木等。这种容器要给一个合理的“轴”,例如楼的容器放在地面,轮胎的容器放在车轴处,树安排在树根。方便后期对容器的摆放。
-
-
加载并打开容器,此时将在目录产生
.maxc.lock
文件,这是3dsmax自己的文件锁定逻辑,注意这与SVN版本管理器的锁定是不同的系统
-
编辑完成后,确保在保存前,模型在正确的容器中
-
编辑完成后,保存、关闭容器,
.maxc.lock
消失- tip:关闭容器可勾选
关闭时自动保存
.maxc.lock
,可以检测管理器。确认已无锁定者,这样别人同步后才可以编辑
- tip:关闭容器可勾选
-
在目录中使用SVN提交
.maxc
-
完成
容器使用的小贴士
-
容器外部的操作,例如移动
容器本体
位置等,不会记录在容器中。 -
容器本体
是可以复制和移动的。
场景可以存在多个相同容器,修改一个等于修改全部(概念类似于代理)。
因此,相同的模型可以只做一个容器。并在.max
中摆放,对容器的更改会反应到所有容器实例。 -
注意位图等外部引用文件的收集与版本管理。
在3dsmax中使用时,最好使用相对目录引用,因为每个人的文件夹目录是不同的。