VirusBuster — Shanghai Gamejam 2013参赛作品

上周末(7月19)被石曦拽去上海参加了第三届Shanghai Gamejam,然后还拉上了鹏鹏。到了现场发现全是码农的天下,美术总数不超过10个人。比赛现场拉了几个人,最后组成了一个6个人的小团队,通过两天的奋战做出来了这款Virus Buster。

VirusBuster_title_small

比赛的主题是“异类”,讨论后决定做这个白细胞吞噬其他病毒的休闲类游戏。引擎使用了Unity,发现用Unity做2D游戏开发效率非常高。结合引擎内置的Physix,直接省掉了碰撞检测、物理控制等工作。另一方面,因为用的语言是C#,进一步降低了代码量。

一开始的版本是完全没有挑战的类似吃豆子感觉的东东,大家觉得太没有挑战,于是加入了障碍物、会发射子弹的敌人等等东东。觉得难度还不够,于是又增加了玩家控制的惯性,同时还加入了每吃一个病毒会加速的设计。结果到后来感觉做的这个游戏越来越像“是男人就撑30秒”了。美术这边小强为各位病毒同学加上了小脸,于是整个游戏有了一种莫名的萌感。带刺的荆棘(或者说是树枝?)会随着游戏进程不断长出来,然后还会随着水流诡异摇来摇去,等着玩家撞上去送死 囧。

到比赛结束提交最终版本的时候游戏已经有了初步的可玩性。不过因为始终只是两天搞出来的东西,游戏内容并不是很长。期待后续加入更复杂的关卡和敌人后会更加吸引人;除此之外放到iOS和android上面用陀螺仪来控制也应该会很有趣。感兴趣的童鞋到下面去下载比赛时提交的版本来试试吧。

 

点这里下载

 

 

3ds Max中导出Cal3D骨骼动画

最近要做一个3d引擎的动画性能测试,所以得为各个引擎导出骨骼动画,其中就包括使用了Cal3D的Crystal Space和OSG。其中Crystal Space本身就可以直接读取Cal3D的骨骼动画,而OSG则是得是用一个名为OsgCal的插件才可以。此外在网上还看到有人在Ogre中使用Cal3D来渲染骨骼动画。

虽然Cal3D用的也算是挺多的,但是很奇怪的是这个项目已经有两三年没有更新了。同时官方文档的描述也很简单,唯一一个官方的教程居然绝大部分篇幅是将如何在3ds max中制作骨骼动画,关键部分如何使用Cal3D插件只有简单的两段话。对于第一次使用Cal3D的人来说肯定会被它搞得一头雾水,而且各个步骤中有一个地方错了都会导致最终的骨骼动画不正确。这里把我试验正确的d导出步骤贴出来:

  1. 导出骨骼
    a. 选择骨骼根节点bip01
    b. 打开Figure Mode
    c. File->Export Cal3D Skeleton
    d. 选择所有骨骼,通常默认即可
  2. 导出材质
    a. 所有纹理必须使用tga格式
    b. 选择骨骼根节点bip01
    c. 打开Figure Mode
    d. 打开材质球,将所有材质命名为material[0], material[1]这样的名称
    e. File->Export->Cal3d Materials
    f. 选择导出的材质(每一种材质分别需要导出一次)
  3. 导出模型
    a. 打开Figure Mode
    b. 选择需要被导出的模型
    c. File->Export Cal3d Mesh
  4. 导出动作
    a. 关闭Figure Mode
    b. File->Export Cal3D Animation
    c. 选择之前导出的谷歌文件
    d. 选择骨骼,默认即可
    e. 选择导出动作的起始结束帧号,帧速和displacement(不知道有什么用?)
  5. 创建xxx.cfg文件,格式如下:

scale=0.1

skeleton=skeleton.csf

animation=running.caf

material=material.crf

注意事项:

  1. Cal3D的导出插件只能支持3ds max 8。如果你是用的9或者更高版本,虽然你已经看了不少内容但是你也只能放弃了:(
  2. 导出时必须严格按照上面所说的顺序依次导出骨骼、材质、模型和动作
  3. 最后创建的.cfg文件中等号左右不要留空格,否则在某些解析程序中(比如说OsgCal中)会导致错误。这应该算是OsgCal的一个小bug。另外OsgCal要求配置文件中scale, skeleton等的顺序不能变,否则也会出错。