2009年5月23日星期六

city engine lite最新进展

上一篇日志里提到了语法解释器已经完成,cga语句已经可以解释成cga命令。
现在主要的任务是将cga命令翻译成maya命令。
目前已经遇到的困难:
1、Comp命令如何实现?
在CGA中,shape是scope的一个属性,在maya里shape节点是Transform节点的子节点,很相似。不同的是,对scope执行Comp可以产生低维度的scope,低维度的shape也在这一过程中产生。maya的shape,这里说多边形物体,分解之后,产生单一的多边形面,也仍然是3D的。我在实现中使用的是旋转标准平面使之符合物体面的方法,这样只用物体坐标系的X和Y就可以表示2D面。另一种方法,不旋转面,在可以预见的后续操作中,会很麻烦,分割scope的时候就必须考虑法线、支点、基准边的问题。现在这些问题就要在Comp命令里考虑。

2、贴图坐标如何处理?
这也是个麻烦的东西,现在还没有什么头绪。应该是随scope大小和位置的变化的。

3、Roof,Occ,Snap
Roof要等Comp完成后才有点眉目。Occ和Snap现在也没有什么头绪,求交点和交线看来是少不了了。

看看目前的完成的部分:
这是3条CGA规则:

1:default~S(9,10,2) Subdiv(Y,4,4,2){wall|window|Subdiv(X,r(1),r(1),r(1)){tile|tile|tile}}:1
2:window~T(0,0,2) newwin
3:newwin~Subdiv(X,r(1),r(1)){lwin|rwin}


CGAgrammar解释后产生的图形,简单了点,下一次试试更复杂的规则:

2009年5月12日星期二

最新进展 09年5月12日凌晨

自从去年10月份写了2篇日志后,这个blog就暂时没有动静了。
这段时间里,完成了几样东西:
1、杂兵的rig基本完成,没有特别惊人的技术,只用了一般的ikfk。完成了一个ikfk转换的脚本,还有一个双向控制的脚本。
2、测试了一下city scape,很强大,但是no crk。另外,它的模型是模型库里的固定模型,不能随机化(也许是我不知道)。
3、测试了一下city engine,更强大,但是我的机子跑不动,单纯的创建几个模型还可以,一个城市的模型就彻底内存不够了,它和maya通过fbx交换数据,fbx本身也是个很慢很吃内存的冬冬。
4、从去年就在打算的city engine lite已经完成了最重要的部分,语法解释器。已开始用antlr,最后发现实在不好写语法规则。最后还是纯手写的语法解释器,里面的数学运算和逻辑运算都交给python。比如T(math.cos(height),1,2)。
如何和cityengine来比的话,这只是万里长征的第一步,cityengine可以创建创建城市街道的样式,我的cityenginelite目前还只是解释语法。
后续的工作好多~~

2008年10月5日星期日

回顾昨天,展望明天

对解夏的mv进行重制这个想法大概是从2007年9月开始的。想法的最早的来源是07年七月去北京的时候,在同学的蛊惑之下去了玩了一天,无意中看到了05年itcartoons制作的《解夏》的mv,flash动画版。回家之后仔细的观看了一边,感觉故事不错,制作也不错,但是对人物的设定不是很赞同,画面也不够明亮(也许要表现的内容本来就很灰暗)。另一个感觉就是我可以做一个更漂亮的3d动画版,研究3d动画技术这么久了,却一直没有什么像样的作品,正好借这个机会做一个。

真正着手开始制作大概已经是07年10月份了吧,先把原做的flash给拆掉,弄出每个镜头的序列,这个工作到现在也没有做完,大概只拆到一半。50多的镜头,5000多frame。

拆flash和第一个分镜头的制作差不多是同时开始的,到目前为止,一共做好3个镜头,人物做好一个(不过动画的时候才发现很多地方不合格,又要重制),还有一个人物没有做setup。
人物一共有7个,5种形象。
08年初有放下几个月没有动。

在制作中发现有很多东西非常难实现,第三个镜头中有一个水滴的镜头,制作的时候才发现流体无法模拟如此平静的水面。最后只能用粒子来模拟,效果也不能让人满意。

先写到这里。

解夏mv项目的第一篇日志

这家伙很懒,什么都没有留下