CN109903362B - 基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置 - Google Patents

基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置 Download PDF

Info

Publication number
CN109903362B
CN109903362B CN201910022991.6A CN201910022991A CN109903362B CN 109903362 B CN109903362 B CN 109903362B CN 201910022991 A CN201910022991 A CN 201910022991A CN 109903362 B CN109903362 B CN 109903362B
Authority
CN
China
Prior art keywords
screen
coordinates
watching
gazing
character model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910022991.6A
Other languages
English (en)
Other versions
CN109903362A (zh
Inventor
黄龙程
卢歆翮
陈汉辉
李茂�
吴海权
陈镇秋
江卓浩
杨键
陈晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Xishanju Network Technology Co ltd
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Guangzhou Xishanju Network Technology Co ltd
Zhuhai Kingsoft Digital Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Xishanju Network Technology Co ltd, Zhuhai Kingsoft Digital Network Technology Co Ltd filed Critical Guangzhou Xishanju Network Technology Co ltd
Priority to CN201910022991.6A priority Critical patent/CN109903362B/zh
Publication of CN109903362A publication Critical patent/CN109903362A/zh
Application granted granted Critical
Publication of CN109903362B publication Critical patent/CN109903362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置。其中方法包括:A、使用有向图对角色模型的运行时对象的引用、依赖状况进行引用关联;B、将角色模型对象作为最顶层,并且将动画器和注视管理控件的组件依附于该角色模型对象;C、获得输入设备屏幕的坐标,建立2D屏幕坐标与注视点3D坐标的互相映射;D、调用动画器的主视点和权重方法的设置函数,控制3D角色模型的注视方位。其中装置包括存储器和处理器,以被配置为实施上述方法。本发明能够使开发人员在进行3D模型自定义动作行为、交互等开发场景时,可以简化开发过程,减少开发工作量并得到较好的注视效果。

Description

基于Unity3D的2D坐标映射操作3D角色模型注视的方法及 装置
技术领域
本发明涉及一种基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置,属于游戏软件技术领域。本发明的技术方案适用于使用Unity3D引擎开发的软件或游戏项目。
背景技术
Unity3D引擎提供的动画组件(Animator)仅提供了基础动画播放、注视权重等控制接口,没有一套完善的针对3d角色注视与2d界面交互的解决方案。导致开发人员需要重复封装,使用过程中很多不便,对开发人员的开发能力有较高要求。
发明内容
本发明提供一种基于Unity3D引擎提供的Animator动画管理器,提供了一套基于2D手势操作,实现2D界面操作改变3D角色模型注视效果的解决方案。达到减少开发人员重复开发过程,方便开发人员快速利用该方案实现不同的软件或游戏效果。
本发明的技术方案第一方面为一种基于Unity3D的2D坐标映射操作3D角色模型注视的方法,所述方法包括以下步骤:
A、使用有向图对角色模型的运行时对象的引用、依赖状况进行引用关联;
B、将角色模型对象作为最顶层,并且将动画器和注视管理控件的组件依附于该角色模型对象;
C、获得输入设备屏幕的坐标,建立2D屏幕坐标与注视点3D坐标的互相映射;
D、调用动画器的主视点和权重方法的设置函数,控制3D角色模型的注视方位。
进一步,所述步骤A包括:
配置图节点共有的类型对象包括角色模型、注视管理控件、注视目标对象;
将角色模型引用至注视管理控件;
当角色模型实例化时,将角色模型引用至动画器;
当注视管理控件进行实例化时,将注视管理控件引用至动画器;
当注视管理控件实例化成功时,将角色模型引用至注视管理控件。
进一步,所述步骤B包括:
通过动画器的注视位置接口来调用目标的位置属性达到注视效果,并在注视管理控件添加约束注视对象范围参数,该参数包括管理注视对象ID、注视对象左右移动范围、注视对象上下移动范围和注视对象翻滚移动范围。
进一步,所述步骤C包括:
直接触碰屏幕取得的屏幕坐标;或者
通过UI相机的世界至屏幕点接口,来计算获得的屏幕坐标。
进一步,所述步骤C还包括:
设屏幕中心点为原点,获得输入的屏幕坐标,取得通过2D坐标映射注视管理控件的注视对象的约束范围参数,并转换为3D坐标并赋值给注视管理控件的目标的位置属性。
进一步,所述步骤C还包括:
划分2D屏幕区域,取屏幕中心点为原点a(x1,y1),取任意屏幕坐标b(x2,y2),计算得到c=((x2-x1)/x1,(y2-y1)/y1)=(x3,y3),其中,z轴的坐标默认不变,c乘以约束相关参数得到的注视对象坐标。
本发明的技术方案第二方面为一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述程序时实施上述的步骤。
本发明的技术方案第三方面为一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实施上述的步骤。
本发明的有益效果为:
提出一种基于Unity3D的屏幕手势操作3D角色模型注视的解决方案,使开发人员在进行3D模型自定义动作行为、交互等开发场景时,可以简化开发过程,减少开发工作量并得到较好的3D模型的注视效果。
附图说明
图1所示为根据本发明的方法的总体流程图。
图2所示为根据本发明实施例中的对象类型架构的示意图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
参考图1,根据本发明的方法包括以下步骤:A、使用有向图对角色模型的运行时对象的引用、依赖状况进行引用关联;B、将角色模型对象作为最顶层,并且将动画器和注视管理控件的组件依附于该角色模型对象;C、获得输入设备屏幕的坐标,建立2D屏幕坐标与注视点3D坐标的互相映射;D、调用动画器的主视点和权重方法的设置函数,控制3D角色模型的注视方位。
下面通过多个实施例来进一步描述上述步骤。参照图2,首先各类型对象引用关系。
1.使用有向图对该方案的运行时对象的引用、依赖状况进行抽象:
图节点共有以下类型:各类型对象引用关系
ObjectPlayer(角色模型,GameObject类型)
LookAtTarget(注视管理控件,MonoBehaviour继承对象)
Animator(动画器)
ObjectTarget(注视目标对象,GameObject类型)
图的边包含以下情况:
ObjectPlayer->LookAtTarget当一个ObjectPlayer有Animator组件时有此依赖关系
ObjectPlayer->Animator当ObjectPlayer实例化时有此引用关系
LookAtTarget->Animator当LookAtTarget实例化成功时有此引用关系
LookAtTarget->ObjectTarget当LookAtTarget实例化成功时有此引用关系
LookAtTarget->ObjectPlayer当LookAtTarget需要判断ObjectPlayer的Animator是否存在时有此引用关系。
2.ObjectPlayer为最顶层,Animator及LookAttarget组件依附于ObjectPlayer。初始顺序为ObjectPlayer->Animator->LookAtTarget,ObjectTarger为LookAtTarget的一个引用对象,可以是除了ObjectPlayer之外的任意对象并赋予个体LookAtTarget的target属性,其类型为GameObject,通过Animator.SetLookAtPosition接口调用target的position属性达到注视效果,并在LookAtTarget添加约束注视对象范围参数:
target -->管理注视对象
pitchArea —>(pitch1,pitch2)注视对象左右移动范围
yawArea —>(yaw1,yaw2)注视对象上下移动范围
rollArea —>(roll1,roll2)注视对象翻滚移动范围。
3、2D屏幕坐标与注视点3D坐标的互相映射。
获得输入设备屏幕坐标有两种情况:一种是直接触碰屏幕取得的屏幕坐标,一种是对象的position属性通过UI相机的WorldToScreenPoint接口计算获得的屏幕坐标。
设屏幕中心点为原点a(x0,y0),获得输入的屏幕坐标b(x1,y1),取得通过2D坐标映射LookAtTarget的pitchArea、yawArea、rollArea约束范围等参数转换为3D坐标并赋值给LookAtTarget.target的position属性。
然后,最终调用Animator的SetLookAtPosition、SetLookAtWeight方法实现最终注视效果。
在一些实施例中,可以针对手势操作改变角色模型注视相机的使用行为,具体步骤如下:
a.初始化3D角色模型ObjectPlayer,初始Animator组件;添加LookAtTarget组件,管理Animator组件,实例化并管理注视对象ObjectTarget
b.初始化配置及读取相关注视参数:
Animator.weight—>(范围0-1)注视的全局权重,倍增其他参数
Animator.bodyWeight—>(范围0-1)确定注视的身体多少被涉及
Animator.headWeight—>(范围0-1)确定头部的头部多少被涉及
Animator.eyesWeight—>(范围0-1)确定注视的眼睛多少被涉及
Animator.clampWeight—>(范围0-1)0.0表示角色完全无约束运动,1.0表示完全被限制(注视变为不可能),0.5表示能移动可能范围的一半(180°)
ObjectTarget实例化后赋值给LookAtTarget.target属性
LookAtTarget.pitchArea—>(pitch1,pitch2)注视对象左右约束移动范围
LookAtTarget.yawArea—>(yaw1,yaw2)注视对象上下约束移动范围
LookAtTarget.rollArea—>(roll1,roll2)注视对象翻滚约束移动范围
c.LookAtTarget添加void OnAnimatorIK()接口使用Animator.SetLookAtPosition接口取得target的position属性,使用Animator.SetLookAtWeight接口取得Animator的(weight、bodyWeight、headWeight、eyesWeight、clampWeight)属性。
d.2D屏幕坐标与注视点3D坐标的映射。
在一些实施例中,可以针对角色模型注视UI相机的使用行为,具体步骤如下:
初始化3D角色模型ObjectPlayer,初始Animator组件;添加LookAtTarget组件,管理Animator组件,注视对象设置为当前的UI相机的GameObject;
上述的b,c步骤;
取得当前UI相机的position属,通过调用当前UI相机的WorldToScreenPoint接口获得当前UI相机的2D屏幕坐标screenUI2DPos,通过2D屏幕坐标与注释掉3D坐标的映射,达到实现角色注视相机的效果。
在一些实施例中,2D屏幕坐标与注视点3D坐标的映射可以包括以下步骤:
划分2D屏幕区域,取屏幕中心点为原点a(x1,y1),取任意屏幕坐标b(x2,y2),即得到
c=((x2-x1)/x1,(y2-y1)/y1)=(x3,y3);
z轴的坐标默认不变,c乘以约束相关参数得到一个最新的注视对象坐标;
targetPosition=(Mathf.Lerp(pitch1,pitch2,x3),Mathf.Lerp(yaw1,yaw2,y3),z);
并把该值赋予给LookAtTarget的target的position属性。即可映射屏幕坐标改变角色模型注视行为。
应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (8)

1.一种基于Unity3D的2D坐标映射操作3D角色模型注视的方法,其特征在于,所述方法包括以下步骤:
A、使用有向图对角色模型的运行时对象的引用、依赖状况进行引用关联;
B、将角色模型对象作为最顶层,并且将动画器和注视管理控件的组件依附于该角色模型对象;
C、获得输入设备屏幕的坐标,建立2D屏幕坐标与注视点3D坐标的互相映射;
D、调用动画器的主视点和权重方法的设置函数,控制3D角色模型的注视方位。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括:
配置图节点共有的类型对象包括角色模型、注视管理控件、注视目标对象;
将角色模型引用至注视管理控件;
当角色模型实例化时,将角色模型引用至动画器;
当注视管理控件进行实例化时,将注视管理控件引用至动画器;
当注视管理控件实例化成功时,将角色模型引用至注视管理控件。
3.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
通过动画器的注视位置接口来调用目标的位置属性达到注视效果,并在注视管理控件添加约束注视对象范围参数,该参数包括管理注视对象ID、注视对象左右移动范围、注视对象上下移动范围和注视对象翻滚移动范围。
4.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
直接触碰屏幕取得的屏幕坐标;或者
通过UI相机的世界至屏幕点接口,来计算获得的屏幕坐标。
5.根据权利要求4所述的方法,其特征在于,所述步骤C还包括:
设屏幕中心点为原点,获得输入的屏幕坐标,取得通过2D坐标映射注视管理控件的注视对象的约束范围参数,并转换为3D坐标并赋值给注视管理控件的目标的位置属性。
6.根据权利要求4所述的方法,其特征在于,所述步骤C还包括:
划分2D屏幕区域,取屏幕中心点为原点a(x1,y1),取任意屏幕坐标b(x2,y2),计算得到c=((x2-x1)/x1,(y2-y1)/y1)=(x3,y3),其中,z轴的坐标默认不变,c乘以约束相关参数得到注视对象坐标(Mathf.Lerp(pitch1,pitch2,x3),Mathf.Lerp(yaw1,yaw2,y3),z),其中,所述约束相关参数包括以下至少之一:注视对象左右移动范围、注视对象上下移动范围;并且其中,(pitch1,pitch2)是注视对象左右约束移动范围,(yaw1,yaw2)是注视对象上下约束移动范围。
7.一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实施如权利要求1至6中任一项所述的方法。
8.一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实施如权利要求1至6中任一项所述的方法。
CN201910022991.6A 2019-01-10 2019-01-10 基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置 Active CN109903362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910022991.6A CN109903362B (zh) 2019-01-10 2019-01-10 基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910022991.6A CN109903362B (zh) 2019-01-10 2019-01-10 基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置

Publications (2)

Publication Number Publication Date
CN109903362A CN109903362A (zh) 2019-06-18
CN109903362B true CN109903362B (zh) 2023-03-17

Family

ID=66943617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910022991.6A Active CN109903362B (zh) 2019-01-10 2019-01-10 基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置

Country Status (1)

Country Link
CN (1) CN109903362B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124116A (zh) * 2019-12-18 2020-05-08 佛山科学技术学院 一种虚拟现实中与远距离物体交互方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4134191B2 (ja) * 2006-04-17 2008-08-13 株式会社スクウェア・エニックス ゲーム装置、キャラクタの表示方法、並びにプログラム及び記録媒体
CN100573620C (zh) * 2008-01-29 2009-12-23 武汉理工大学 基于虚拟现实的驾驶员注视物体识别系统
CN101533523B (zh) * 2009-02-27 2011-08-03 西北工业大学 一种虚拟人眼部运动控制方法
US10489957B2 (en) * 2015-11-06 2019-11-26 Mursion, Inc. Control system for virtual characters
CN105488834B (zh) * 2015-12-01 2019-03-19 网易(杭州)网络有限公司 角色面部朝向的调整方法及装置
CN106952325B (zh) * 2017-03-27 2020-07-21 厦门黑镜科技有限公司 用于操作三维动画角色的方法和装置

Also Published As

Publication number Publication date
CN109903362A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
US10902250B2 (en) Mode-changeable augmented reality interface
CN110114746A (zh) 显示虚拟现实画面的方法和虚拟现实设备
CA2922971C (en) Coordinating user interface elements across screen spaces
JP2022019748A (ja) 複合現実において動的仮想コンテンツを生成するデバイスおよび方法
US20190278697A1 (en) Representing a test execution of a software application using extended reality
US20230290032A1 (en) Physical special effect rendering method and apparatus, computer device, and storage medium
CN109840946A (zh) 虚拟对象显示方法及装置
CN109903362B (zh) 基于Unity3D的2D坐标映射操作3D角色模型注视的方法及装置
CN109345558A (zh) 图像处理方法、装置、介质和电子设备
Choi et al. k-MART: Authoring tool for mixed reality contents
CN112783660A (zh) 虚拟场景中的资源处理方法、装置及电子设备
CN102810210A (zh) 利用flash脚本实现的三维骨骼动画控制系统及方法
US20220130100A1 (en) Element-Based Switching of Ray Casting Rules
US9563723B1 (en) Generation of an observer view in a virtual environment
US20140092088A1 (en) Providing a three-dimensional view that includes a plurality of systems engineering models
CN111047716B (zh) 三维场景的态势标绘方法、计算机存储介质及电子设备
EP3528126B1 (en) Representing a test execution of a software application using extended reality
CN112451967A (zh) 基于3d屏幕交互的游戏交互方法、装置和计算机设备
CN106445487B (zh) 用于控制交互式组件的处理单元、软件以及方法
Trindade et al. LVRL: Reducing the gap between immersive VR and desktop graphical applications
EP4089506A1 (en) Element-based switching of ray casting rules
WO2023197729A1 (zh) 对象渲染方法、装置、电子设备及存储介质
Zhang et al. Calar: A c++ engine for augmented reality applications on android mobile devices
Liao et al. A service platform for streamlining the production of cyber–physical interactive performance art
Halpern et al. Characters, Coroutines, and Spawn Points

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Applicant after: Guangzhou Xishanju Network Technology Co.,Ltd.

Address before: 519000 building 3, Jinshan Software Park, 325 Qiandao Ring Road, Xiangzhou District, Zhuhai City, Guangdong Province

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

Applicant before: GUANGZHOU SEASUN ENTERTAINMENT NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant