unity3d中模型位置与角度_unity3d 导入模型角度 - CSDN
  • unity3D中物体实现任意角度自旋转

    万次阅读 2015-05-19 13:40:44
    unity3D中物体实现任意角度自旋转

    主要涉及函数:

    Input.GetAxis(“Mouse x”) 可取得鼠标横向(x轴)移动增量

    Input.GetAxis(“Mouse y”) 可取得鼠标竖向(y轴)移动增量

    通过勾股定理获取拖拽长度,长度越长旋转越快。在project setting--Input 可以设置。

    这里用Cube来做例子,因为方体看旋转比较清楚,如图:


    代码如下:

    using UnityEngine;
    using System.Collections;
    
    public class NewBehaviourScript : MonoBehaviour {
    
    	private bool onDrag = false;  //是否被拖拽//    
    	public float speed = 6f;   //旋转速度//    
    	private float tempSpeed;   //阻尼速度// 
    	private float axisX = 1;
    	//鼠标沿水平方向移动的增量//   
    	private float axisY = 1;    //鼠标沿竖直方向移动的增量//   
    	private float cXY;
    	void OnMouseDown()
    	{
    		//接受鼠标按下的事件// 
    		
    		axisX = 0f; axisY = 0f;
    	}
    	void OnMouseDrag()     //鼠标拖拽时的操作// 
    	{
    		
    		onDrag = true;
    		axisX = -Input.GetAxis("moveX");
    		//获得鼠标增量// 
    		axisY = Input.GetAxis("moveY");
    		cXY = Mathf.Sqrt(axisX * axisX + axisY * axisY); //计算鼠标移动的长度//
    		if (cXY == 0f) { cXY = 1f; }
    		
    	}
    	float Rigid()      //计算阻尼速度//    
    	{
    		if (onDrag)
    		{
    			tempSpeed = speed;
    		}
    		else
    		{
    			if (tempSpeed > 0)
    			{
    				tempSpeed -= speed * 2 * Time.deltaTime / cXY; //通过除以鼠标移动长度实现拖拽越长速度减缓越慢// 
    			}
    			else { 
    				tempSpeed = 0; 
    			}
    		}
    		return tempSpeed;
    	}
    	
    	void Update()
    	{
    		// this.transform.Rotate(new Vector3(axisY, axisX, 0) * Rigid(), Space.World); //这个是是按照之前方向一直慢速旋转
    		if (!Input.GetMouseButton(0))
    		{ 
    			onDrag = false;
    			this.transform.Rotate(new Vector3(axisY, axisX, 0)*0.5f, Space.World); 
    		}
    	}
    }
    

    最终效果如图:




    展开全文
  • unity3d中导入模型,经常会遇到模型的轴向unity默认的轴向不符合的情况。 网上有很多解决办法都是说在3dmax导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型的轴向。(以网上下载的...

    在unity3d中导入模型,经常会遇到模型的轴向与unity中默认的轴向不符合的情况。

    网上有很多解决办法都是说在3dmax中导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型的轴向。(以网上下载的坦克模型为例)

    步骤1:将模型导入到unity中,至于如何赋材质和贴图就不用讲了吧。

    导入的坦克模型与创建的unity自带模型cube轴向对比,发现轴向是统一的,但是模型的本身的朝向不对,相差了90度。

    步骤2:创建一个空物体,GameObject—>Create Empty。

    创建好后,将空物体拖到模型的子物体下面,使空物体成为模型子物体的子物体。再将空物体的position与rotation全置为0,scale为1。

    因为模型为坦克,所以将空物体对齐坦克底部,如下图。

    调整前:

    调整后:

    调整好后,再将空物体拉出坦克模型的子物体,使空物体与坦克模型为平级关系。

    此时,再调整空物体轴向与scene右上角坐标一致。图中显示的是空物体的轴向。

    调整好之后,将模型的子物体拖动到空物体下面使之成为空物体的子物体即可。

     到此步骤,即完成模型的轴向的调节,并删掉剩下的is2物体,保持场景的整洁。

    转载于:https://www.cnblogs.com/Sakya00/p/3231483.html

    展开全文
  • Unity3d 数字模型制作规范

    千次阅读 2016-05-04 17:40:26
    本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个VR模型制作完成时,它所包含的基本内容包括场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、...

    数字模型制作规范

    本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个VR模型制作完成时,它所包含的基本内容包括场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、坐标、纹理尺寸、纹理格式、材质球等必须是符合制作规范的。一个归类清晰、面数节省、制作规范的模型文件对于程序控制管理是十分必要的。

            

            首先对制作流程作简单介绍:
    素材采集-模型制作-贴图制作-场景塌陷、命名、展UV坐标-灯光渲染测试-场景烘培-场景调整导出 第一章  模型制作规范

    1   在模型分工之前,必须确定模型定位标准。一般这个标准会是一个CAD底图。制作人员必须依照这个带有CAD底图的文件确定自己分工区域的模型位置,并且不得对这个标准文件进行任何修改。导入到MAX里的CAD底图最好在(0,0,0)位置,以便制作人员的初始模型在零点附近。  

     

    2   在没有特殊要求的情况下,单位为米(Meters),如图所示。


    3    删除场景中多余的面,在建立模型时,看不见的地方不用建模,对于看不见的面也可以删除,主要是为了提高贴图的利用率,降低整个场景的面数,以提高交互场景的运行速度。如Box底面、贴着墙壁物体的背面等。

    4    保持模型面与面之间的距离推荐最小间距为当前场景最大尺度的二千分之一。例如:在制作室内场景时,物体的面与面之间距离不要小于2mm;在制作场景长(或宽)为1km的室外场景时,物体的面与面之间距离不要小于20cm。如果物体的面与面之间贴得太近,会出现两个面交替出现的闪烁现象。模型与模型之间不允许出现共面、漏面和反面,看不见的面要删掉。在建模初期一定要注意检查共面、漏面和反面的情况;

    5    可以复制的物体尽量复制。如果一个1000个面的物体,烘焙好之后复制出去100个,那么他所消耗的资源,基本上和一个物体所消耗的资源一样多。

    6    建模时最好采用Editable Poly面片建模,这种建模方式在最后烘焙时不会出现三角面现象,如果采用EditableMesh 在最终烘焙时可能会出现三角面的情况。如图所示。


    7模型的塌陷

    当一栋建筑模型经过建模、贴纹理之后,然后就是将模型塌陷,这一步工作也是为了下一步烘焙做准备。所以在塌陷的时候要注意一些问题:

    (1)    按照“一建筑一物体”的原则塌陷,体量特别大或连体建筑可分塌为2-3个物体,但导出前要按建筑再塌成一个物体,城中村要按照院落塌陷。

    (2)    用Box反塌物体,转成Poly模式,这时需检查贴图有无错乱;

    (3)    塌陷物体,按楼或者地块来塌陷,不要跨区域塌陷;

    (4)    按项目对名称的要求进行严格的标准的命名;

    (5)    所有物体的质心要归于中心,检查物体位置无误后锁定物体;

    备注:所有物体不准出现超过20000三角面的情况,否则导出时出错。

    8  模型命名

     不能使用中文命名,必须使用英文命名,不然在英文系统里会出问题。地块建筑模型不允许出现重名,必须按规范命名。

     

    9树的种植方法

     

    用十字交叉树或简模树。在种植树木的时候,要考虑到与周围建筑的关系,不能乱种树,要根据现状放置不同的树种、位置;重点建筑地块需种简模树,并在原地与之对应的种上十字片树(替换用);导出时模型树和与之对应的十字片树为单棵的,其它十字片树可塌一起,但面数不能超过1万。

    10模型的级别

     

        也就是模型的精细程度,有时我们在建模的时候要根据建筑所处的具体位置,重要程度对该建筑进行判断是建成何种精度的仿真模型。可以将建筑分为五个等级。

        其中,一级为最高等级,五级为最低等级。

        单个物体的面数不要太大,毕竟是做虚拟现实,而不是制作单张效果图。单个物体面数要控制到8000个面以下。

    11   镜像的物体需要修正

     

               用镜像复制的方法来创建新模型,需要加修改编辑器修正一下。

       第一步:需要选中镜像后的物体,然后进入Utilities面板中单击Reset XForm,然后单击Reset Selected;

       第二步:进入modfiy面板选取Normal命令,反转一下法线即可。

    12   烘焙的物体黑缝解决对办法

     

       在烘焙的时候,如果图片不够大的时候,往往会在边缘产生黑缝。

     

    处理小技巧 :  

       1)如果做鸟瞰楼体比较复杂可以把楼体合并成一个物体变成多重材质,然后对楼体进行整体完全烘焙;这样可以节省很多资源。

    2)对于建筑及地形,须检查模型的贴图材料平铺的比例,对于较远的地表(或者草地),可以考虑用一张有真实感的图来平铺,平铺次数少一些。对于远端的地面材料,如果平铺次数大了,真实感比较差。

     

     

     

    第二章      材质贴图规范

    1  材质和贴图类型

        我们目前使用的是Unity3D软件作为仿真开发平台,该软件对模型的材质有一些特殊的要求,在我们使用的3dsMax中不是所有材质都被Unity3D软件所支持,只有下面几种材质是被Unity3D软件所支持。

    Standard(标准材质)

         默认的通用材质球。基本上目前所有的仿真系统都支持这种材质类型。

    Multi/Sub-Object(多维/子物体材质)

         将多个材质组合为一种复合式材质,分别指定给一个物体的不同次物体选择级别。要注意的是,在VR场景制作中,Multi/Sub-Object材质中的子材质一定要是Standard标准材质。否则不被unity3d支持。我们在制作完模型进行烘焙贴图前都必须将所有物体塌陷在一起,塌陷后的新物体就会自动产生一个新的Multi/Sub-Object多维/子物体材质。因此,这种材质类型在我们的仿真制作中经常使用。

     

    2  贴图通道及贴图类型 

           Unity3D目前只支持Bitmap贴图类型,其它所有贴图类型均不支持。只支持Diffuse Color(漫反射)同self-Illumination(自发光,用来导出lightmap)贴图通道。

          Self-Illumination(不透明)贴图通道在烘焙lightmap后,需要将此贴图通道额channel设置为烘焙后的新channel,同时将生成的lightmap指向到self-Illumination。

     

    3贴图的文件格式和尺寸

         建筑的原始贴图不带通道的为JPG,带通道的为32位TGA,但最大别超过2048;贴图文件尺寸必须是2的N次方(8、16、32、64、128、256、512),最大贴图尺寸不能超过(1024×1024)。

         在烘培时将纹理贴图存为TGA 格式。

     

    4贴图和材质应用规则

        (1)    贴图不能以中文命名,不能有重名;

        (2)    材质球命名与物体名称一致;

        (3)    材质球的父子层级的命名必须一致;

        (4)    同种贴图必须使一个材质球;

        (5)    除需要用双面材质表现的物体之外,其他物体不能使用双面材质;

        (6)    材质球的ID号和物体的ID号必须一致。

        (7)    若使用CompleteMap烘焙,烘焙完毕后会自动产生一个Shell材质,必须将Shell材质变为Standard标准材质,并且通道要一致,否则不能正确导出贴图。

        (8)    带Alpha通道的贴图,在命名时必须加_al以区分。

     

    5通道纹理应用规则 

    模型需要通过通道处理时需要制作带有通道的纹理。在制作树的通道纹理时,最好将透明部分改成树的主色,这样在渲染时可以使有效边缘部分的颜色正确。通道纹理在程序渲染时占用的资源比同尺寸普通纹理要多。通道纹理命名时应以-AL结尾。 

     

     

     

    第三章      模型烘焙及导出

     

    模型烘焙

    1场景灯光

        (1)    渲染方式:采用Max自带的LightTracer光线追踪进行渲染。

        (2)    灯光效果控制:

        该项目在烘焙前会给出固定的烘焙灯光,灯光的高度、角度、参数均不可调整,可以在顶视图中将灯光组平移到自己的区块,必须要用灯光合并场景然后烘焙。

    2  烘焙贴图方式

        建筑模型的烘焙方式有两种:一种是LightMap烘焙贴方式,这种烘焙贴图渲染出来的贴图只带有阴影信息,不包含基本纹理。具体应用于制作纹理较清晰的模型文件(如地形),原理是将模型的基本纹理贴图和LightMap阴影贴图两者进行叠加。优点是最终模型纹理比较楚,而且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出FBX文件,不用修改贴图通道。缺点是LightingMap贴图不带有高光信息;

        另一种是CompleteMap烘焙方式,这种烘焙贴图方式的优点是渲染出来的贴图本身就带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。

    3   烘焙贴图设置

    ①    CompleteMap烘焙方式

         在进行CompleteMap烘焙设置时,应注意以下几点:

              a)     贴图通道和物体UV坐标通道必须为1通道,见图所示;



    b)     烘焙贴图文件存储格式为TGA格式;

    c)      烘焙设置见图所示。


    ②     LightingMap烘焙方式

    在进行LightingMap烘焙设置时,和CompleteMap设置有些地方不同:

    a)      贴图通道和物体UV坐标通道必须为3通道,见图所示;


    b)     烘焙时灯光的阴方式为Adv.RayTraced阴影,见图所示;


    c)      烘焙设置见图所示;


    d)     用LightingMap烘焙时,背景色要改为白色,可避免有黑边的情况;而用CompleteMap烘培时,背景色要改为与贴图近似的颜色。

     

    e)     在使用lightmap烘焙后,需要将材质改回Standard,然后将新生成的map拷贝到Standard的self-Illumination内,并设置正确的贴图通道。

     

    4  贴图UV编辑

    必须手动进行UV编辑。

    模型导出

    1、将烘培材质球改为标准材质球,通道为1,自发光100;

    2、将所有物体名、材质球名、贴图名保持一致

    3、合并顶点(大小要合适);

    4、清除场景,除了主要的有用的物体外,删除一切物件;

    5、清材质球,删除多余的材质球(不重要的贴图要缩小);

    6、按要求导出fbx(检查看是否要打组导出);




    第四章  场景模型验收

    模型制作流程


    模型验收流程


    模型验收标准



    第五章   模型备份提交标准

     

    文件标准备份模式:

    l   UV 坐标:存放地型和建筑烘培前编辑的UV坐标;

    l   导出fbx:存放最终导出的地型和建筑的fbx文件;

    l   烘培贴图:存放地型的最终贴图和建筑的最终烘培贴图,tga格式的,    同时这里面有一份转好的贴图;

    l   原始贴图:存放地型和建筑在制作过程中的所有的贴图;

    l   Max文件:原始模型,未做任何塌陷的,有UVW贴图坐标的文件。

    烘焙前模型,已经塌陷完的,展好UV的,调试好灯光渲染测试过的文件。

    烘焙后模型,已经烘培完的,未做任何处理的文件。

    导出模型,处理完烘培物体,合并完顶点,删除了一切没用物件的文件。

     

    第六章          项目命名要求

    1、建筑模型命名:区域名_jz_编号;如:SH01_01_jz_01、SH01_01_jz_02……

    2、建筑贴图命名:模型名_编号;如:SH01_01_jz_01_01……

    3、地形模型命名:区域名_dx_编号;如:SH01_01_dx_01……

    4、地形贴图命名:模型名_编号;如:SH01_01_dx_01_01……

    5、镂空贴图:要加“_al”后缀

    6、需要加特效的玻璃要加“_bl”后缀;(需要加特效的要单独一个物体烘焙)

    第七章   创建各资料路径

     

    1、航片存放路径

    2、各区域CAD导出的MAX文件

    3、照片资料

    4、公共纹理库资料

    5、客户提供的所有资料

    第七章          特殊制作要求

     

    1、            围墙、护栏、雨棚、车棚等要按实际制作。

    2、            照片与图纸不符时,以实际照片为主。

    3、            沿街店铺尽量与实际一致。

    4、            预估尺寸时尽量去借助照片中的参照物,如人、汽车、树木等。

    5、            除重点建筑外尽量简化模型,贴图做精,能用贴图表现结构的尽量用贴图表现。

    6、            绿化的种类、颜色尽量去实际一致。

    7、            建筑顶部的结构及顶部的附属设施尽量按实际制作。

    8、            建筑贴图时顶部要留出女儿墙的高度,避免出现窗户顶到建筑顶部。

    9、            建筑要制作入口。

    10、        地形、绿化要丰富。

    11、        书报亭、公交站、变电箱、烟囱、信号塔等要简单制作,以丰富场景。

    12、        所有贴图UV大小要准确,避免失真。




    展开全文
  • 在3dsmax制作好的模型动画,导出fbx到unity3d,无论在模型放在什么位置,只要使用Animation播放动画,该模型就会固定在某一个位置播放动画。 解决方法:新建一个空object,将该模型放在空object下,这样播放动画就...

    在3dsmax制作好的模型动画,导出fbx到unity3d,无论在模型放在什么位置,只要使用Animation播放动画,该模型就会固定在某一个位置播放动画。

    解决方法:新建一个空object,将该模型放在空object下,这样播放动画就不会固定在某一位置了。

    展开全文
  • Unity3D 旋转展示模型

    千次阅读 2019-05-03 09:57:58
    using UnityEngine; public class Move : MonoBehaviour { public GameObject Obj; private float axisX; private Vector3 prePos; private Vector3 nowPos; private void Start() ... ...
  • [Unity] Unity 3D 的旋转

    万次阅读 多人点赞 2018-05-11 14:24:39
    Unity 3D 的旋转 一、Unity 3D Rotation 在Unity中,旋转通常可以用一个三维向量(x,y,z)表示。实际上这是欧拉角。三个分量分别是绕x轴、y轴和z轴的旋转角度。 要对一个GameObject进行旋转,可以直接通过...
  • Unity3D-限制3D物体的旋转角度

    千次阅读 2018-08-16 16:20:48
    Unity中角度在它内部是用四元数表示的,这个我也弄不清楚,所以,在面板展示和你实际打印出来的localEulerAngles不一样!!可能你只是想改变x的角度,但是你转着转着可能看到变成x,y,z三个值都变了。 之前在...
  • Unity3D模型制作规范

    2019-06-30 18:05:52
    Unity3D模型制作规范 本文提到的所有数字模型制作,全部是用3D MAX建立的模型,即使是不同的驱动引擎,对模型的要求基本是相同的。当一个VR模型制作完成时,它所包含的基本内容包括:场景尺寸、单位,...
  • unity3d Quaternion 计算3D物体旋转角度

    千次阅读 2013-02-28 17:41:07
    3D程序,通常用quaternion来计算3D物体的旋转角度Matrix相比,quaternion更加高效,占用的储存空间更小,此外也更便于插值。在数学上,quaternion表示复数w+xi+yj+zk,其中i,j,k都是虚数单位。 ...
  •   接下来我打算将提取出来的lol人物模型导入到Unity3D中,这样会更加好玩!(不知道如何提取lol人物模型的话请看该链接)   首先我们已经把dae文件导入到c4d了,可以看到这是一只吹笛子的亚索:   选择 文件-...
  • 一、3D模型基础 1、Hierarchy 显示的是界面上的游戏对象(GameObject),每个游戏对象都有。至少要有一个Camera,点击Camera就可以在Preview看到摄像机的视角画面。每个对象有Position(位置)、Rotation(旋转、...
  • 因为系统自身提供的模型肯定是无法满足GD对游戏的策划,所以为了让游戏更加绚丽,我们须要调用美术制作的精品模型与动画,本章MOMO将带领盆友们学习Unity3D中模型的载入动画的播放,哇咔咔~~  由于MOMO手头上...
  • Unity 3D Text 穿透模型显示的解决方法

    千次阅读 2018-12-21 13:40:11
    Unity中3D Text的默认是穿透场景显示,即:即使Text前有模型,文字也会穿透模型显示在最前面,而是不是预期那样模型遮挡了文字,如图1所示:  图1 造成这种现象的原因是:3D Text的默认材质使...
  • unity3dmax模型的兼容问题

    千次阅读 2015-11-23 19:00:30
    3Dmax建模必须注意的细节。(注意!!是必须!!)可以简单参考我做的插头的命名和模型的各个物体的塌陷程度等~ 建模原则: 1模型结构要正确 2尽量不要出现破面黑面 3附加物体不要出现穿插。 4拼装位置一定要...
  • unity3d导入贴图和模型

    千次阅读 2013-05-23 09:07:39
    unity3d导入贴图和模型 Unity资源导入: 对于游戏资源导入可以导入图片,网格等。Project面板右键—〉import new asset 图片: 导入图片后再Project面板选中,会在Inspector面板出现其属性设置。 说说几个...
  • 以前转载了一篇关于在Unity3d中鼠标控制物体的旋转、移动、缩放的代码 然后发现错误比较多,就重新写了一个代码,自我感觉简单实用。。。特意分享出来供大家参考 原文章也贴出来吧 【Unity3d 鼠标滚动拉近模型、鼠标...
  • 但是有一个奇怪的现象,当Scene视窗的摄像机处于某个位置角度的时候,这个模型就出来了。 通过调整Scene视窗的摄像机的角度,我分析,可能是引擎做的某种优化,当模型的自身矩阵位置处于所有摄像机的视锥...
  • 写在前面的话,前两天有个朋友在QQ上问我 如何获取主角面朝方向一定区域的敌人对象。这个命题看似简单,其实里面蕴含了很多数学方面的东西。今天刚好有时间我就彻底的把这个疑问写在博客。希望可以帮助到他。 ...
  • 据说80%、90%Unity 3D程序员是自学的,大多数是看看书、实战视频、源码分析;而科班出生的同学会有3D数学这门核心课–估计占一个学期、会有作业等。为了赶上科班同学的水平,花点时间,补补数学知识,会使得自己少走...
  • [Unity3d]鼠标旋转缩放拖动模型

    千次阅读 2013-11-15 14:36:50
    实现鼠标旋转拖动缩放模型,非常不错的代码: using UnityEngine; using System.Collections; public class MouseControl : MonoBehaviour { public Transform target; private int MouseWheelSensitivity = 1...
1 2 3 4 5 ... 20
收藏数 4,279
精华内容 1,711
关键字:

unity3d中模型位置与角度