# coding=utf-8 # Copyright 2022 The IDEA Authors (Shunlin Lu and Ling-Hao Chen). All rights reserved. # # For all the datasets, be sure to read and follow their license agreements, # and cite them accordingly. # If the unifier is used in your research, please consider to cite as: # # @article{humantomato, # title={HumanTOMATO: Text-aligned Whole-body Motion Generation}, # author={Lu, Shunlin and Chen, Ling-Hao and Zeng, Ailing and Lin, Jing and Zhang, Ruimao and Zhang, Lei and Shum, Heung-Yeung}, # journal={arxiv:2310.12978}, # year={2023} # } # # @InProceedings{Guo_2022_CVPR, # author = {Guo, Chuan and Zou, Shihao and Zuo, Xinxin and Wang, Sen and Ji, Wei and Li, Xingyu and Cheng, Li}, # title = {Generating Diverse and Natural 3D Human Motions From Text}, # booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, # month = {June}, # year = {2022}, # pages = {5152-5161} # } # # Licensed under the IDEA License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://github.com/IDEA-Research/HumanTOMATO/blob/main/LICENSE # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. We provide a license to use the code, # please read the specific details carefully. # # ------------------------------------------------------------------------------------------------ # Copyright (c) Chuan Guo. # ------------------------------------------------------------------------------------------------ # Portions of this code were adapted from the following open-source project: # https://github.com/EricGuo5513/HumanML3D # ------------------------------------------------------------------------------------------------ import numpy as np # Define a kinematic tree for the skeletal struture kit_kinematic_chain = [[0, 11, 12, 13, 14, 15], [0, 16, 17, 18, 19, 20], [0, 1, 2, 3, 4], [3, 5, 6, 7], [3, 8, 9, 10]] kit_raw_offsets = np.array( [ [0, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [0, -1, 0], [0, -1, 0], [-1, 0, 0], [0, -1, 0], [0, -1, 0], [1, 0, 0], [0, -1, 0], [0, -1, 0], [0, 0, 1], [0, 0, 1], [-1, 0, 0], [0, -1, 0], [0, -1, 0], [0, 0, 1], [0, 0, 1] ] ) t2m_raw_body_offsets = np.array([[0,0,0], [1,0,0], [-1,0,0], [0,1,0], [0,-1,0], [0,-1,0], [0,1,0], [0,-1,0], [0,-1,0], [0,1,0], [0,0,1], [0,0,1], [0,1,0], [1,0,0], [-1,0,0], [0,0,1], [0,-1,0], [0,-1,0], [0,-1,0], [0,-1,0], [0,-1,0], [0,-1,0]]) t2m_raw_hand_offsets = np.array([[1, 0, 0], # left_index1 [1, 0, 0], # left_index2 [1, 0, 0], # left_index3 [1, 0, 0], # left_middle1 [1, 0, 0], # left_middle2 [1, 0, 0], # left_middle3 [1, 0, 0], # left_pinky1 [1, 0, 0], # left_pinky2 [1, 0, 0], # left_pinky3 [1, 0, 0], # left_ring1 [1, 0, 0], # left_ring2 [1, 0, 0], # left_ring3 [1, 0, 0], # left_thumb1 [1, 0, 0], # left_thumb2 [1, 0, 0], # left_thumb3 [-1, 0, 0], # right_index1 [-1, 0, 0], # right_index2 [-1, 0, 0], # right_index3 [-1, 0, 0], # right_middle1 [-1, 0, 0], # right_middle2 [-1, 0, 0], # right_middle3 [-1, 0, 0], # right_pinky1 [-1, 0, 0], # right_pinky2 [-1, 0, 0], # right_pinky3 [-1, 0, 0], # right_ring1 [-1, 0, 0], # right_ring2 [-1, 0, 0], # right_ring3 [-1, 0, 0], # right_thumb1 [-1, 0, 0], # right_thumb2 [-1, 0, 0],]) # right_thumb3 t2m_raw_offsets = np.concatenate( (t2m_raw_body_offsets, t2m_raw_hand_offsets), axis=0) t2m_kinematic_chain = [[0, 2, 5, 8, 11], [0, 1, 4, 7, 10], [0, 3, 6, 9, 12, 15], [9, 14, 17, 19, 21], [9, 13, 16, 18, 20]] t2m_left_hand_chain = [[20, 22, 23, 24], [20, 34, 35, 36], [20, 25, 26, 27], [20, 31, 32, 33], [20, 28, 29, 30]] t2m_right_hand_chain = [[21, 43, 44, 45], [21, 46, 47, 48], [21, 40, 41, 42], [21, 37, 38, 39], [21, 49, 50, 51]] t2m_body_hand_kinematic_chain = t2m_kinematic_chain + t2m_left_hand_chain + t2m_right_hand_chain kit_tgt_skel_id = '03950' t2m_tgt_skel_id = '000021'