Terrain Cliff Problem | 地形峭壁问题

传统高度图地形的制作方式不可避免会遇到峭壁拉伸严重的问题,另一方面峭壁要有分层的感觉。常见的解决方法主要有两种:一种是贴面,用石头的模型摆成悬崖,但是人力成本太高;另一种是用triplanar的uv,但是贴图采样次数过多。 一些新的程序化的方式包括:stochastic triplanar(Far Cry5),拆峭壁减少triplanar的贴图采样次数;启发式贴面Heruistic Quilting(Dauntless),程序化摆贴面模型,Ghost Recon目测大概也是这么做的。 不过triplanar仍然采样次数过多;而贴面意味着drawcall过多的问题。而要达到峭壁也有层积的效果,这里提出对峭壁mesh自动展UV的方法。 1. 建模 没什么好说的,houdini terrain程序化生成一下就好了,这里选择了一种大峡谷的地貌。方法就是经典的多层terrace然后e...
Read More

[Translate] Procedural Islands of ‘Dauntless’ | [译] “无畏”中的程序化生成岛屿

来自GDC2018的一个Talk:Technical Artist Bootcamp Procedural Islands of 'Dauntless' 主讲者两位, Michael Trottier,之前在Bioware做Artist和TA; Mykola Konyk,之前在Side Effect做工程师开发Houdini Phoenix Labs是Vancouver的一个工作室 关卡和原画是怎么一个需求,浮空岛。 下面这些是程序化生成的 1. UE-Houdini Pipeline UE4导入Houdini有很多自定参数,和Biomes相关的,比如用哪些植被哪些贴图等等;这些参数直接存了一个JSON格式放进houdini里用Python解析; Houdini倒回UE4会直接生成Actor。 2. 地形体量生成 最开...
Read More

[Translate] Procedural World Generation of ‘Far Cry 5’ | [译]孤岛惊魂5中的程序化场景生成

来自GDC2018的Talk:Procedural World Generation of 'Far Cry 5' 主讲者 Etienne Carrier,法国人,Ubisoft Montreal的TA,之前在Frima Studio担任TA. 主要展示的是FarCry引擎DUNIA2中场景编辑流程和其中Houdini制作方法. 个人比较有用的是pipeline方法和细讲的两个工具:Cliff Tool和Biomes Tool 1.工作流程 工作是以基于高度图的Terrain为基础的,在其上可以制作水域/道路/栅栏/峭壁/植被/雾气/世界地图 美术的一般工作流程是: 1. 生成Terrain地形 2. 一键生成峭壁 3. 画一下水的范围然后生成 4. 刷biomes,biomes是一套贴图/植被的组合 5. 之后放路放电线杆放房子 6. 拜访资源,刷b...
Read More

Memo of some HScript and VEX Variables| 一些HSript Expression和VEX变量备忘整理

Houdini中代码主要有三种语言:Python,HSript,VEX。HScript有点像MEL,Maya里的老祖宗语言;Python是最近支持的,可能有点像PyMel这种。这三种语言的复杂关系可以看这个科普帖子 Python和HScript都可以写Expression的,笔者见到的还是用HSript比较多,Expression可以写在所有node的channel里,感觉主要是起控制作用的。VEX是写在wrangler这种node里的,语法类似C++,在Obj这个context里主要是用来建模用的。其它Contex里好像还有很多用处,笔者是不太懂了。目前主要用的是Houdini的建模功能。。。。 看教程的时候,经常见到写Expression时候信手拈来一堆HScript变量,但是又很难查到定义,用起来的时候又经常记不住,在这里总结一下和Vex里类似的变量吧。 ...
Read More

Mesh Vertex Animation In Unity | Unity中顶点动画

最后的效果,左为顶点shader,右为蒙皮 10根骨骼 有些远景动画、小动画,用骨骼蒙皮来做太费了。一个好的办法是用顶点动画。比如在顽皮狗GDC的分享Technical Art Techniques of Naughty Dog:Vertex Shaders and Beyond用这种方法模拟鸟的人群的运动。 Houdini集成了Game Development Tools里可以做到导出顶点动画,直接看这篇教程就好。Houdini官方做了Game Development Toolset的工具包,直接可以用的,在Github上有。包含了Houdini中的一些节点和Unity的shader。 制作流程 安装 首先要安装Houdini Game Development Toolset,看上面github即可不必多说。 导入 fbx导入houdini,在out窗口内找到Ver...
Read More

Call Houdini Engine in Unity | Unity中调用Houdini Engine

在Unity中调用Houdini Engine是可以的,不过如果直接拖进场景,然后bake,其实不太好管理的。mesh叫啥不太好控制。但是如果用代码调用Houdini Engine,就可以进行一系列自动化操作,而且不用担心手动操作管理混乱的问题。 HDA可以直接拖进场景。拖进去以后有一个HoudiniParms的组件,组件里显示的就是HDA的面板。 实例化HDA组件 用代码调用的话可以这样: HoudiniAssetUtility.instantiateAsset(hdapath); 其中,hdapath是hda的路径这就相当于把HDA拖进场景了。然后可以用GameObject.FindObjectOfType找到HoudiniParms类型的组件,命名为assetparm,我们之后修改参数也是改它。 有几种参数:字符串,float,int/...
Read More