SteamVR_Skeleton_Poser

  • SteamVR_Skeleton_Poser 的 Public 方法

官网讲解,只讲了动作输入和混合

#更换拿东西的手部模型

在1那里更换手的模型,也可以在2里查看该代码的实现

#多个手部姿势的调用
在拿东西的第一时刻会调用 主手部姿势,也就是有 (MAIN) 标识的

启用混合的代码,在上面给的链接中有,这里是直接在那截的图

SteamVR_Skeleton_Poser 的 Public 方法

`

    /// <summary>/// Set the blending value of a blendingBehaviour. Works best on Manual type behaviours./// 设置混合行为的混合值。最适用于手动类型的行为。/// </summary>public void SetBlendingBehaviourValue(string behaviourName, float value){PoseBlendingBehaviour behaviour = FindBlendingBehaviour(behaviourName);if (behaviour != null){behaviour.value = value;if (behaviour.type != PoseBlendingBehaviour.BlenderTypes.Manual){Debug.LogWarning("[SteamVR] Blending Behaviour: " + behaviourName + " is not a manual behaviour. Its value will likely be overriden.", this);}}}/// <summary>/// Get the blending value of a blendingBehaviour./// 获取混合行为的混合值。/// </summary>public float GetBlendingBehaviourValue(string behaviourName){PoseBlendingBehaviour behaviour = FindBlendingBehaviour(behaviourName);if (behaviour != null){return behaviour.value;}return 0;}/// <summary>/// Enable or disable a blending behaviour./// 启用或禁用混合行为。/// </summary>public void SetBlendingBehaviourEnabled(string behaviourName, bool value){PoseBlendingBehaviour behaviour = FindBlendingBehaviour(behaviourName);if (behaviour != null){behaviour.enabled = value;}}/// <summary>/// Check if a blending behaviour is enabled./// 检查是否启用了混合行为。/// </summary>/// <param name="behaviourName"></param>/// <returns></returns>public bool GetBlendingBehaviourEnabled(string behaviourName){PoseBlendingBehaviour behaviour = FindBlendingBehaviour(behaviourName);if (behaviour != null){return behaviour.enabled;}return false;}/// <summary>/// Get a blending behaviour by name./// 通过名称获得混合行为。/// </summary>public PoseBlendingBehaviour GetBlendingBehaviour(string behaviourName){return FindBlendingBehaviour(behaviourName);}/// <summary>/// 通过 index 获得 SteamVR_Skeleton_Pose 。/// </summary>public SteamVR_Skeleton_Pose GetPoseByIndex(int index){if (index == 0) { return skeletonMainPose; }else { return skeletonAdditionalPoses[index - 1]; }}/// <summary>/// Retrieve the final animated pose, to be applied to a hand skeleton,/// 检索最后的动画姿态,将应用到一个手骨架/// </summary>/// <param name="forAction">The skeleton action you want to blend between,/// 您想要混合的框架动作</param>/// <param name="handType">If this is for the left or right hand,/// 如果这是左手或右手</param>public SteamVR_Skeleton_PoseSnapshot GetBlendedPose(SteamVR_Action_Skeleton skeletonAction, SteamVR_Input_Sources handType){UpdatePose(skeletonAction, handType);return GetHandSnapshot(handType);}/// <summary>/// Retrieve the final animated pose, to be applied to a hand skeleton,/// 检索最后的动画姿态,将应用到一个手骨架/// </summary>/// <param name="skeletonBehaviour">The skeleton behaviour you want to get the action/input source from to blend between,/// 您希望从其中获取操作/输入源的框架行为</param>public SteamVR_Skeleton_PoseSnapshot GetBlendedPose(SteamVR_Behaviour_Skeleton skeletonBehaviour){return GetBlendedPose(skeletonBehaviour.skeletonAction, skeletonBehaviour.inputSource);}/// <summary>/// Updates all pose animation and blending. Can be called from different places without performance concerns, as it will only let itself run once per frame./// 更新所有的姿势动画和混合。可以在不考虑性能的情况下从不同的地方调用,因为它每帧只运行一次。/// </summary>public void UpdatePose(SteamVR_Action_Skeleton skeletonAction, SteamVR_Input_Sources inputSource){// only allow this function to run once per frameif (poseUpdatedThisFrame) return;poseUpdatedThisFrame = true;if (skeletonAction.activeBinding){// always do additive animation on main poseblendPoses[0].UpdateAdditiveAnimation(skeletonAction, inputSource);}//copy from main pose as a baseSteamVR_Skeleton_PoseSnapshot snap = GetHandSnapshot(inputSource);snap.CopyFrom(blendPoses[0].GetHandSnapshot(inputSource));ApplyBlenderBehaviours(skeletonAction, inputSource, snap);if (inputSource == SteamVR_Input_Sources.RightHand)blendedSnapshotR = snap;if (inputSource == SteamVR_Input_Sources.LeftHand)blendedSnapshotL = snap;}

SteamVR_Skeleton_Poser的理解相关推荐

  1. 【加餐】如何在SteamVR 2 中替换手部模型

    根据学员朋友的反馈,新增3节加餐课时,关于如何在新版SteamVR中基于Skeleton Input实现手部模型的替换. 在VR应用程序中,要呈现自制的手部模型,传统的方式是直接将模型导入,放置在手柄 ...

  2. 深度学习模型——AlexNet

    查看全文 http://www.taodudu.cc/news/show-4898981.html 相关文章: <引爆核能-销售演讲与呈现技巧>司铭宇 2014学习计划上 学习 Java ...

  3. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  4. stream流对象的理解及使用

    我的理解:用stream流式处理数据,将数据用一个一个方法去 . (点,即调用) 得到新的数据结果,可以一步达成. 有多种方式生成 Stream Source: 从 Collection 和数组 Co ...

  5. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

  6. java局部变量全局变量,实例变量的理解

    java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...

  7. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  8. 熵,交叉熵,散度理解较为清晰

    20210511 https://blog.csdn.net/qq_35455503/article/details/105714287 交叉熵和散度 自己给自己编码肯定是最小的 其他的编码都会比这个 ...

  9. mapreduce理解_大数据

    map:对不同的数据进行同种操作 reduce:按keys 把数据规约到一起 看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop 与MapReduce的整体有所了解了. [前言 ...

最新文章

  1. 头条面试官:NIO 是不是就是I/O多路复用?我:不是
  2. Evolview:提升系统进化树颜值
  3. springmvc 将post转换为delete,put
  4. SEO配置信息操作文档
  5. public class UserServiceImpl extends ServiceImpl UserMapper, User implements UserService
  6. python字节码大全
  7. linux软链接的创建、删除和更新
  8. vue --- v-for、v-on、v-model、v-once
  9. 【面试宝典 | 01】面经
  10. CAN和CANOpen的关系
  11. java面试算法总结_java编程面试过程中常见的10大算法概念汇总
  12. KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]
  13. jQuery方式追加div覆盖
  14. java 有序不重复_Java中自定义有序不重复的集合——SetList
  15. mocano editor中使用代码比对功能
  16. 【问题】myeclipse启动时Tocmat错误:cound not create the view :An unexpencted expetion was thrown
  17. r 语言计算欧氏距离_R语言-KNN算法
  18. 【九州贯连智能家居——拥抱华为5.5G,打造未来家居公共物联网关,让生活赋能】
  19. 常用的dede标签小总结
  20. 基于yolov5-6.0版本的PCB板缺陷检测(Python/C++部署)

热门文章

  1. STemWin的移植
  2. CADe_SIMU软件实现传送带电气线路的仿真
  3. MyBatis的resultType
  4. 如何去评估一个算法的时间复杂度?
  5. PLL锁相环基本原理介绍
  6. USB扫码枪二维码读取(一)——U3D篇
  7. 考研——思想政治理论书本选择复习规划
  8. Altium Designer 10 下载和安装遇到的问题
  9. PID及串级PID的理解
  10. 跨境支付反洗钱业务逻辑和相关大数据分析技术实现