当前位置: 首页 > wzjs >正文

河北省建设工程安全生产网站web成品网站源码免费

河北省建设工程安全生产网站,web成品网站源码免费,程序小程序开发公司,企业做网站大概多少钱目录 1 正向动力学和反向动力学 1.1 正向动力学 1.2 反向动力学 1.3 实现目标 2 实现反向动力 2.1 先定义一个目标 2.2 动画层layer,需要加 IK pass 2.3 增加头部朝向代码 2.3.1 专门的IK方法 OnAnimatorIK(int layerIndex){} 2.3.2 增加朝向代码 2.4 …

目录

1 正向动力学和反向动力学

1.1 正向动力学

1.2 反向动力学

1.3 实现目标

2 实现反向动力

2.1  先定义一个目标

2.2 动画层layer,需要加 IK pass

2.3 增加头部朝向代码

2.3.1 专门的IK方法  OnAnimatorIK(int layerIndex){}

2.3.2 增加朝向代码

2.4 增加头部朝向代码

2.5  需要设置权重

2.6 需要设置位置position 和 rotation

2.7 具体代码: 头部和手都实现了IK朝向


1 正向动力学和反向动力学

1.1 正向动力学

  • 正常的模型身体的运动
  • 模仿人体的真实的骨骼。

1.2 反向动力学

  • 真实世界中,不存在的,相反的一个骨骼方式
  • 用目标---牵引 手指---牵引手臂,这样反向的指引方式
  • 游戏里IK相关的就是

1.3 实现目标

  • 想实现,玩家角色的眼睛,头部,手,一直指向目标

2 实现反向动力

2.1  先定义一个目标

public class TestPlayer1 : MonoBehaviour

{

    public Transform target1;

    private Animator animator1;

2.2 动画层layer,需要加 IK pass

  • 需要进行反向动力学的动画层,
  • 动画层layer,需要加 IK pass

2.3 增加头部朝向代码

2.3.1 专门的IK方法  OnAnimatorIK(int layerIndex){}

  • 需要专门的IK方法 
  • private void OnAnimatorIK(int layerIndex){}

2.3.2 增加朝向代码

  • animator1.SetLookAtWeight(1);
  • animator1.SetLookAtPosition(target1.position);

    private void OnAnimatorIK(int layerIndex)

    {

        //设置头部IK  Weight=0表示不生效

        animator1.SetLookAtWeight(1);

        animator1.SetLookAtPosition(target1.position);

    }

2.4 增加头部朝向代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestPlayer1 : MonoBehaviour
{public Transform target1;private Animator animator1;// Start is called before the first frame updatevoid Start(){animator1=GetComponent<Animator>();}// Update is called once per framevoid Update(){float horzontal=Input.GetAxis("Horizontal");float vetical=Input.GetAxis("Vertical");Vector3 dir1=new Vector3(horzontal,0,vetical);Debug.DrawRay(transform.position,dir1,Color.red);//如果按下了移动按键if(dir1 != Vector3.zero){//面向向量transform.rotation=Quaternion.LookRotation(dir1);//播放跑步动画animator1.SetBool("IsRun",true);//朝着面向的前方移动transform.Translate(Vector3.forward*2*Time.deltaTime);}else{//播放walk动画animator1.SetBool("IsRun",false);}if(Input.GetKeyDown(KeyCode.Q)){//触发wave参数GetComponent<Animator>().SetTrigger("wave");}//获得曲线的test1参数//Debug.Log(animator1.GetFloat("test1"));}void rightfoot(){Debug.Log("右脚");}void leftfoot(){Debug.Log("左脚");}private void OnAnimatorIK(int layerIndex){//设置头部IK  Weight=0表示不生效animator1.SetLookAtWeight(1);animator1.SetLookAtPosition(target1.position);}}

2.5  需要设置权重

  • 权重=1 表示生效
  • animator1.SetIKPositionWeight(AvatarIKGoal.RightHand,1);
  • animator1.SetIKRotationWeight(AvatarIKGoal.RightHand,1);

       

   private void OnAnimatorIK(int layerIndex)

    {

        //设置头部IK  Weight=0表示不生效

        animator1.SetLookAtWeight(1);

        animator1.SetLookAtPosition(target1.position);

        //设置右手position的IK权重

        animator1.SetIKPositionWeight(AvatarIKGoal.RightHand,1);

        //设置右手旋转IK权重

        animator1.SetIKRotationWeight(AvatarIKGoal.RightHand,1);

        //设置右手IK

        animator1.SetIKPosition(AvatarIKGoal.RightHand,target1.position);

        animator1.SetIKRotation(AvatarIKGoal.RightHand,target1.rotation);

    }

2.6 需要设置位置position 和 rotation

  • //设置右手IK
  • animator1.SetIKPosition(AvatarIKGoal.RightHand,target1.position);
  • animator1.SetIKRotation(AvatarIKGoal.RightHand,target1.rotation);

2.7 具体代码: 头部和手都实现了IK朝向

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestPlayer1 : MonoBehaviour
{public Transform target1;private Animator animator1;// Start is called before the first frame updatevoid Start(){animator1=GetComponent<Animator>();}// Update is called once per framevoid Update(){float horzontal=Input.GetAxis("Horizontal");float vetical=Input.GetAxis("Vertical");Vector3 dir1=new Vector3(horzontal,0,vetical);Debug.DrawRay(transform.position,dir1,Color.red);//如果按下了移动按键if(dir1 != Vector3.zero){//面向向量transform.rotation=Quaternion.LookRotation(dir1);//播放跑步动画animator1.SetBool("IsRun",true);//朝着面向的前方移动transform.Translate(Vector3.forward*2*Time.deltaTime);}else{//播放walk动画animator1.SetBool("IsRun",false);}if(Input.GetKeyDown(KeyCode.Q)){//触发wave参数GetComponent<Animator>().SetTrigger("wave");}//获得曲线的test1参数//Debug.Log(animator1.GetFloat("test1"));}void rightfoot(){Debug.Log("右脚");}void leftfoot(){Debug.Log("左脚");}private void OnAnimatorIK(int layerIndex){//设置头部IK  Weight=0表示不生效animator1.SetLookAtWeight(1);animator1.SetLookAtPosition(target1.position);//设置右手position的IK权重animator1.SetIKPositionWeight(AvatarIKGoal.RightHand,1);//设置右手旋转IK权重animator1.SetIKRotationWeight(AvatarIKGoal.RightHand,1);//设置右手IKanimator1.SetIKPosition(AvatarIKGoal.RightHand,target1.position);animator1.SetIKRotation(AvatarIKGoal.RightHand,target1.rotation);}}

http://www.dtcms.com/wzjs/155968.html

相关文章:

  • 企业中英文网站建设seo推广怎么收费
  • 网站搜索引擎优化案例百度推广费用多少
  • 广州建设银行预约公积金网站索引擎优化 seo
  • 软件项目管理流程图小红书seo
  • 网站制作行业越来越难做宁波seo关键词如何优化
  • dw2019怎么做网站分类达人的作用
  • 大型平台网站开发网站点击量软件
  • 防止做网站的人修改数值木卢seo教程
  • 网站登录页面盗号怎么做网站关键词优化有用吗
  • 建设一个怎样的自己的网站河池网站seo
  • 网站打开显示建设中正规推广赚佣金的平台
  • 做微博推广的网站吗厦门seo网络优化公司
  • 武汉营销类网站设计长尾关键词挖掘
  • php旅游网站cmsseo建站工具
  • 网站设计制作简单实例长春百度关键词优化
  • 中国建设人才服务信息网是什么网站网页优化包括
  • 网站做游戏活动策划方案网站制作价格
  • 0317网站建设北京刚刚传来特大消息
  • dw和vs做网站常州网站seo
  • 临沂做进销存网站厦门关键词优化平台
  • 公司建设网站公司郑州seo博客
  • 花店网站建设的工作流程网站seo站外优化
  • 网站宝的作用关键词优化外包服务
  • 前端和后端seo快速优化软件网站
  • 灯塔网站制作公司营销方案案例范文
  • 网站多个用户怎样建设公关公司一般收费标准
  • 连云港做网站公司关键词排名优化公司推荐
  • 学校网站建设的作用百度搜索 手机
  • 菜鸟怎样做自己的网站seo快速排名首页
  • 有做lol直播网站windows优化大师官方