3D游戏设计

2024-09-29 版权声明 我要投稿

3D游戏设计

3D游戏设计 篇1

课程名称:3D游戏设计基础 课程学分:3学分

课程学时:48学时(12周)课程安排:第3学期 课程性质:专业必修课

适用对象:动画专业本科学生

一、教学目的与任务:

本课程目的在于培养学生掌握3D游戏的设计基本技能,利用所学的知识能够进行3D游戏的设计与制作。

二、教学原则、模式:

1.理论与实践相结合

2.个别辅导与集体讲评相结合

三、教学要求及方法:

该课程为3D游戏的设计,主要通过对三维软件maya的学习,进行游戏场景的设定与制作,游戏角色动作的设定与制作,以老师带领学生进行相关实例训练为主要的教学方式。

四、教学内容与课时安排:

第一章 Maya基本界面和工具的认识(4课时)

1.Maya操作界面认识,包括对操作窗口、工具架、状态栏、时间栏、属性栏等区域的认。

2.Maya基本工具介绍,包括移动、旋转、缩放等基本工具的操作。教学重点: 对Maya软件有一个基本具体的认识,重点掌握Maya的基本操作,如对物体的移动、旋转、缩放等。

第二章 利用Maya多边形建模方法创建游戏角色(8课时)

1.多边形建模概述及其特点 2.多边形建模的基本操作讲解 3.男性游戏人物头像建模练习教学重点:

熟练掌握多边形建模的特性和方法,合理高效地进行多边形模型的布线。

第三章 利用Maya曲面建模方法创建游戏角色(4课时)

1.Nurbs曲面建模介绍

2.利用曲线进行简单的建模,如酒杯、茶壶的创建 3.利用曲面建模进行游戏人物头发创建 教学重点:

掌握Nurbs曲面建模的特性和方法,能恰当地选择相应的建模方法。重点掌握CV曲线的应用。

第四章 利用Maya细分建模方法进行游戏角色创作(4课时)

1.细分建模介绍

2.利用细分建模进行游戏人物角色创建 教学重点: 掌握细分建模的特性以及其和其他两种建模方法的差异。

第五章 游戏角色模型UV展开(4课时)

1.认识模型的UV 2.利用简单的正方体演示UV操作以及作用 3.对创建好的人物头像进行UV展开 教学重点: 对UV概念的理解,对UV展开的操作。

第六章 游戏角色与场景材质贴图讲解(4课时)

1. Maya基本材质的类型 2. Maya基本材质的属性

3.Maya中的贴图类型及其运用 4.为一处简单的场景添加材质贴图 5. 玻璃材质的讲解 教学重点: 对各种基本材质的理解和运用,对各种物体材质属性的认识,各种材质贴图节点的掌握。

第六章 游戏场景灯光渲染讲解(4课时)

1.Maya灯光类型及其属性的讲解 2.Maya基本灯光的具体设定操作讲解 3.为场景设定简单的照明效果 教学重点:

对灯光属性的认识和调控以及总体光效的把握。

第七章 游戏角色骨骼绑定与装配(8课时)

1.Maya骨骼的基本介绍和演示 2.为人物模型创建骨骼

3.骨骼命民的方法和注意事项 4.为骨骼装配控制器 教学重点:

骨骼方向的掌握、控制器装配的子父关系

第八章 游戏角色角色动作设定(8课时)

1.简单的动作演示

2.卡通人物循环走动作设定 3.面部表情动画设定

4.游戏角色常用动作设定制作 教学重点: 动作的流畅性以及动作的夸张性,面部表情的精确把握

四、实践训练(作业安排):

1.创建一个古代狩猎的游戏场景。

2、创建一个古代狩猎员的游戏角色人物。

《电脑设计(3D)》考试大纲

一、考试对象

修完课程所规定内容的美术系动画专业学生。

二、考试目的

考核学生对《电脑设计(3D)》的基本知识和基本方法的掌握程度和运用能力。

一、考试内容和要求

Maya基本工具和命令的操作,Maya模型的创建方法,灯光材质贴图的具体应用和操作,Maya动画模块的相关操作。

四、考试方法和考试时间

本课程为考查,五、评价标准

3D游戏设计 篇2

1 依托于教学内容构造游戏故事, 提供虚拟学习空间。

任何教育教学活动都有一定的教学目标, 故事剧本的设计必须依托于教学目标并且围绕教学内容来设计[1]。只注重游戏设计, 忽略教学内容的游戏故事将变得毫无意义。在此以小学四年级数学游戏故事设计来说明:主人公小拉克从数字森林 (第一章大数的认识) 出发, 通过与森林中怪物的搏斗, 成功进入泥泞沼泽 (第二章角的度量) , 再到天梯层 (第三章三位数乘两位数) , 秘图宫 (第四章平行四边形和梯形) , 奇货码头 (第五章除数是两位数的除法) , 海上乐园 (第六章统计) , 秘林小镇 (第七章数学广角) , 最后回到秘林魔堡 (第八章总复习) 。整个故事情节设置完全依托教学内容, 并且通过对教学内容的提炼与总结, 形成游戏故事中的剧情。

2 发挥动漫角色的魅力, 通过角色造型增强教育游戏的吸引力。

任何一款成功的教育游戏都有一个引人制胜的故事情节和一些令人着迷的虚拟角色。“教”“娱”平衡的角色设计是教育游戏设计的要解决的关键问题之一[2]。动漫游戏中的角色设计就是要在促进教学目标达成的基础上, 保证角色的游戏特性, 既能引起学生的兴趣, 被他们所喜爱, 并能使学生在角色的成长中体验到快乐。动漫教育游戏中角色设计, 主要包括学生角色、被大多数教育游戏所忽略的教师形象、以及故事剧本中所涉及到的其他角色。无论哪种角色, 设计者应该首先对其进行宏观上的定位, 确定赋予该角色哪些教育功能, 以及怎样用游戏语言来体现这些功能。在根据宏观定位, 细化具体角色的各项特征, 比如角色基本信息、外貌特征、性格、目标, 角色之间的关系, 成长、语言特点等等, 并将这些特征用文字进行描述。紧接着到技术定位, 为游戏而设计的角色, 就要考虑到要在一定的技术范围内制作这个角色, 另外, 还要考虑到角色的各个转面设计。最后在到美术设计阶段, 此阶段所绘制的草图要与教学及游戏设计人员进行反复商讨改进, 最终确定角色造型。

一个好的角色造型设计的成功与否, 直接而深切的影响着作品的生命力和魅力。角色造型设计[3], 一种思路是可以运用原画演绎, 在现实生活中寻找角色的素材, 接着对着素材画素描或速写, 在画的过程中注意对比, 找出角色的“第一特征”, 再加上你的想象, 最后整理即可完成。另一种思路是可以运用形象拼接, 比如人的身体+动物或其他生物的头和其他部分, 或者几种动物的特征拼接起来, 然后发挥充分想象力来设计。

3 探索与任务相结合, 提供更加丰富的交互式体验。

“探索”是一个基于问题情境而设计的学习任务, 其独特之处在于将虚拟世界与现实世界的学习活动相结合, 将课程知识的学习与社会责任感的建立以及反思能力的培养相结合。“任务” (mission) , 它更加贴近游戏的故事情节、挑战性, 娱乐性更强。一方面能充分发挥虚拟世界的“仿真”特性来增强儿童的投入程度以及提高学习体验的临场感, 另一方面又能通过现实世界中的活动防止儿童因过度沉迷于虚拟世界造成虚幻感, 通过创设情境点, 使儿童能够清楚地认识到虚拟现实是一个“虚拟的仿真世界”, 是探究学习问题的虚拟实验室。动漫教育游戏设计可以借鉴大型网络游戏, 特别是角色扮演类和探险类游戏的一贯做法, 通过“探险”和角色扮演的的形式来呈现学习活动[4]。

3D动漫教育游戏中的交互式设计, 是至关重要的。当代学生已经不再满足于使用常规输入设备 (如键盘、鼠标和触摸屏) 的简单交互, 更加注重利用多个通道以自然、协作的方式进行多角色之间的情感交流。教育游戏的设计与制作是否能有效发挥其作用, 关键在于交互方式的灵活设计, 而交互式设计不只要在软件程序设计上下功夫, 通过声音与动漫游戏硬件的组合, 来达到共同捕捉学习者交互式体验的设计也是很好的选择。

综上所述, 结合小学课程体系和教学设计, 应用3D动漫的角色、造型、场景、交互设计方法来创作符合小学生心理特征的动漫教学游戏, 使动漫在教学过程中发挥其更大的魅力。真正变“要我学”为“我要学”。

摘要:三维是动漫技术的主流, 为现代动漫产业的发展提供了无限发展的可能。而教育游戏在信息时代教育发展中起着至关重要的作用。通过分析游戏故事、角色、造型、交互设计的理论, 提出教育游戏设计与3D动漫应用策略, 以期对国内教育游戏研究者有所借鉴与助益。

关键词:3D,动漫,教育游戏,角色,造型,交互设计

参考文献

[1]姚忠礼.动漫剧本创作[M].上海:上海人民美术出版社, 2009.

[2]陈慕如.浅谈动漫角色造型的设计技巧[J].清远职业技术学院学报, 2010 (3) .

[3]刘新阳, 马池珠.多用户虚拟环境教育游戏的设计与应用——对Quest Atlantis项目的分析与思考[J].现代教育技术, 2010 (1) .

3D游戏设计 篇3

关键词:游戏;建模;Unity3D

中图分类号:G434 文献标志码:A 文章编号:1673-8454(2016)08-0068-04

一、引言

学生是有个性差异的,课堂教学无法满足每个学生的学习需求,但通过教育游戏却可以实现因材施教。教育游戏可将游戏任务按照难易程度划分等级,使每个学生可以根据自己的学习情况选择适合的等级,制定自己的学习进度,自主学习能力也得到了提升[1]。此外,教育游戏还具有很强的挑战性、互动性和趣味性,可以激发学生强烈的求知欲和学习动机[2]。学生利用教育游戏进行学习,不仅可以巩固已学的知识,拓展知识面,还能提高想象力。教育游戏还有助于培养学生正确的人生观和价值观。

文章利用3ds Max建立三维游戏场景和道具,以Unity3D为开发环境,JavaScript为开发语言设计并实现了一个中学概率学习游戏。让学生体验游戏刺激的同时,可以通过回答问题来学习、巩固概率知识,使学习不再枯燥,让学生快乐学习,爱上学习,提高学习效率。

二、游戏开发流程

首先,根据学习目标设计学习内容和游戏流程,接着利用3ds Max建立模型、为模型赋予材质;然后将文件导入Unity3D中进行游戏的开发,内容包括碰撞检测、动画设置、添加特效、布置灯光、添加音乐、人机交互设置六大部分;最后进行优化系统,导出为可执行文件。游戏的开发流程如图1所示。

三、游戏设计与实现

1.设计思想

此游戏属于密室解谜类游戏,游戏场景的部分结构图如图2所示。整个密室由一个个小密室组合而成。当玩家进入游戏后,玩家就会位于如图2所示的位置,玩家想要离开密室,必须打开门。当玩家向门走去的时候,就会触发一个触发器,弹出一道数学概率问题。第一个问题是相当简单的,凡是学过中学概率的都可以解决,所以当第一个问题回答错误时,会弹出失败场景,并提示玩家要先去学习中学数学概率的内容,再来玩这个游戏。当第一个问题回答正确,密室的门会自动打开,玩家可以经过走廊进入第二个密室。从第二个密室开始,每道关口除了有一个正门外还有一个侧门。当玩家走向第二个密室主门时,会弹出第二个问题,这个问题比第一个问题略难。当这个问题回答正确,主门会自动打开;如果回答错误,侧道的门会打开,侧道也会有一些关于概率的问题,这些问题是主门问题的分解问题,帮助玩家理解主门的问题。游戏的时间限制为25分钟,单个问题没有时间限制,这种设置给了玩家相对自由的空间。整个游戏场景共有6个主道以及6个侧道,直到玩家开启最后一个密室的门,游戏会结束,并弹出胜利的场景。

2.建模

(1)建模前的相关设置

为了使3ds Max制作的模型与现实世界相符合,需要对3ds Max进行必要的单位设置。将“系统单位”和“显示单位”都设置为厘米。通过这样的设置,也可以将模型导入Unity3D中,这样进行后期游戏开发时更容易操作[3]。

(2)密室场景建模

密室建模采用“多边形建模”的方法。密室分大厅和走廊两个部分。整个密室由若干个大厅和走廊组成,密室大厅的统一规格是:高600cm,长1200cm,宽800cm,密室走廊的统一规格为长400cm,宽1000cm,高400cm。

①密室墙体建模

密室大厅的原型是一个高600cm、长1200cm、宽800cm的长方体,点击工具栏的“创建”面板,选择“标准基本体”中的“长方体”并将其命名为“box1”,设置其长、宽、高分别为1200cm、800cm、600cm。然后将box1转换成“可编辑多边形”,选择“多边形”子集中的“翻转”选项,将box1的法线方向进行反转,使大厅的内墙可见。

密室走廊的原型是一个长400cm、宽1000cm、高400cm的长方体,建立的步骤与密室大厅完全相同。建立后将其命名为“box2”。

②门的建模

要用门将大厅和走廊隔离开来。很多做法可以实现这个目的,笔者用的是“超级布尔”。将box1和box2按如图3的方式进行摆放。选择box1,在3ds Max的“复合对象”面板下选择“超级布尔”。选择“参数”中的“差集”和“盖印”,选择“拾取布尔对象”中的“开始拾取”,点击box2,就会得到一个门的轮廓,效果如图4所示。门的轮廓已经完成,接下来就需要制作门了。门的原型是一个长400cm、高400cm、宽20cm的长方体,按照box1的建立步骤创建一个长400cm、高400cm、宽20cm的长方体,将其命名为“door”。将“door”摆放到box1和box2的交界处。

接着通过上述方法完成其他大厅及走廊的创建,并将大厅和走廊用门隔绝开来,然后选择box1,选择“修改”面板下的“附加”命令,将其他大厅和走廊与box1组合在一起,就完成了整个密室的建模。最终效果如图5所示。

(3)道具建模

虽然游戏场景建立好了,但当玩家位于游戏场景中时会感觉略显空旷,而且为了给密室营造一种诡异、紧张的氛围,需要建立一些火盆摆放在主门的两边。火盆的制作主要分为火盆和支架两个部分。

①火盆的制作

点击工具栏的“创建”选项,选择“标准基本体”中的“圆柱体”,并将其命名为“fire”。将fire的半径设为40cm,高度设为20cm,边数设为8并转化成可编辑多边形。选择fire上边的面,将其放大并选择“插入”选项,给上边的面插入一个新的面。选择新面,选择使用“挤出”,将新面向下拉,然后选择“切割”命令,对新面的对顶点进行切割,共需要切割四次,中间会形成一个新的点。进入“点”子集,使用“选择并移动”命令,将该点微微拉起。这样就完成了火盆的制作。

②支架的制作

支架的做法相对简单,同box1的建立方法一样,建立一个长20cm、宽20cm、高180cm的长方体,并将“高度分段”设为2,将其命名为“support”。将新建的长方体转换为可编辑多边形,进入“点”子集,选择“选择并移动”命令,将support的中间四个点向下拉,将底面的四个点向外拉,支架的模型就建立完成了。为了节约电脑资源,可以将看不见的底面删除。按照这种方法,再建立3个support,并按照图6所示将四个支架与火盆组合在一起。至此,火盆的模型就完成了。

3.贴图的制作

搜集贴图,通过PS加以修改。将修改好的贴图导入3ds Max赋给游戏场景中的内墙和游戏道具。打开3ds Max工具栏的“材质编辑器”,将贴图赋予空白的材质球,选择“将材质指定给选定对象”选项,即可进行模型的贴图。

4.模型的导入

将建立好的游戏场景及其贴图放在Unity3D游戏的资源文件夹下。当把游戏场景拉入Unity3D的开发界面中时,会发现游戏场景上的贴图不见了。这时,只需要在游戏场景的文件里找到那几个材质球,将其重新赋予场景中的对象,就完成了游戏场景和道具的导入。

5.游戏各模块的实现

(1)灯光系统

由于Unity3D无法识别3ds Max的灯光,所以需要在Unity3D建立灯光系统。本设计的灯光只用到“点光源”,使用这种光源,是为了模仿火光。

在网格层次面板选择“创建”按钮,创建一个点光源,将其重命名为“firelight”,在firelight的检视面板里修改相关属性。将firelight的“范围”属性设为15,“强度”属性设为6,颜色调整为与火光相同的颜色。

(2)动画

游戏中有门自动打开的动画。选择工具栏的“窗口”选项中的“动画”,在弹出的对话框中,点击红色按钮开始创建动画,并先将要创建的动画进行保存。在0:00的位置添加关键帧,将时间轴移动到2:00的位置,将游戏场景中的门向下拉,并添加关键帧。这样一个门的开门动画就做好了。按照以上做法,给每个门创建开门动画。

(3)特效

本设计的特效是“火”,该特效是用粒子系统制作而成的。在网格层次面板选择“创建”按钮,创建一个粒子系统,将其重命名为“fire”。在fire的检视面板里修改相关属性。粒子系统相关属性修改完后,就要为火焰贴上材质,使其更加真实。在工程面板里创建一个材质,将其命名为“firepicture”。在其检视面板里将“渲染”设置为“FX”,这样当把火焰的贴图赋给“fire”时,可以去掉贴图黑色的部分。然后把“firepicture”赋给粒子动画,这样本设计的特效就制作完成了。

(4)人机交互

本设计使用的是Unity3D自带的人物,点击工具栏的“资源”选项,选择导入“Character Controller”,就完成了游戏人物的导入。将导入的人物拖入到游戏场景里,就可以用W、S、A、D控制人物上下左右移动。

(5)音乐

系统需添加三种声效。 首先需要为整个游戏添加背景音乐,选择主相机,在工具栏上点击“组件”选项,在“Audio”选项下面选择“Audio Source”选项,将导入的背景音乐拖给主相机,在检视面板里点击“循环”选项,这样背景音乐就会循环播放,第一种声效添加完毕。其次,为了营造紧张的氛围,需要给游戏人物添加心跳声,与添加背景音乐的方法一样,操作完毕之后,在游戏里就可以听到人物的心跳声。最后,需要为门添加开门声,但这个需要用代码实现。按照前面的方法添加完音效后,需要给门添加如下代码:

If(doorIsOpen==true)

{Door.audio.PlayOneShot(doorOpenSound);}

这样,所有的音效就全部添加完成了。

(6)碰撞与触发

为了避免人物穿墙而过等非自然现象的出现,需要给游戏添加碰撞。为了让人接近门的时候可以自动弹出概率题目,需要添加触发器。

①人与建筑物的碰撞

点击游戏场景的墙体,点击工具栏的“组件”按钮,选择“物理”面板下的Mesh碰撞器。这样游戏人物就可以站在游戏场景里,而不会掉下去。

②人与门的碰撞

同给墙体添加碰撞体的步骤一样,给门添加一Box碰撞器,使人物避免穿过门到达另一个密室。

③人与火盆的碰撞

给火盆添加Box碰撞器,步骤同上,使人物避免穿过火盆架。

④触发器

为了实现人走近门时自动弹出题目,需要在门的前面放一个空物体,给空物体添加Box碰撞,在空物体的检视面板里将“IS Trigger”打上对勾。弹出题目的相关代码如下:

function OnGUI()

{if(WindowSwitch==true)

{GUI.skin=im;

GUI.BeginGroup(menuAreaNormalized);

windowRect=GUI.Window(0, windowRect,WindowContain,“题目”);

GUI.EndGroup();}}

function WindowContain(windowID:int)

{ GUI.Label(Rect(0,30,300,300),“5本书分给甲乙丙三个人,按一个人一本,另两个人各两本,有多少种不同的分法。”);

If(GUI.Button(Rect(0,180,80,60),“120”))

{WindowSwitch=false;Destroy(this.gameObject);}

If(GUI.Button(Rect(220,180,80,60),“30”))

{WindowSwitch=false;Destroy(this.gameObject);}

If(GUI.Button(Rect(0,240,80,60),“90”))

{box3.flag2=1;Destroy(this.gameObject);}

If(GUI.Button(Rect(220,240,80,60),“60”))

{WindowSwitch=false;Destroy(this.gameObject);}

GUI.DragWindow();

}

四、游戏的优化与发布

1.游戏优化

游戏场景中含有大量的点灯光,会对游戏的性能产生较大的影响。使用光照贴图技术,将光线效果渲染成贴图可以节约大量的电脑资源[4]。方法为:点击工具栏的“窗体”按钮,选择“光照贴图”选项,点击“烘焙”对当前游戏场景进行烘焙。

2.发布

在工具栏的“编辑”面板下,选择“工程设置”面板下的“玩家”选项,对游戏的图标和名称进行设置。点击“文件”面板下的“工程设置”选项,从工程面板里将游戏的几个场景文件拖入到“工程设置”的窗口里。点击“建立”按钮,就会生成一个可执行文件,这样就完成了游戏的发布。游戏胜利时的场景如图7所示,答题时的场景如图8所示。

五、结束语

文章设计并实现了一个中学数学概率的教育游戏,帮助学生在娱乐中进行学习,让学生轻松学习、爱上学习、快乐学习。系统基本实现了需求分析中的要求,但由于时间仓促,系统的功能还可以在后续研究中进一步完善,如:可以在游戏中添加一些障碍物或机关,以增加游戏的趣味性;可以在游戏场景进行切换时添加一些过度动画,使游戏更加美观。

参考文献:

[1]冯威.数学游戏与高中数学教育研究[D].大连:辽宁师范大学,2012.

[2]王倩,赵玉清.教育游戏在小学数学教学中的应用探析[J].软件导刊,2013,12(3):3-8.

[3]Li Wang. Researching of the three-dimensional virtual simulation campus scenes construction technology[J].The Open Cybernetics & Systemic Journal,2015(Volume9):1056-1057.

[4]Li Wang.Construction of the three-dimensional virtual campus scenes Problems and Solutions[J].The Open Cybernetics & Systemic Journal,2015(Volume9):1132-1133.

[5]宣雨松.Unity3D游戏开发[M].北京:人民邮电出版社,2012:91-13.

[6]谢亮.数学教育游戏与数学教学[D].广州:广州大学,2008.

3d游戏人物建模 篇4

本人研究LOW POLY时间不长,到现在也就做过一个象样的东西。但想献自己一点微薄之力,写点东西,有不对的地方希望大家多包涵。尽管好多人说游戏公司对人物的要求比较高,但我们也不是说不能去尝试嘛~~ 这个模型是《FATE》上的SABER的女仆装,纯粹练习用,三视图是自己画的,不是很标准,不过可以把握比例~

BOX了,大家应该都会,主要就是讲讲自己的思路了~~(有不妥之处请更正了)把左半边删除掉,加个symmitry工具。

选中边用conect工具可以加线。配合shift键+移动就可以拉面出来了~~ 加线之后进行调点,大家可以在左试图和正视图里依靠参考图来调整。我只给出了透视的效果,大家一定要多切换到透视里来观察比例和效果,不要单纯依赖图纸。拉出头部和手臂,操作过程就是在重复的选边并拉出。注意透视的效果就可以了 用inset的工具就可以挤出胸部造型了: alt+x可以切换为半透明模式。把腿也弄出来吧 这里需要这样处理是因为考虑到动画的原因,两根线保证腿在弯曲的时候膝盖不会变形。继续发: ,用conect命令加线 肩膀也需要加线 ,需要加条线:

脚的制作过程要注意透视的造型,因为不会单独做脚,而是和鞋子一起做出来的,所以需要多考虑布线

,选这些面进行extrude.加线,注意正反都要像图中那样布,以便于拉出手指 ,注意在调点过程中要多切换到透视图里找感觉,差不多这样就可以了.接下来就是头部了,算是重头戏了吧

看起来有点外星人的感觉很吓人,没事慢慢就好了~~~~

脸上的线用文字很难表达,我画了一张小图,大家可以参考,基本上需要加线的地方我都用红色涂了:

嘴巴需要两条线来定型,到末端就可以处理成三角面了。其实这里一条线也是可以的,如果不考虑面数问题纯粹练习的画还是尽量做好一点~~~

再给一张正面的嘴巴:

在最终调整的时候多用软选择工具:如图

尽量能调整到红色线的那种感觉,因为从这个角度看会有这样一条曲线的:

脖子这里可以选着一圈面复制出来,然后调整比较快:

由于前面没有考虑清楚,这里必须把胸部删掉了~~~ extrude就可以了,然后调整一下,中间要细点

腿上的花边也比较容易做,加一条线,chamfer一下再选着面进行extrude,当然最后还是要调整一下造型的

这里和脖子一样的做法,复制出一个圈

然后可以拉伸出裙子

再复制出一小段

这里我在制作中没有把过程记录下来,望大家见谅,不过不算太难,应该都能拉出来的.头发的制作比较复杂,我也没有详细的记录,给几个角度的图大家参考的建吧,方法并不唯一,关键是自己的思路了。我这个地方弄的也不好,每次头发总是处理不好的~~

下面讲讲UV了,这个地方很枯燥,而且比较繁琐。上次在做北欧女神的时候就被人狂P UV展的有问题,呵呵,贴图的展开的确是很需要花时间去弄的,可能它关系到资源利用吧。UV我总结了两中方法,一种是直接在模型上加unwrap UVW,然后在它的modifier list里可以进行选择面,然后进行planner map,这种方法似乎不能选择展开方式,所以现在用不很合适。

所以一开始我们还是先选择面,添加uvw mapping之后再去添加unwrap UVW。选择头部的面,在UVW mapping里选择cylinder的方式。

unwrap uvw

点右边的EDIT编辑命令,就会弹出窗口。我们要把展开的脸的UV尽量的往边上放,因为等会我们会继续添加poly select修改器,再次展开后就看不到原先展好的脸的UV了,为了避免重合,所以尽量放的远一点吧。

继续添加修改器poly select,然后选择新的要展的面。然后就是重复了,添加UVW mapping 选择展开方式,然后再添加unwrap uvw,把展开的UV尽量靠边放。

3d游戏建模师简历个人 篇5

出生年月: 1992年8月

工作年限: 应届毕业生

毕业院校: 华中师范大学武汉传媒学院

毕业年月: 20xx年6月

最高学历: 本科

所学专业: 影视多媒体技术

居 住 地: 湖北省 武汉市 江夏区

籍 贯: 湖北省 武汉市 江夏区

自我描述:

求职概况 / 求职意向

职位类型: 全职

期望月薪: 面议

期望地点: 湖北省 武汉市 ,四川省 成都市 ,广东省 广州市

期望职位: 游戏建模师

意向概述: 本人对网游 次时代游戏非常感兴趣 希望求得3D角色建模师教育经历

20xx年9月 - 20xx年6月 华中师范大学武汉传媒学院影视多媒体技术大专

在大学专科三年里我利用课外时间攻读了自考本科华中师范大学数字媒体艺术专业,以及在剩余时间里自主学习了三位软件3D MAX MAYA 工作实践经验

20xx年9月 - 20xx年11月宣传部视频剪切人员湖北省京山县畜牧局

3D游戏设计 篇6

相信很多朋友玩过著名恐怖游戏:生化危机

生化危机一代至三代的角色操作方式一向均是按左、右方向键控制角色角度,按上、下方向键控制角色走动。

那么,如果我想给box.mdl也做出这种效果,我们可以通过c_move来实现吗?

答案是可以的。将box_mdl_act动作替换为以下代码:

action box_mdl_act(){ while(1){ if(key_w)

{

c_move(my, vector(10 * time_step, 0, 0), nullvector , GLIDE);

} if(key_s)

{

c_move(my, vector(-10 * time_step, 0, 0), nullvector, GLIDE);

} if(key_a)

{

my.pan-= 10 * time_step;

} if(key_d)

{

my.pan += 10 * time_step;

}

wait(1);} }

我们来测试一下,按下键盘上的A、D键,box.mdl旋转起来了!在按下W、S键,哈!它能顺着一定角度运动起来了!

我们来看代码,key_a和key_b条件事件被改动过了,这里就不再解释了。除此之外,以key_w的条件事件为例,原代码

c_move(my, nullvector , vector(10 * time_step, 0, 0),GLIDE);被替换为了

c_move(my, vector(10 * time_step, 0, 0), nullvector , GLIDE);

也就只是nullvector和vector(10*time_step,0,0)互换了位置。现在,我想,c_move中根据实体角度判断移动向量的强大功能已经被您理解了吧。

现在,我给大家出一道题:取消box.mdl的碰撞检测。也就是说,当box.mdl经过障碍物时能够穿越它。

其实,只要更改一下c_move就可以实现了。替换box_mdl_act动作为以下代码:

action box_mdl_act(){ while(1){ if(key_w)

{

c_move(my, vector(10 * time_step, 0, 0), nullvector , IGNORE_MODELS);

} if(key_s)

{

c_move(my, vector(-10 * time_step, 0, 0), nullvector, IGNORE_MODELS);

} if(key_a)

{

my.pan-= 10 * time_step;

} if(key_d)

{

my.pan += 10 * time_step;

}

wait(1);} }

现在,恢复c_move的碰撞检测。

不知道大家有没有在碰撞检测的过程中发现一些细节的东西。现在,请把你所操控的box.mdl缩放一下,使它的高度小于桌子腿的高度,然后再做测试,看看能否把box.mdl移动至桌子底下。也许你会发现,我的猜想不能实现。

为什么会这样呢?

因为,wed把desk.mdl看成了一个只有六个面的立方体,立方体的前、后、左、右四个面即desk.mdl整个模型前、后、左、右的最顶端,理所当然,碰撞检测是以这个六面的立方体为标准的,而不是以desk.mdl的形状为标准的。

那么,我们该如何实现让碰撞检测以模型的形状为标准呢?

非常简单,只要在sence.wmp里在desk.mdl属性中勾选“polygon/多边形”一项,建造关卡,便能实现。

最后,我还得布置给大家一个任务,新建一个脚本文件,命名为Function.c,并且置于game2根路径下,要求:将所有function函数和action动作代码剪切至Function.c,并在main.c中引用Function.c,且能正确执行。

我们之前学过,#include 一句能够引用3D gstudio安装路径“Gstudio7include”下的脚本文件,可是,若想在指定的根路径中引用,我们该如何写代码呢?

相信聪明的你已经猜到了,我们之前说过,脚本中所出现双引号”XX.xx”时,则表示引用文件,那么如果我将#include后接的改为”XX”不就行了吗?

注意#include “Function.c”的书写位置。

下一节课我们学习用MED制作简单动画。

第十九节教程到此结束。

《SYJ教你制作3D游戏》——第二阶段基础教程第二十节:制作动画

一个正常的游戏中,含有动画的模型必不可少。比如人物的走动动画、跳跃的动画等等。

Med不仅有模型建造的功能,它还可以制作模型动画。

现在,我们开始用Med制作box.mdl旋转的动画,当然,请你不必想着要在Sed中直接通过修改box.mdl的pan欧拉角值来实现我们所要的效果。

我们务必了解“帧”这一概念。所谓动画,即是由一幅幅静态图像通过迅速的变化而组成,如下图:

这是一个青色的正方形淡入渐变的动画,即它的亮度在不断增加。

实质上,这个动画的组成是5个帧,即5幅图像按顺序迅速变换而成的。

同样,在Med乃至一切制作动画的软件中,都必然遵循这一动画原理。

打开box.mdl,看到Med窗口的左下方,你会发现这个:

没错,这是一个动画帧。

现在,点击“对象”,“管理帧”,“添加帧”,将帧数设为2,点击“确定”。这时,我们看到在“帧”窗口中多了“Frame 0”和“Frame 1”,在这里,“Frame”为帧名,“0”、“1”即帧数。

现在,选中“Frame 1”,点击“转到帧”,这时,你会发现有一个红色的方框从“Frame 0”移动到了“Frame 1”,这表示当前所有视图中显示的模型状态在Frame 1中。

使用“旋转”工具将模型旋转90度。如果你觉得操作不顺手,可以在工具栏中点击“编辑选项”设置旋转吸附。

恭喜你,现在,你制作完成了一个正方体旋转的动画。

看到Med窗口的左下方,你会发现“动画”这一按钮变成了黄色,即可用状态,点击它,你便可以自由移动“动画”按钮左侧的滑块,查看每个动画帧模型。不过,现在我们所制作的动画模型是一个正方体,排除贴图因素,即便它往哪个方向旋转90度,它的形状仍不会改变,所以,在调整动画帧滑块的同时,也许你从3D视图中看不到正方体模型变化的样子。

点击“文件”,“引擎预览”,稍等片刻,你将会看到正方体正在飞速旋转!

但是,如果我们想控制这两个动画帧的播放速度,该怎么做呢?

也许你会想,给整个动画添加3个帧以上,第1帧中的正方体不变,第2帧中的正方体旋转45度,第3帧的正方体旋转90度,同时注意旋转的方向。

可是,这样做非常麻烦。要是你打算在Med中花大量帧做一个慢动作模型动画,而不借助其它如3ds max等软件,需要花费极大量的时间。其实,控制动画帧的播放速度需要在Sed中实现,下一节课我们继续学习。别忘了保存我们的box.mdl。

第二十节教程到此结束。

《SYJ教你制作3D游戏》——第二阶段基础教程第二十一节:控制动画帧,全局变量和局部变量

打开sence.wmp,这时,上一节课所修改并保存的box.mdl也会在场景中自动更新,我们只需要重新建造关卡更新sence.wmb即可。

至于game2目录下生成的.bak、.$$M、.$$w、.wed后缀名的临时残留文件我们可以把它删除。

测试运行main.c,我希望能够在预览窗口中看到每一个box.mdl做旋转动画,可是它们并没有动,也许它一直保持在第0帧。

我们需要给box.mdl添加让它播放动画帧的动作。

打开Function.c,在box_mdl_act动作中定义box_speed数字变量,不赋给其任何值:

var box_speed;

在循环中添加以下代码:

box_speed += 2.5 * time_step;ent_animate(my, “Frame”, box_speed, ANM_CYCLE);

我们测试运行一下,看到正方体播放的速度果真变慢了!而且即便box.mdl只有2帧,它的播放仍旧非常流畅!Med确实是一个非常神奇的东西,它能给任何两帧之间的动画增加无数补间帧,所以,我们在观看box.mdl动画时感觉不到顿卡。

我们来看代码,ent_animate(实体,”帧名”,播放百分比,动画类型);

这一句中,“帧名”这一概念我们上一节课已经说过了,即在box.mdl中给模型附加的帧的名字。

特别要注意的是“播放百分比”,这里所指的播放帧数是以百分比来计算的,不是按帧的数来计算的。这里我用了box_speed变量来表示,box_speed += 2.5 * time_step;一句即播放百分比在不断递增,以达到逐帧播放动画的效果。不用说,数字表示动画播放速度。

动画类型中,ANM_CYCLE为循环播放,是我们经常用到的。还有其余两种动画类型大家可以参考命令帮助。注意变量的定义方式,var box_speed;一句是在box_mdl_act中直接定义的,而不是置于整个脚本的最前端,这种定义方式的变量称为局部变量。置于整个脚本最前端,且置于所有动作、函数等之外的定义方式的变量称为全局变量。

它们之间的区别就是,局部变量只能够在其身处的动作、函数中使用,而不能够在异个动作、函数中使用。如box_speed是我们是在box_mdl_act 中定义的,这个变量只有box_mdl_act知道,它就不能够在box_action动作、甚至主函数中使用,否则会因找不到变量而出错。

而全局变量,其定义之后就通知了所有动作、函数,使其都知道存在着这个变量,能在任意动作、函数中使用。

局部变量和全局变量各有各的使用价值,均是为了方便管理、修改而设计的。

最后,作业是难免的。请在box.mdl中增加2个名为move的帧,即增加move 2和move 3,要求:在move 2中,正方体的x坐标增加a个单位长度(a可自定),move 3中,正方体的x坐标增加2a个单位长度。且在main.c中,控制正方体以5为单位速度播放完成Frame帧后转入move帧继续以2.5为单位速度播放,move帧播放完成后继续永久循环move帧。

答案就在这里,我把box_mdl_act动作的循环中有关动画帧的控制代码如下:

在循环前将:

var box_speed;

替换为:

var box_Frame_speed = 0;var box_move_speed;

在循环中将:

box_speed += 2.5 * time_step;ent_animate(my, “Frame”, box_speed, ANM_CYCLE);

替换为:

box_Frame_speed += 5 * time_step;ent_animate(my, “Frame”, box_Frame_speed, ANM_CYCLE);if(box_Frame_speed > 100){ box_move_speed += 2.5 * time_step;ent_animate(my, “move”, box_move_speed, ANM_CYCLE);} 下一节课我们完善对2D元素的学习。

第二十一节教程到此结束。

《SYJ教你制作3D游戏》——第二阶段基础教程第二十二节:滑块和窗口以及for循环

首先,我们必须明白,什么是滑块,什么是窗口,它们分别包含怎么样的属性。

窗口,即设置位图所视范围,也就是一张图片被截取之后所能看到范围,如下图:

被窗口截取的范围是我们可以看到整张图片的所示部分,被截取以外的范围即不可见,其范围同等于完全透明。

我们来看表达窗口的代码:

window(整张图片横坐标, 整张图片纵坐标, 窗口宽度坐标, 窗口高度坐标, 图片, 窗口相对于整张图片的横坐标, 窗口相对于整张图片的纵坐标);我想,我解释得已经够多了,如果你还不明白的话,剩下的就交给脚本来为你进行实践。

我想要把以上的解说图放到game2根路径下,命名为window_pic.bmp,并在main.c中建立一个名为window_pic_pan的面板且将解说图插入,横纵坐标分别为0,所插入的图片加入window语句,使该张图片只能看到解说图中的“截取范围”。应该非常简单。

在main.c中加入以下代码,置于该加入在什么位置,我想聪明的你已经明白了: PANEL* window_pic_pan = { window(0,0,300,250,“window_pic.bmp”,40,20);flags = VISIBLE;}

我想说这确实非常简单。

下一步,我想实现窗口相对于整张图片的横坐标以5为相对速度值不断递增,当递增至300时停止。

听起来非常复杂,不过也许你能够办得到,定义两个变量:

var window_x = 40;将

window(0,0,300,250,“window_pic.bmp”,40,20);

替换为:

window(0,0,300,250,“window_pic.bmp”,window_x,20);

并试试在主循环中添加以下代码:

window_x += 5 * time_step;if(window_x >= 300)window_x = 300;

在上一步中,或者是将主循环

while(1)

改为:

while(window_x <= 300)

并在主循环中添加:

window_x += 5 * time_step;

这些东西都是我们已经学过的,所以就不再解释了。后一种更改主循环代码的方法所使用的灵活技巧相信大家能够自己领悟。运行一下脚本,理所当然能够实现。

不过,针对于主循环里新添的两行代码,我有一种更为简单的实现办法。即使用for循环语句。

在主函数中,主循环前添加以下代码:

for(window_x;window_x <= 300;window_x += 5 * time_step)wait(1);

因为for也是一个循环,所以我们没有必要把它放在主循环里面,使其“在循环中循环”。

我们来看代码,for(数值初始值;数值范围;数值变化){循环结束后触发的事件}。这就是for循环的基本组成。数值初始值,在我们的预定义的window_x全局变量里已经声明其为40;数值范围,即给数值的变化限定一个范围,在这里限定为小于或等于300的数,即window_x不能大于300;数值变化当然不用说,即描述window_x的值以5为相对速度递增。

在for循环之后的wait(1);表示循环条件完成之后所触发的事件,即退出这个for循环并继续执行该for循环后面的代码,这正是我为什么要把for循环放在主循环前,而不是主循环后的原因。

对于window语句的学习,至于它在游戏制作中的具体实际用途,比如,做一个进度条,或者是一个能表达角色某些属性,如生命值属性的指示条等许多你能够想到的东西。

滑块,即一个元素,当鼠标指针经过并在此之上按住不放且拖动时,该元素也随鼠标指针的移动而移动,且在移动的同时以触发某些事件,如更改变量等为作用意义。

滑块分为横向滑块和纵向滑块两种,我们只要了解其中一种,比如横向滑块就可以了,另一种大家自己总结。

我这里准备了一张滑块的图片素材:

我必须说我画得太简单了。

在window_pic_pan中加入以下代码:

hslider(50, 100, 265, “huakuai.bmp”, 0, 100, window_x);

并选中for循环所在行,使其底色变成黄色,点击工具栏上的“注释行”按钮,忽略这条代码。当你想要恢复代码的作用时,可以点击“注释行”按钮右边的“取消注释行”按钮恢复。

我们测试运行一下,试着拖动滑块,如果你发现鼠标指针不起作用的话可以在主函数中设定鼠标模式。

左右移动滑块,哈!window_pic也随着滑块的移动而左右移动!

我们来看代码,hslider(横坐标, 纵坐标, 滑块总长, 滑块图片, 滑块所示变量最小值, 滑块所示变量最大值, 滑块所示变量);

前四项属性我就不多说了,很容易理解。滑块所示变量最小值,即滑块拖至最左端时,window_x的值;滑块所示变量最大值呢,和最小值的含义规则是同等的;滑块所示变量,即window_x随滑块的移动而被影响。这里要注意的是,滑块所示变量也能够同时影响滑块的初始位置。如,你可以在预定义window_x全局变量中给它赋值0或100并分别测试一下看看滑块的初始位置有何变化。

置于滑块的应用呢,可以用来调节某些东西,如音量大小等。

纵向滑块,即vslider的用法和横向滑块基本相似。

下一节课我们继续完善对2D元素的学习。

3D游戏设计 篇7

连连看是一个益智类的小游戏。为了让该游戏更具互动性与娱乐性, 现利用ActionScript3.0语言结合Java、P2P与PaperVision3D (PV3D) 技术在传统连连看功能的基础上, 开发一个可以在单机模式及网络多人模式赛战的3D连连看小游戏。

13D连连看游戏的功能需求

3D连连看游戏的总体功能是在传统的连连看上增添游戏新亮点, 为玩家提供更多的乐趣。主要功能需求体现在以下几点:

(1) 游戏有5个关卡, 玩家能在随意旋转的3D方块中进行同面或异面的连接。玩家通过鼠标来移动或设定随机移动3D方块, 首先使用鼠标点击方块上的小3D正方体, 该正方体此时为“被选中”, 以特殊方式显示;然后再次以鼠标点击它小3D正方体, 若该小3D正方体与被选中的小3D正方体图案相同, 且把第一个3D小正方体到第二个小3D正方体连起来, 中间的直线不超过 3 根, 则消掉这一对棋子, 否则第一个小3D正方体恢复成未被选中状态, 而第二个小3D正方体变成被选中状态。

(2) 玩家可以在玩的过程中遇到难以连接的时候启用重置功能, 此时便在原来的方块数和分布位置上进行随机排列。

(3) 游戏将增加网络模式功能, 并为游戏增设了Java服务器程序, 实现在网络下进行多人赛战。当是双人赛战时客服端连上服务器后, 则可以在左上角看到另一个玩家的窗口及另一个玩家玩游戏的进度。

(4) 玩家选择单机或网络模式在进入游戏后都会有一个分数的计算。第一关每连一对得2分, 第2关每连一对得4分, 以此类推下去, 关数越高得到的分数也越高, 最后每关的分数累加得到最后的分数。

(5) 玩家选择单机或网络模式在进入游戏后都会有一个游戏的倒计时用来限制每个关卡的通关时间, 使玩家感到更有挑战性。

23D连连看游戏设计

2.1游戏的基本处理流程

启动游戏后要求选择单人模式、网络模式。当选择单人模式时, 游戏加载完后, 玩家就可以移动自己的鼠标来点击游戏中的小方块, 如果在规定的时间内完成游戏会看到进入下一关的动画, 如果没完成而时间到了, 就会看到时间到的动画, 直到所有关卡玩完就会看到最终游戏得分;当选择网络模式时, 先开启服务器, 然后输入玩家名字, 游戏加载完后, 在一定的时间内进行赛战, 时间到后就可以看到双方的游戏得分。整个游戏的流程设置如图1所示。

2.2游戏数据实体类模型的设计

3D连连看游戏的主体是3D方块, 通过对传统的连连看功能分析, 扩充了连线、小方块、地图等功能。现以UML类图来说明3D连连看中各实体数据间的关系, 主要包括主体类 (MagicCube) 、与服务器连接的类 (CorrespondA) 、连线路径类 (Trajectory) 等9个类。UML类图如图2所示。

33D连连看的功能实现

3.1构建3D小方块与3D方体

在3D连连看游戏中小方块是通过3D引擎PV3D来构建的。PV3D是一个开源的遵循MIT协议的使用AS3代码写成的3D引擎, 基程序主要依赖于4个类, Viewport3D、Scene3D、Camera3D和BasicRenderEngine。①Scene3D是所有3D场景中物体的容器, 物体要显示, 就要先加入到容器中;②Viewport3D实现了IViewport3D接口, 继承自Sprite, 在PV3D中所看到的物体就是通过Viewport3D呈现的;③Camera3D为一个3D空间中的摄像机的镜头, 可以通过改变这个镜头的位置、角度、焦距等属性, 来显示不同的场景或做镜头移动的动画;④BasicRenderEngine为基础渲染引擎, 它有将Viewport3D、 Scene3D和Camera3D整合在一起协同工作的功能。

在此3D连连看游戏中的小方块是通过类SmallSquares继承PV3D引擎中的Cube类, 并结合材质类MaterialsList构造出来。如下getMaterialsList方法代码所示。

private function getMaterialsList (b:int) :MaterialsList

{

bitmap=new BitmapFileMaterial ("image/"+b+".jpg") ;

bitmap.interactive=true;

mater=new MaterialsList ({all:bitmap}) ;

return mater;

}

然后通过Viewport3D、Camera3D等类将3D小方块有机组合, 形成如下图3所示的3D连连看界面。

3.2利用P2P技术完成数据的实时传输

在局域网的对战平台中游戏, 可以开通P2P的传输方式来链接传输玩家的相关信息, 如玩家的姓名和玩家最后的分数等。Flash中P2P (peer-to-peer, 又称对等互联网络技术) 传输方式是一个全新网络技术。在3D连连看游戏中主要运用Flash中P2P 中的GroupSpecifier类来创建构造一个传递到NetStream和NetGroup的构造函数的加密groupspec字符串。且一个groupspec指定一个RTMFP P2P群组, 包括功能、限制和成员授权等信息。关键实现代码如下:

……

var groupspec:GroupSpecifier = new GroupSpecifier ("myGroup/groupOne") ;

groupspec.postingEnabled = true;

groupspec.ipMulticastMemberUpdatesEnabled = true;

groupspec.addIPMulticastAddress ("225.225.0.1:30303")

group = new NetGroup (nc, groupspec.groupspecWithAuthorizations () ) ;

group.addEventListener (NetStatusEvent.NET_STATUS, netStatus) ;

……

通过P2P技术实现的玩家信息的实时传递结果如图4所示。

3.3Flash客服端与Java服务端相互通信功能

在局域网的模式中获取对方玩家图像和网络的链接是通过Flash里的socket类来完成的, 即玩家选中网络模式, Flash客服端会自动创建一个socket的接口, 用来与Java的服务器端连接并传输图片等相关的信息。

(1) Java服务器端主体代码的实现如下:

……

ServerSocket ss = null;

Socket socket=null;

try {

ss = new ServerSocket (8999) ;

System.out.println ("服务器已启动......") ;

while (true) {

socket = ss.accept () ;

System.out.println ("有一客户端连上来了。。。") ;

sockets.add (socket) ;

//启动一个线程专门来跟这个客户端通信

Thread t = new Thread (new ChatServerRunner (socket, sockets) ) ;

t.start () ;

} } catch (IOException e) {

e.printStackTrace () ;

}

……

(2) Flash客户端关键代码:

……

clientSocket=new Socket () ;

clientSocket.addEventListener (ProgressEvent.SOCKET_DATA, receiveOneData) ;

clientSocket.connect ("127.0.0.1", 8899) ;

clientSocket.addEventListener (Event.CONNECT, showOneConnectResult) ;

……

3D连连看游戏通过Java服务器实时显示对方玩家的连连看图像的实现结果如图5所示。

4结束语

此3D连连看游戏在功能上, 继承了传统连连看的功能, 如:游戏运行中可以重置方块、游戏通关等。并通过P2P与PV3D等技术实现了玩家可以随意地旋转3D方块来进行同面的连接或异面的链接、网络对战的平台功能等, 使玩家在玩游戏的过程中体验到新鲜感, 也让这款游戏更具有趣味性。

摘要:陈述了3D连连看的功能需求, 重点论述了其设计流程和数据模型, 并利用ActionScript3.0语言结合P2P与PV3D技术, 实现了能在随意旋转的3D方块中进行同面或异面连接, 以及网络环境下多人赛战的3D连连看游戏。

关键词:PV3D,P2P,3D连连看游戏

参考文献

[1]顾作晓.利用FLASH+AS3+PV3D引擎开发网页3D游戏[J].中国电子商务, 2010 (10) .

[2]薛青娜.基于P2P+SIP的流媒体服务系统的设计[J].计算机与数字工程, 2011 (3) .

3D真人游戏那是多么给力 篇8

H是不行的

中国是一个谈性色变的国度,这事应该怪谁?爱怪谁怪谁!回想曾经青春年少的我们,面对着初中生物书上的生理卫生充满了期待,没想到老师只用一句“这一章不作为期末考试内容”就把美好憧憬给秒杀了。我还能想起初中时候的美术写生课,我们一班学生都在画真驴,没想到此公驴不小心亢奋了,我后来扫了扫同学们的大作,95%都把这驴的第五条腿给卸了,而热衷于反馈真实的作品竟然被扣上了一个不纯洁的屎盆子。说真的,那个时候的我,都不知道那话儿是干啥的。总之,H在这个国度是不行的,因为人们在阳光下避讳它,所以私底下就更加充满欲望的追求它,于是各种H产品成为了阴暗角落中迅速蔓延的毒藤。

二次元最讨厌啦

少年们私底下追求着各种H产品,小说、漫画、到后来还包括了电子游戏,而Hgome在上世纪八九十年代都是从一个地方舶来的,那就是“一衣带水”的泥轰。别以为现在那些业界的大鳄们都是清清白白的,史克威尔艾尼克斯、光荣等厂商当年都没少在游戏里玩情色内容,而现在看起来灰常纯洁的Falcorn更是靠着Hgame起家的,后来有一个叫EIf的公司异军突起,以《同级生》等系列霸占了半壁2D hgame江山。还必须一提的是,弯弯那边还有个叫做天堂鸟的游戏公司,代理汉化了不少Hgome,那个在礼花中升起的乌是多么让人怀念啊。后来天堂鸟不做代理了,中文化的2D Hgame几乎绝迹,看不懂满屏幕的日文,2D Hgame存在的价值就剩下提取出来的CG集了。即使还有公司做代理,想必二次元的世界也不怎么能留住人了,因为少男们都想追求更直接的感官刺激,3D真人游戏成为了新宠,二次元沦为了“最讨厌”之流。

3D真人游戏,合理存在

书接题首,《监禁》在光驱里飞速地旋转,据说这款发售于1995年5月的游戏是世界上第一款3D美少女游戏,根据笔者的记忆,3D真人游戏是在上世纪末开始涌入大陆,这其中最知名的游戏制作公司,就是日本的illusion株式会社,这也是曝光率最高的一家3D真人游戏制作公司,旗下许多系列游戏,都曾被美帝、天朝炮轰过。说到早期的3D真人游戏,除了CG动画有些看头,那些即时演算的3D画面绝对让你的肾上腺保持一个平稳的状态,如果只是这样,那3D和2D的差别就只能是一个是收集CG动画,一个是收集CG图片。

但值得庆幸的是3D技术在90年代中后期迅速发展,家用电脑的硬件配置也出现了跨越式的升级,这使得3D即时演算画面出现了质的提升,也令玩家从单纯地观赏游戏获得刺激转换到了通过互动来实现自己在现实生活中不可能完成的事情。“H是不行的”的常规概念被2D Hgame打破,被3D真人游戏所彻底抛弃。尽管听起来似乎有点滑稽,但笔者还是斗胆说上一句,玩家与游戏角色的互动,还是在3D真人游戏中体现得最真实,鼠标、键盘的操作直接反馈成游戏中角色的声音和肢体语言的体现,使得玩家的肾上腺激素一下子就提高不少。

以前《Geek》和大家讲过几个社会现实情况,一是如今的男女比例失调严重,使得男性在求偶方面的困难加剧;二是现在的宅男越来越多,这两种情况融合在一起,让3D真人游戏有了更广阔的玩家群体。你可能是胡子拉碴、一身酸味的绝对死宅,也可能是相亲无数、屡战屡败的情场剩男,但在游戏的世界里,你完全可以忘却自己现在的身份和环境,勇敢地向那些豪迈的御姐党或者是身脆体软的小萝莉发起进攻,最终赢得美人归。而3D真人游戏本身如今也正在不断向真实化迈进,借着阿凡达席卷全球的风潮,此类游戏也实现了视觉意义上的立体化,而越来越多的自定义元素更令玩家可以量身打造自己心仪的各种美女,而这些美女的艳丽程度,也充分满足了男性对美女的需求。某位先哲说过,有买的才有卖的,好的物品能够满足于供需双方的需求。

尾声

上一篇:打蚊子作文550字下一篇:做一个有情怀的班主任