唯一游戏攻略网

怪物猎人游戏展示文档

怪物猎人

一、主要内容:设计并开发一款简单的3D游戏,使其具备较好的可玩性和美观性。主要功能包括:基本虚拟场景的构造,路径漫游,网络模型的构造与导入,光照与纹理映射,碰撞检测,粒子系统,烟火特效,GPU特效、输入控制,信息输出等。

开发工具和环境:DirectX,HLSL,Maya,Unity 3D, Windows等。其中介绍下主要运用到的Unity3D软件:Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows和MacOSX下可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。总的来说

目标:综合图形学与游戏开发的各种知识,实现简单3D游戏的设计与开发。

二、游戏的背景:游戏的灵感来自于植物大战僵尸。这款游戏自出现以来就广受大家的热爱,但是由于在现在3D充斥的时代,似乎显得不够高端,所以我们就想来个3D版的植物大战僵尸。但是由于时间的关系,我们只能选取一关来制作游戏,并且我们就删繁就简的把豌豆荚变成主人公,至于其他的什么西瓜等攻击的东西都删去了,至于土豆,冻白菜,我们就想通过地图上的一些杂物来代替,起到相同的阻碍作用。

三游戏的趋势和发展前景:自从《阿凡达》技术之后,3D技术已经越来越普遍的再大众的眼中出现,为了一个良好的游戏体验,3D游戏的研发与发展将是将来游戏的一个巨大趋势,所以3D游戏的前景不用多说。而我们这款3D的游戏主要是针对那些劳累之后有空闲的休息时间来放松自己

的人。前期的制作会是在比较简单的基础上而之后的复杂的游戏规则以及体验有了一定的设想。一是怪物的技能变多了,变得不是只会靠近,追上你才能对你造成伤害,而是有些具有远程的攻击力,还有一些会是肉盾型的,但是肉的时间有一定的时效性,并且攻击力比较低等等;还有就是玩家的改变,玩家变得不是只有一个技能,怪物优化了,猎人再不配备更先进的武器可怎么玩,所以玩家可以再特定的地方进行换枪,而且牛逼的枪是有一定的子弹限制的,这就需要玩家自己去思考什么时候应该来换枪,什么时候还是用小米加步枪。三就是设想有多个玩家一起来对战,其实一款游戏的持久性和他的交友系统的好坏有着一定的关系,玩家对于玩一个游戏的态度很大程度上取决于他的好友有没有一起玩的,如果有,他会异常的兴奋,对于游戏店额热情会大大的增加,这个也是我们未来开发的一个方向。

四、游戏简介:怪物猎人(Monster Hunter)我们小学期用unity3d创建的一款轻松,可爱,简单操作的小游戏。游戏中玩家扮演的是怪物猎人的角色,拿着猎枪消灭从神秘洞口源源不断出来的怪物,怪物会主动的攻击主人公,每个怪物都有三滴血,需要主人公发动机枪射击三下才会死亡。并且,主人公也是只有三滴血,如果被怪物追上,碰到就会扣掉一滴血,超过三次就会死亡,所以玩家在射击怪物的时候要记得走位躲避怪物。

五、游戏操作:上下左右控制行走的方向,空格键发射机枪,鼠标改变人的朝向。相信玩过泡泡堂的同学都对这个键位的设置异常的熟悉,这是大部分同学的童年记忆,而且键位安排相当的合理,操作起来十分方便,没有什么难度。但考虑到我们是3D的游戏,所以我们添加了一个用鼠标控制主人公的朝向,以起到较为完整的效果,但是这个设置又相当的不方便。因为我们在玩的时候一般的习惯是右手上线左右控制方向,左手按空格键来发射机枪。如果多了一个鼠标控制人物的方向就会变得会麻烦,相当的不方便。但是我们现在也没有想到更好的办法来解决这个问题。还有进行碰撞检测,在整个场景中有许多的杂物,有着机械手臂,螺丝钉,还有玩具拱桥等等;这些物体的存在是使得整个游戏更富有可玩性,障碍物出了外观可以欣赏之外,并且在游戏进行中起到了意想不到的效果。如果玩家正被多只怪物追击,慌不择路,他的背后正是一个大大的衣柜,那该是多么大的绝望;不仅如此,玩家也可以利用

这些障碍物进行一些智商上的碾压电脑,比如在拱形桥下绕来绕去,当怪物碰到墙的时候是有一定的反应时间的,而玩家可以提前预知到哪里有障碍物,可以利用这些做一些手脚。

六、游戏的详细设计:对于游戏的开发,我觉得每个模块都是一个部分一个部分完成的,并且不断的测试,不断的完善。

首先应该对游戏的界面部分进行设计:

我们的游戏场景是在一个小房间里,里面有着创造怪物的神秘黑洞,横七竖八的各种玩具拱桥,大大的衣柜抽以及屉散落的玩具机器手臂和螺丝钉等等。整体怪物和猎人的设计都是以玩具车为模型,就行人与真车的区别。整个场景的灯光是比较柔和,略像黑紫色,给人一种舒适的感觉。

然后就是对游戏控件模块的设计:

总共需要创建的两大模块就是怪物和猎人,其中每个怪物和猎人都有自己的三种状态:休息,受伤和死亡。这三种都有各自的音效和动画。其中它们的主要代码如下:

摄像机跟随:

void Update () { Vector3 t_position = m_player.position + new

Vector3 (0, 6.4f, -4); //camera 跟随人物运动 怪物的控制函数申明:

private GameObject m_player; private NavMeshAgent m_nav; private Animator m_amin;//敌人动画 public int m_blood = 3;//敌人血量 private ParticleSystem m_hitParticle; //粒子效果 private float m_time;//时间计时

public void OnDamage(Vector3 hitPoint)//对敌人的攻击计算

void CreateEnemy()

{ GameObject.Instantiate (m_enemy, transform.position,

transform.rotation);

} //敌人的产生

主人公的控制函数声明:

private Animator m_anim; // 储存动画

public float playerSpeed; //角色移动速度 private SkinnedMeshRenderer m_skine; //角色颜色 private Light m_light; //射击灯光特效 private ParticleSystem m_particle; //粒子特效 private LineRenderer m_lineRender; //射线效果 private int m_layer;

主要的射击代码如下:

private void Shoot()

{ m_light.enabled = true; m_particle.Play (); m_lineRender.enabled = true; //发射lineRender m_lineRender.SetPosition (0,m_lineRender.transform.position); //起始位置

Ray t_ray = new Ray (m_lineRender.transform.position,

transform.forward);

RaycastHit t_hit; if(Physics.Raycast(t_ray,out t_hit)) { m_lineRender.SetPosition(1,t_hit.point); //射中Enemy,调用EnemyControl里的OnDamage函数 if(t_hit.transform.tag == TAG.enemy) {

t_hit.transform.gameObject.GetComponent<enemycontrol>().OnDamage(t_hit.point);

}

最后就是猎人和怪物之间的互动:怪物有三滴血,这是我们经过研究得出的数值。三滴血不会太少,如果设置成一滴血的话,会显得太简单,看过去就是一枪打死一坨怪物的感觉。如果太多血,比如10滴血,每个怪我要射击10下,实在是太繁琐了,要是没有点耐心的人根本玩不下去,更有悖这个游戏轻松,简易的创作理念。而人物也是三滴血,这个也是有讲究的。人物的血量太少显然不合理,那为什么不是4滴血,5滴血,正式因为这个游戏本身不难,可以说是相当的简单,只要会操作一点键盘的同学其实挺难被打到三次的,除非到后期怪物的数量增加,其实这个游戏到后期也挺难的,因为我们从设计出来就知道这是一款短时间的游戏,具有一定的时效性,原因是这个游戏的操作模式过于单一,没有玩家所需要的惊喜。所以三滴血其实是一个很大的保障了,并不需要更多的血量来给玩家支持。 }