111.
[动画系统]如何将其他类型的动画转换成关键帧动画?
动画->点缓存->关键帧
112.
[动画]Unity引擎Mecanim动画系统功能优点?
答:
l 简单化对类人角色动画设计与功能实现的工作流程。
l Mecanim动画系统使用一个可视化编程工具来管理动画之间复杂的交互。
l 对完成绑定骨骼的类人角色,能够对身体不同的地方使用不同的逻辑进行动画控制。
l 可以在角色动画播放过程中添加动画事件。
l 人形动画骨骼动画可重复使用。
113.
[UI]请简述NGUI中Panel和Anchor的作用 。
答:Panel是一个容器,它将包含所有UI小部件,并负责将所包含的部件组合。
Anchor是NGUI中屏幕分辨率的自适应性,来适应不同的分辨率的屏幕显示。
注:
114.
[碰撞]怎么判断两个平面是否相交?不能用碰撞体,说出计算方法。
答:以平面任意两点,取两平面法向量,链接两点线段,线段是否与法向量的夹角来判断是否平行。
法向量如果平行,看线段与法向量的夹角,如果平行则两平面重合,判断边界是否相交。
如果平行,且有夹角,说明不重合两平面平行,一定不相交。
如果法向量不平行,将该线段的在两平面投影方向上的射线判断与平面的边界条件,如果两条射线的交点都在边界内,则相交,否则不相交。
注:
115.
[碰撞]MeshCollider和其他Collider的一个主要不同点?
答:MeshCollider是网格碰撞器,对于复杂网状模型上的碰撞检测,比其他的碰撞检测精确的多,但是相对其他的碰撞检测计算也增多了,所以一般使用网格碰撞也不会在面数比较高的模型上添加,而会做出两个模型,一个超简模能表示物体的形状用于做碰撞检测,一个用于显示。
MeshCollider有Mesh属性
116.
[碰撞]Unity3d中的碰撞器和触发器的区别?
答:
碰撞器物体不能互相进入到对方内部,触发器可以。
触发器角色控制器可以使用,碰撞器中不能使用。
触发器没有物理属性了,碰撞器可以有力存在。
碰撞器调用OnCollisionEnter/Stay/Exit函数,触发器调用OnTriggerEnter/Stay/Exit函数。
117.
[碰撞]物体发生碰撞的必要条件。
答:两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。
注:动的物体,你希望发生碰撞效果的物体要带能接受物理引擎的操作,最常见的就是挂载Rigidbody组件。
118.
[碰撞]CharacterController和Rigidbody的区别?
答:CharacterController自带胶囊碰撞器,里面包含有刚体的属性;
Rigidbody就是刚体,使物体带有刚体的特征。
注:
119.
[碰撞]当一个细小的高速物体撞向另一个较大的物体时,会出现什么情况?如何避免?
答:穿透(碰撞检测失败)。将物体移动放在FixedUpdate中,尽量使用物理引擎自己的移动方法。
避免的方法:把刚体的实时碰撞检测打开Collision
Detection修改为Continuous
Dynamic
注:
120.
[碰撞]在unity3d中物体发生碰撞的整个过程中,有几个阶段,分别列出对应的阶段函数?
答:
主要是三个阶段:
1.Collider.OnCollisionEnter 进入碰撞,当collider/rigidbody开始触动另一个rigidbody/collider时OnCollisionEnter被调用。
2.Collider.OnCollisionStay
逗留碰撞,每个collider/rigidbody触动rigidbody/collider,将在每帧调用OnCollisionStay。通俗的说,一个碰撞器或刚体触动另一个刚体或碰撞器,在每帧都会调用OnCollisionStay,直到它们之间离开不接触。
3.Collider.OnCollisionExit 退出碰撞,当 collider/rigidbody停止触动另一个
rigidbody/collider时,OnCollisionExit被调用。
121.
[动画]一个简单的游戏,怪物会走动\攻击\死亡,游戏角色会走动,跳跃\攻击\格挡\死亡,还会接受玩家从输入端输入的指令,NPC会走动,他们彼此之间可以互相通信.请画出以上三种角色的UML图示.
答:
122.
[动画]请描述游戏动画有哪几种,以及其原理?
答:主要有关节动画、单一网格模型动画(关键帧动画)、骨骼动画。
1.关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活,Quake2中使用这种动画。
2.单一网格模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。
3.骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观,皮肤网格每一个顶点都会受到骨骼的影响,从而实现完美的动画。
123.
[动画]反向旋转动画的方法是什么?
答:反转动画,将动画的播放速度调到-1。
124.
[动画]写出Animation的五个方法。
答:AddClip 添加剪辑、Blend 混合、Play 播放、Stop 停止、Sample 采样 、CrossFade淡入淡出切换动画、IsPlaying是否正在播放某个动画
125.
[动画]动画层(AnimationState Layers)的作用是什么?
答:动画层作为一个具有层级动画编辑概念的工具,可以用来制作和处理任何类型的动画。202,203题
126.
[动画]Itween插件的作用是什么,Itween作用于世界坐标还是局部坐标,请列举出3个其常用方法?
答:ITween是补间动画的一个插件,主要作用就是给出开始、结束的值、时间,此插件实现各种动画,晃动,旋转,移动,褪色,上色,音量控制等等。
方法: 1.MoveTo 物体移动
2.ColorTo:随着时间改变对象的颜色组
3.LookTo:随时间旋转物体让其脸部朝向所提供的Vector3或Transform位置
127.
[动画]什么是法线贴图 、CG动画 ?
答:
法线贴图:是一种特殊的纹理,可以应用在3D表面,让低模呈现出更明显的凹凸效果。一
般应用在CG动画、美术效果要求较高的单机游戏
CG动画:游戏中的CG动画其实是用3D模拟引擎制作的游戏短片,一般画面效果比较真实。
128.
[线程和协程]Unity3D是否支持写成多线程程序?如果支持的话需要注意什么?(?)
答:Unity支持多线程,如果同时要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine。
注意:1.虽然支持多线程,但是仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用,所以如果使用的话需要把组件中的数值传到开启的新线程中。
2.C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象
129.
[线程和协程]Unity3D的协程和C#线程之间的区别是什么?
答:多线程程序同时运行多个线程,除主线程之外的线程无法访问Unity3D的对象、组件、方法,而在任一指定时刻只有一个协程在运行。
130.
[线程和协程]什么是协同程序?
答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。使用户可以编写更灵活的程序来控制运动、序列以及对象的行为。
131.
[3D数学]四元数是什么?主要作用什么?对欧拉角的优点是什么?
答:所谓四元数,就是把4个实数组合起来的东西。4个元素中,一个是实部,其余3个是虚部
作用:四元数用于表示旋转
优点:
1)能进行增量旋转
2)避免万向锁
3)给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)
四元数不会有欧拉角存在的 gimbal lock 问题[万向节死锁]
四元数由4个数组成,旋转矩阵需要9个数
两个四元数之间更容易插值
四元数、矩阵在多次运算后会积攒误差,需要分别对其做规范化(normalize)和正交化 (orthogonalize),对四元数规范化更容易
与旋转矩阵类似,两个四元组相乘可表示两次旋转
132.
[摄像机]在场景中放置多个Camera并同时处于活动状态会发生什么?
答:游戏界面可以看到很多摄像机的混合。
133.
[摄像机]Unity摄像机有几种工作方式,分别是什么?
答:正交和透视。
正交无法看到一个物体距离自己有多远,或者远近的变化,物体也不会随着距离而收缩,所以一般做2D游戏或者是UI时会使用正交摄像机。
透视一般看物体会随着距离有大小的变化,一般3D游戏里经常使用这种摄像机。
134.
[预制件]Prefab的作用?如何在移动环境的设备下恰当地使用它?
答:Prefab是预制件(预制物),一般当游戏中需要频繁创建一个物体时,使用预制物可以节省内存,方便创建,方便对游戏物体进行操作,方便对属性进行修改。
135.
[预制件]unity当需要频繁创建一个物体对象时,怎样减少内存?
答:动态加载再实例化,如果自己不主动清理内存的话,再次加载不会增加内存的,会自动去取之前已经加载好的assets,如果这一个assets你都嫌多的话,那你只能减资源了,比如,模型面数,纹理尺寸等
136.
[ Shader]写出光照计算中的diffuse的计算公式
答:实际光照强度l=环境光(lambient)+漫反射光(Idiffuse)+镜面高光(lspecular)
环境光:lambient=环境光强度(Aintensity)*环境光颜色(Acolor)
漫反射光:ldiffuse=镜面光照强度(Dintensity)*镜面光颜色(Scolor)*(光的反射向量(R).观察者向量(V))^镜面光指数(n)
137.
[ Shader]MeshRender中material和shader的区别?
答:MeshRender是模型渲染的组件,有此组件物体才能显示出来
Material是材质球,实际就是shader的实例,并进行赋值,贴图、纹理、颜色等。
Shader是着色器,实际上是一段程序,还可以用来实现一些仅靠贴图不容易实现的效果,如玻璃。
Shader大致分为:1.表面着色器
2.顶点和片元着色器
3.固定功能着色器
138.
[ Shader]alpha blend工作原理
答:Alpha Blend是 实现透明效果,Color = 原颜色*alpha/255+目标色*(255-alpha)/255
139.
[ Shader]光照贴图 的优势是什么&