def test_readOgreSkeletonFile_SkeletonAnimation(): mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml' mesh = read_ogre_mesh_file_as_mesh(mesh_file_path, .01) # skeleton_file_path = '../samples/woody2_15.skeleton.xml' skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml' joint_motions = read_ogre_skeleton_file__skeleton_animations(skeleton_file_path, .01) viewer = ysv.SimpleViewer() for i in range(len(joint_motions)): viewer.doc.add_motion(joint_motions[i]) viewer.doc.add_renderer(joint_motions[i].resource_name, yr.JointMotionRenderer(joint_motions[i], (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_renderer('mesh', yr.MeshRenderer(mesh)) def extra_draw_callback(): frame = viewer.get_current_frame() for i in range(joint_motions[0][0].skeleton.get_element_num()): ygh.draw_point(joint_motions[0][frame].get_position(i)) viewer.set_extra_draw_callback(extra_draw_callback) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_compare_skeletonanimation_vs_bvhmotion(): mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml' skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml' skeleton_mesh, skeleton_motions = read_ogre_data_files(mesh_file_path, .01, skeleton_file_path) skeleton_motion = skeleton_motions[0] ysu.merge_points(skeleton_mesh) bvh_motion = yf.read_bvh_file('../samples/wd2_WalkSameSame00.bvh', .01) bvh_mesh = copy.deepcopy(skeleton_mesh) # bvh_mesh.initialize(bvh_motion[0]) viewer = ysv.SimpleViewer() viewer.doc.add_renderer('skeletonMotion', yr.JointMotionRenderer(skeleton_motion, (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_motion2('skeletonMotion', skeleton_motion) viewer.doc.add_renderer('skeletonMesh', yr.MeshRenderer(skeleton_mesh, (255 * .5, 255 * .5, 255))) viewer.doc.add_renderer('bvhMotion', yr.JointMotionRenderer(bvh_motion, (0, 255, 0), yr.LINK_LINE)) viewer.doc.add_motion2('bvhMotion', bvh_motion) viewer.doc.add_renderer('bvhMesh', yr.MeshRenderer(bvh_mesh, (255 * .5, 255, 255 * .5))) def pre_frame_callback(frame): if frame < len(skeleton_motion): skeleton_mesh.update(skeleton_motion[frame]) if frame < len(bvh_motion): bvh_mesh.update(bvh_motion[frame]) viewer.set_pre_frame_callback(pre_frame_callback) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_readOgreMeshFileAsSkinMesh(): skeleton_file_path = '../samples/woody2_15.skeleton.xml' # joint_skeleton, initial_r_map = read_ogre_skeleton_file__skeleton(skeleton_file_path, .1) # joint_motions = read_ogre_skeleton_file__skeleton_animations(skeleton_file_path, .1) joint_skeleton, initial_rs, joint_motions = read_ogre_skeleton_file(skeleton_file_path, .01) mesh_file_path = '../samples/woody2_15.mesh.xml' skin_mesh = read_ogre_mesh_file_as_skin_mesh(mesh_file_path, joint_skeleton, initial_rs, .01) joint_motion = yf.read_bvh_file('../samples/wd2_WalkSameSame00.bvh', .01) viewer = ysv.SimpleViewer() # for i in range(len(joint_motions)): # viewer.doc.add_motion(joint_motions[i]) # viewer.doc.add_renderer(joint_motions[i].resource_name, yr.JointMotionRenderer(joint_motions[i], (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_renderer('jointMotion', yr.JointMotionRenderer(joint_motion, (0, 0, 255), yr.LINK_BONE)) viewer.doc.add_object('jointMotion', joint_motion) viewer.doc.add_renderer('skinMesh', yr.MeshRenderer(skin_mesh)) def pre_frame_callback(frame): skin_mesh.update(joint_motion[frame]) viewer.set_pre_frame_callback(pre_frame_callback) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_writeBvhFile(): # # bvh # bvh_file_path = '../samples/wd2_WalkSameSame00.bvh' # bvh = read_bvh_file_as_bvh(bvh_file_path) # # temp_file_path = '../samples/bvh_wd2_WalkSameSame00.bvh.temp' # bvh.write_bvh_file(temp_file_path) # ys_motion bvh_file_path = '../samples/wd2_WalkSameSame00.bvh' motion = read_bvh_file(bvh_file_path, .01) # ys_motion[0] = ys_motion[0].get_t_pose() temp_file_path = '../samples/motion_temp_wd2_WalkSameSame00.bvh.temp' write_bvh_file(temp_file_path, motion) motion2 = read_bvh_file(temp_file_path) # motion2[0] = motion2[0].get_t_pose() viewer = ysv.SimpleViewer() viewer.record(False) viewer.doc.add_renderer('ys_motion', yr.JointMotionRenderer(motion, (0, 255, 0))) viewer.doc.add_object('ys_motion', motion) viewer.doc.add_renderer('motion2', yr.JointMotionRenderer(motion2, (255, 0, 0))) viewer.doc.add_object('motion2', motion2) viewer.start_timer(1 / motion.fps) viewer.show() Fl.run()
def test_readOgreMeshFileAsMesh(): mesh_file_path = '../samples/woody2_15.mesh.xml' mesh = read_ogre_mesh_file_as_mesh(mesh_file_path, .01) viewer = ysv.SimpleViewer() viewer.doc.add_renderer('mesh', yr.MeshRenderer(mesh)) viewer.doc.add_object('mesh', mesh) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_readTrcFile(): trc_motion = read_trc_file('../samples/Day7_Session2_Take01_-_walk.trc', .01) print(trc_motion[0].skeleton) viewer = ysv.SimpleViewer() viewer.record(False) viewer.doc.add_renderer('trcMotion', yr.PointMotionRenderer(trc_motion, (0, 255, 0))) viewer.doc.add_object('trcMotion', trc_motion) viewer.start_timer(1 / trc_motion.fps) viewer.show() Fl.run()
def test_showModeless(): bvh_file_path = '../samples/wd2_WalkSameSame00.bvh' joint_motion = yf.read_bvh_file(bvh_file_path, .01) # joint_motion = joint_motion[0:10] plot = SmartPlot() plot.set_xdata('frame', [0]) plot.show_modeless() viewer = ysv.SimpleViewer() viewer.doc.add_renderer( 'ys_motion(%s)' % jointMotion.resource_name, yr.JointMotionRenderer(joint_motion, (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_object('ys_motion(%s)' % jointMotion.resource_name, joint_motion) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_readOgreSkeletonFile_Skeleton(): # mesh_file_path = '../samples/woody2_15.mesh.xml' mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml' mesh = read_ogre_mesh_file_as_mesh(mesh_file_path, .01) # skeleton_file_path = '../samples/woody2_15.skeleton.xml' skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml' joint_skeleton, initial_rs = read_ogre_skeleton_file__skeleton(skeleton_file_path, .01) skeleton_posture = ym.JointPosture(joint_skeleton) skeleton_posture.init_local_rs(initial_rs) # skeleton_posture.init_local_rs() skeleton_motion = ym.Motion([skeleton_posture]) viewer = ysv.SimpleViewer() viewer.doc.add_motion(skeleton_motion) viewer.doc.add_renderer('skeleton', yr.JointMotionRenderer(skeleton_motion, (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_renderer('mesh', yr.MeshRenderer(mesh)) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_readBvhFile(): # bvh_file_path = '../samples/wd2_WalkSameSame00.bvh' # ys_motion = read_bvh_file(bvh_file_path, .01) # motion2 = read_bvh_file(bvh_file_path, .01, True) bvh_file_path = '../../../Walking/ppmotion/wd2_WalkForwardNormal00.bvh' bvh_file_path2 = '../../../Walking/adun/adun.bvh' motion = read_bvh_file(bvh_file_path, 1) motion2 = read_bvh_file(bvh_file_path2, 1) print(motion[0].skeleton) print(motion2[0].skeleton) viewer = ysv.SimpleViewer() viewer.record(False) viewer.doc.add_renderer('ys_motion', yr.JointMotionRenderer(motion, (0, 255, 0))) viewer.doc.add_object('ys_motion', motion) viewer.doc.add_renderer('motion2', yr.JointMotionRenderer(motion2, (255, 0, 0))) viewer.doc.add_object('motion2', motion2) viewer.start_timer(1 / motion.fps) viewer.show() Fl.run()
def test_readOgreDataFiles(): mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml' skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml' skin_mesh, joint_motions = read_ogre_data_files(mesh_file_path, .01, skeleton_file_path) for joint_posture in joint_motions[0]: joint_posture.update_global_t() viewer = ysv.SimpleViewer() for i in range(len(joint_motions)): viewer.doc.add_object('ys_motion%d' % i, joint_motions[i]) viewer.doc.add_renderer('ys_motion%d' % i, yr.JointMotionRenderer(joint_motions[i], (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_renderer('skinMesh', yr.MeshRenderer(skin_mesh)) def pre_frame_callback(frame): skin_mesh.update(joint_motions[0][frame]) viewer.set_pre_frame_callback(pre_frame_callback) viewer.start_timer(1 / 30.) viewer.show() Fl.run()
def test_InteractivePlot(): import Resource.ys_motion_loader as yf import Renderer.ys_renderer as yr import GUI.ys_simple_viewer as ysv bvh_file_path = '../samples/wd2_WalkSameSame00.bvh' joint_motion = yf.read_bvh_file(bvh_file_path, .01) joint_motion = joint_motion[0:200] hips = joint_motion[0].skeleton.get_joint_index('Hips') l_foot = joint_motion[0].skeleton.get_joint_index('LeftFoot') r_foot = joint_motion[0].skeleton.get_joint_index('RightFoot') plot = InteractivePlot() plot.set_xlimit(0, len(joint_motion)) plot.set_ylimit(0, 2) plot.add_data_set('root.y') plot.add_data_set('leftFoot.y') plot.add_data_set('rightFoot.y') viewer = ysv.SimpleViewer() viewer.doc.add_renderer( 'ys_motion(%s)' % jointMotion.resource_name, yr.JointMotionRenderer(joint_motion, (0, 0, 255), yr.LINK_LINE)) viewer.doc.add_object('ys_motion(%s)' % jointMotion.resource_name, joint_motion) pt = [None] updated = [False] def pre_frame_callback(frame): if updated[0] == False: plot.add_data_point( 'root.y', frame, joint_motion[frame].get_joint_position_global(hips)[1]) plot.add_data_point( 'leftFoot.y', frame, joint_motion[frame].get_joint_position_global(l_foot)[1]) plot.add_data_point( 'rightFoot.y', frame, joint_motion[frame].get_joint_position_global(r_foot)[1]) plot.update_points() if frame == viewer.get_max_frame: updated[0] = True if frame == 0: pt[0] = time.time() if frame == 50: print(time.time() - pt[0]) def pre_frame_callback__always(frame): plot.update_vline(frame) def viewer_onClose(data): plot.close() viewer.on_close(data) viewer.set_pre_frame_callback(pre_frame_callback) viewer.set_pre_frame_callback__always(pre_frame_callback__always) viewer.callback(viewer_onClose) viewer.start_timer(1 / 30.) viewer.show() Fl.run()