admin 管理员组文章数量: 1087139
2024年4月17日发(作者:orphanremoval和cascadetype)
第30卷第11期
计算机应用
V01.30 No.11
2010年I1月
Journal of Computer Applications
NOV.201O
文章编号:1001—9081(2010)11—3084—03
基于Java 3D的虚拟人仿真方法
李 倩‘,吉晓民 ,王明亮
(1.西安理工大学艺术与设计学院,西安710048;2.陕西宏亮电子科技有限公司,西安710075)
(13984536@qq.corn)
摘要:提出一种将3DS MAX、MS3D与Java 3D编程技术相结合的虚拟人仿真方法,可使虚拟人达到相对逼真且
交互性强的效果。该方法首先采用3DS MAX角色动画技术进行人体静态建模和动作建模;然后通过将底层基本动作
片段转化为MS3D格式,供Java 3D的骨骼动画模型接口调用;最后利用Java 3D编程来控制虚拟人的高层行为活动。
该方法有利于角色建模、运动仿真和行为控制等设计工作的分工协作,适合于网络环境下多角色、复杂动作的虚拟人
仿真。
关键词:虚拟人;网络环境:交互控制
中图分类号:TP391.9 文献标志码:A
Virtual human simulation method based on Java 3 D
LI Qian ,JI Xiao—min ,WANG Ming—liang
(1.College ofArt and Design,Xi'an University ofTechnology,Xihn Shaanxi 710048,China;
2.Shaanxi Hongliang TechnolOgy Company Limited,Xi'an Shaanxi 710075,China)
Abstract:The paper proposed a simulation method of virtual human by combining 3DS MAX,MS3D and Java 3D
programming,which could achieve a relatively realistic strong interaction effect on vitrual human.First,3DS MAX role
animation techniques were taken as a too1 to construct the human static and dynamic models。then the underlying basic action
footage were transformed into MS3 D format for skeletal animation model interface of Java 3 D,last the hJ gh.1evel behaviors of
vitrual human were controlled by Java 3D programming.The experiments demonstrate that the method is effective for the
division of responsibilities between role modeling,motion simulation and behavior control,and it is also suitable for the mulit.
role,complex motions of the vitrual human simulation in the network environment.
Key words:vitrual human;network environment;interactive control
0 引言
性、不规则性、逼真性等,要在一个VRML文件中准确地表达
动作以及确定许多低阶的参数是非常困难的 j。另外虚拟
随着虚拟现实技术的发展,在虚拟环境中加入虚拟人进
人如果不是骨骼蒙皮,各关节连接部位的网格在运动时,极可
行各种交互行为来增强沉浸感已成主流。虚拟人是人在计算
能会出现破裂现象。而如果在程序中自己建立骨骼蒙皮,将
机生成空间中几何特性与行为特性的逼真表示…。作为一
皮肤网格节点与骨骼节点进行细致对应,并针对受关节影响
门跨学科、跨领域的综合性学科,虚拟人技术被广泛应用于医 的程度设定权重,又会增加程序的计算量,实时性变差。如果
学、航天技术、服装设计、影视、虚拟环境、游戏、教育等领域。 创建虚拟人的骨骼蒙皮动画,然后利用三维显示技术在虚拟
虚拟人的运动控制一直属于技术难点,大部分仍处于实 环境中载入、驱动并显示虚拟人,则具有绘制速度快、可靠性
验室的研究阶段 。虚拟人形成逼真动作的主流技术是动
高、可扩展性强等优点,文献[9—10]分别采用Lucid 3D和
作捕获、骨骼动画等。电影公司正是采用这些技术制作出了
Direct 3D技术完成了虚拟人的显示与驱动,但是并没有提到
非常逼真的虚拟人角色,可这些模型和它们的动作无法嵌入
是否能应用于三维网络。
到其他应用系统中去,脱离了动画工具的环境,就成为了不具
现有网络虚拟人仿真技术受时间、设备等限制,大部分存
备自主行为能力的动画视频。国内外很多科研机构利用自己
在一定的局限性。为进一步提高虚拟人与虚拟环境的交互
的三维虚拟人运动及显示技术开发的虚拟人仿真系统,由于
性,增强三维网络世界的逼真度和沉浸感,本文采用骨骼蒙皮
大多采用铰链式人体模型,即以肢体作为杆件,关节为连接点
动画工具建立虚拟人的几何外形与基本动作片段,然后利用
来进行运动控制,自主行为能力虽得到了增强,但逼真度却大 Java 3D三维网络虚拟现实技术来驱动和控制虚拟人的行为
为降低,也不适用于网络虚拟环境 。
活动,达到了三维网络环境下,制作简便、运算量小、效果逼
目前,虚拟现实建模语言(Virtual Reality Modeling
真、通用化程度高的效果。
Language,VRML)是常用的Web 3D应用技术。尽管VRML
适应网络虚拟人的需求,但是存在很多局限性:首先是其提供
l 网络虚拟人仿真流程与建模
的交互能力不强 场景描述信息与程序控制脚本共存于一个
网络虚拟人的关键技术包括虚拟人的角色建模、虚拟人
VRML文件,不便于开发者使用;其次由于虚拟人动作的多样 的运动控制以及虚拟人在复杂场景的实时绘制和碰撞检测
收稿日期:2010—05—27;修回日期:2010—07—21。 基金项目:陕西省自然科学基金资助项目(201OJM7011)。
作者简介:李倩(1981一),女,江苏海门人,博士研究生,主要研究方向:工业产品造型设计、虚拟现实; 吉晓民(1958一),男,陕西乾县人,
教授,博士生导师,博士,主要研究方向:机械设计、产品造型与仿真;王明亮(1973一),男,陕西渭南人,软件工程师,主要研究方向:虚拟现实、
软件开发。
第11期 李倩等:基于Java 3D的虚拟人仿真方法 3085
等。本文主要研究其中最重要的角色建模和运动控制部分。
究,技术已相当成熟,因此可以借鉴。为了生成更为复杂逼真
整个虚拟人仿真制作流程如图1所示,首先利用3DS MAX及 的骨骼运动,需要对已有的动作数据进行修改或合成操作,或
其插件来进行虚拟人的静态建模和动作建模,然后把完整的
利用各种运动控制技术(尤其是运动捕捉技术)生成的人体
角色动画模型导出为特定的文件格式,并通过MilkShape 3D
动作片断来进行编辑。当一个基本运动建好后,可以保存为
软件转化为MS3D文件供Java 3D程序调用。
Bip文件,它包括了脚步时间分配和身体的关键帧信息以及
I’一一一一一一一一一一l
:l I!一角色静态建模 一,H C=.H j X垂 是
位置信息。骨骼蒙皮后的角色模型一旦进行动作加载,即可
形成骨骼动画。
角色动作建模
3)MS3D模型格式转化。
MilkShape 3D是一个低多边形建模工具。利用
Act0rx插件3D MAX软件Charact Studio插件
导出}
MilkShape 3D可以制作自己的骨骼动画,也可以通过该软件
l
把其他格式的文件转化为MS3D格式,因为MilkShape 3D的
导入
Ps ps JPG文件
.
骨骼动画能支持来自27种不同游戏/7I擎/程序的37种不同
MilkShape 3D软件
文件格式。本文利用ActorX插件,把完整的角色动画模型从
导入l 。
3DS MAX里导出为PSA,PSK和JPG文件,然后把PSA、PSK
两文件顺次导入MilkShape 3D软件中,并指定JPG材质贴图,
I MS 3D ̄ISI Java3D;{ ̄
最后导出为MS3D格式。MS3D作为骨骼动画的模型格式,
l 网络、操作系统
适用于Java 3D程序中对虚拟人的调用。
图1虚拟人仿真流程
Java 3D对虚拟人的高层行为控制技术建立在底层角色
2 Java 3D程序控制
运动仿真片段的基础上,来控制虚拟人的行为动作和运动路
2.1 虚拟人的载入、显示和驱动
径,进而完成各种逼真的交互动作。网络虚拟人的关键技术
本文采用Java 3D虚拟现实语言来进行虚拟人的高级行
描述如下:
为控制。Java 3D是面向Internet的交互式三维图形应用编程
1)角色静态建模。
接口。它基于OpenGL和DirectX等低层API,既充分利用原有
角色的静态建模分为皮肤、肌肉、骨骼3个层次。为了简
的三维硬件加速能力,又解决了网络跨平台环境下的可视化问
化模型,本文只使用皮肤与骨骼层。
题。Java 3D提供的骨骼动画模型接口,可为网络虚拟人交互
皮肤层的真实感程度直接影响到虚拟人外形的逼真程
动画提供很好的技术支持。通过该接口,Java 3D可以在虚拟
度,建好后需进行减面处理,来缩减模型的文件量,从而更好
环境中载人、显示并驱动MS3D骨骼动画模型文件,让它在虚
地满足三维网络的需求,图2(a)为皮肤层。
拟场景中进行交互运动。程序接口调用的部分代码如下:
骨骼层次可通过Bones层级系统来创建自定义骨骼模
MilkLoader loader=new MilkLoader();
型,但制作复杂耗时,很难保证后期骨骼动作的连贯和自然。
//生成MS3D文件加载接口对象
本文采用Character Studio外挂插件来直接导入两足角色骨架
String iflename=”women.ms3d”:
(Biped),如图2(b)。为了让骨骼驱动角色模型产生合理的
java.io.File file=new java.io.File(filename);
运动,把模型绑定到骨骼上的技术叫做蒙皮 。蒙皮后的角
if(file.getParent()f-nul1)
色模型可随着骨骼系统的运动而发生真实的变形,包括皮肤
if(file.getParent().1ength()>0)
的拉伸、扭转、压缩等。图2(C)显示了骨骼蒙皮的状态。
loader.setBasePath(file.getParent()+java.io.File.separator);
loader.setFlags(MilkLoader.LOAD—AI上);
Scene scene; //iava3 D场景
MilkAnimation animation;
try f
scene=loader.1oad(file.getName()); //动画节点对象
animation=(MilkAnimation)scene.getBehaviorNodes()[0】;
//取第一个骨骼动画
animation.setEnable(true);
animation.setDuration(70); //设置骨骼动画每帧播放时长
animation.setSchedulingBonnds(new BoundingSphere(new Point3d
(a)皮肤模型 (b)Biped骨骼模型 (c)骨骼蒙皮模型
(0,0,0),Double.3DS MAX—VALUE)); //动画有效范围
图2角色动画建模
scene.getSeeneGroup().addCbild(scene.getBehaviorNodes()[01);
2)角色动作建模。
//把骨骼动画付给分支对象
动作建模是角色动画的重点和难点。制作后的动作模型
TrnasformGroup tg
avater=new TransformGroup();
Transform3D td
可应用和重定向到单一物体、整个角色或角色内的特定物体
avater=new Transform3D();
和轨道组。Biped有多种方法可进行动作建模。如在自由形
tg avater ̄addChild(scene.getSceneGroup());
//将虚拟人加入到场景中
式下手动创建关键帧,使用代表和控制IK运动约束位置的脚
步技巧来创建缺省的行走、奔跑或跳跃循环。利用跟踪图创
对一些固定的动作,没必要在程序中实时控制,Java 3D
建和调整Biped关键帧,编辑Biped脚步以及指定一个自由变
通过载入MS3D骨骼动画文件来驱动虚拟人,这样可以减小
形阶段的方程。另外,通过Biped和样条动力学工具精确控
计算量从而保证虚拟人运动的实时性。MS3D骨骼动画文件
制角色上的物理力,模拟重力加速度,计算两足动物的空中飞
库包含了虚拟人的基本行为片段,如站立、前进、后退、弯腰、
行轨迹线、着地时的膝盖弯曲以及总体平衡。
坐下等。广义上人的行走除了直立行走外,还应包括跑、弯腰
很多常见动作,虽然内部状态比较复杂,但经过不断研
行走、低头行走、携物行走、匍匐、攀登等,因此虚拟人的动作
3086 计算机应用 第30卷
库中需存有覆盖所有动作和动作幅度的基本动作。
如果时刻计算并判断所采取的动作和发生的结果,高昂的运算
2.2虚拟人的高层行为控制 成本会降低画面的实时性。因此要满足三维渲染的实时性,需
虚拟人运动的底层控制在于对骨骼姿态的控制,这部分
以尽可能低的运算成本实现虚拟人的驱动及其对环境的感知
在动作建模时已经完成。虚拟人的高层行为控制依赖于Java
能力。图3为Java 3D程序控制模块示意图。
3D对骨骼动画的编辑。大部分的复杂行为其实是由各种基
本动作组合而成的,根据提供的外部参数,如路径、速度、加速
度,以及方向等,把一些基础动作加以顺序、组合、重复即可实
时合成出连续的、满足要求的交互性行为。
高层行为活动的控制方式主要由用户指导(User—guided)
和自主行为(Autonomous)两种模式组成。用户指导方式只需
用户根据提示提供一些参数集合或者选择命令来控制虚拟人
图3 Java 3D程序控制
的活动。自主行为方式为虚拟人定义了一定的行为规则和内
部状态机制,使其具有针对环境变化自主产生相关行为的能
3 实例分析
力。面对有规律或突发的情况,虚拟人会触发设计好的响应
本文在PC机上实现了网络虚拟环境下对虚拟人的调
事件,产生及时的反应动作。若是中长期的复杂行为,则需要 用,并通过程序编辑让角色在多个场景中做出各种交互动作,
根据行为控制面板的规则,选择一个或一组基本动作指令,通
如图4所示。实验平台的配置为:IntelP42.93GHzCPU,内
过动作指令来完成复杂行为需求。过度的人为控制也会使得
存512 MB,NVIDIA
虚拟人缺乏对环境主动和被动的应变能力,造成不真实的情
GeForce7900 GPU,显存
况。两种控制形式可以实现基本意识行为和低级反射行为的
512 MB,操作系统为
并存,既保证了对突发事件的实时响应,又能按任务要求实现
Windows XP Professional
复杂行为仿真。
SP2,开发工具为JDK
通过编程技术实现虚拟人在场景中的高层控制还需要引
1.5。
入时间控制和碰撞检测机制,以保证在正确的时刻根据环境和
本文方法能有效地
数据进行正确的行为控制,从而达到各种交互运动。许多情况
把虚拟人建模与交互控
下需要建立模型和算法来控制虚拟人的运动路径和实时碰撞
制分离开来,做到了角
检测结果。如虚拟人在任意曲面、任意坡度的地面沿任意方向
色建模、运动仿真和行
行走时会产生穿透现象,因此需要实时调整方向。这种情况
为控制等设计工作的分
下,首先要得出虚拟人所在点D的地形曲面的法线方向n(n ,
图4虚拟人在网络虚拟环境中的截图
工协作,具有明显的实
,
),根据一定的偏差量来纠正躯体的位置。虚拟人在行
用性和优越性。与同类方法的绘制效果比较如表1所示。由
走过程中对其所处的虚拟世界中环境地形的感知和反应能力,
于是播放关键帧,每个文件量都很小,因此非常适应于追求速
人体动作适应于环境变化的调整保证了虚拟人运动的真实性。
度和真实感的网络三维环境。
表1 各种绘制方法的比较
4 结语
KINGSLEY E C,SCHOFIELD N A,CASE K.SAMMIE——A COB—
puter aid for man—machine modeling【J】.Computer Graphics,
本文提出了一种三维网络虚拟环境中载入和驱动虚拟人
1981,15(3):163—169.
的完整解决方案,可以满足当前绝大多数工程项目的要求。
『6】 景韶宇,苟秉宸,陆长德,等.面向网络定制设计的虚拟人仿真
【J].系统仿真学报,2005,17(3):679—681.
Java 3D网络虚拟现实技术的使用可显著提高网络虚拟人的
『7】 刘一松,王刚,孙亚民.VRML中虚拟人动作描述的研究【J】.
真实感和交互性。本技术方案不仅可以应用于网络三维工业
计算机工程与设计,2007,28(14):3446—3452.
产品展示时的人机测试和工作空间里的人机工程学评估,还
[8】 庄运杰,马麟,高杰.虚拟人运动仿真的VRML重构研究【J】.
可以推动网络三维动漫产业的发展,以及进一步扩大虚拟人
系统仿真学报,2009,21(11).3321—3324.
技术在其他领域的应用。
f 91 CHEN XIAN,ZHAO NAILIANG,HE GAOQI,et a1.Virtual hu—
mB3q animation in networked physical running fitness system【C]//
参考文献:
ICAT,06:16th International Conference on Artiifcial Reality and
[1] BADLER N I,PHILLIPS C B,WEBBER B L.Simulating humans:
Telexistence.Washington,DC:IEEE Computer Society,2006:47
computer graphics animation and control【M].New York:Oxford
51.
University Press,1993:1—269.
【1O】束搏,毛天露,王兆其.基于D3D的三维虚拟人运动显示【J].
【2】 赵维,谢晓方.虚拟人技术发展现状及其在工程中的应用【J】.
计算机辅助设计与图形学学报,2004,16(11):1505—1510.
系统仿真学报,2009,21(17):5473—5476.
f 1 1]JAMES D L,TWIGG C D.Skinning mesh animations【J].Interna-
【3】 李建华,郝建平,王松山,等.基于JACK的虚拟人行走建模与
tional Conference on Computer Graphics and Interactive Techniques,
实现[J】.计算机仿真,2009,26(9):207—210.
2005,24(3):399—407.
【4】 罗冠,郝重阳,张雯,等.虚拟人骨骼结构的多刚体系统建模方
『121 LU XIAO.JUN,LI YAN,HE HAN—GEN.Modeling and simulation
法研究【J].计算机辅助设计与图形学学报,2005,17(6):1354
of articulated virtual human’S alTll action【J】.Joumal of System Sim—
—
135R.
ulati0n,2005,17(2):410—413.
版权声明:本文标题:基于Java 3D的虚拟人仿真方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713328826a629735.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论