Objective
Python 스크립트 사용 시 필요한 변수를 확인합니다.
※참조:
- 예제 파일 위치:
- CLO 설치 폴더
- CLO 설치 폴더
- 예제 파일 실행 방법:
-
Please type below text in Script Console
-
py> import example
-
py> from example import *
-
py> exam = example()
-
py> exam.function(mdsa)
-
Function은 예시입니다. 사용 할 수 있는 Function은 example.py 파일에서 확인하세요
-
mdsa는 CLO 내부 기능과 연결해주는 python module 입니다.
-
Operation
- Python 스크립트를 실행합니다.
- Python 스크립트 창이 실행되면 커서에 원하는 API를 입력하여 사용합니다.
API
#mdsa = CLO Script API
변수
Variable name |
Type |
Explication |
---|---|---|
open_avatar_file_list |
String List |
Open할 Avatar File들의 경로를 지정하는 |
open_garment_file_list |
String List |
Open할 Garment File들의 경로를 지정하는 |
open_animation_file_list |
String List |
Open할 Animation File들의 경로를 지정하는 |
save_file_path_list |
String List |
저장할 파일들의 경로와 파일 이름을 저장하는 |
obj_type_list |
Integer List |
Open할 Avatar의 Type을 저장하는 |
simulation_quality_list |
Integer List |
Simulation 또는 Animation 할 때 Simulation의 Quality를 |
simulation_delay_time_list |
Integer List |
Animation을 하기 전 제 자리에서 Simulation을 할 시간을 |
export_scale_unit |
String |
Export 할 때 Object들의 Scale을 Unit 단위로 |
export_fps |
Integer |
Export 할 때 Object들의 fps를 |
unified_map |
Boolean |
Export 할 때 Object들의 UV를 unified 시킬지를 |
import_scale_unit |
String |
Import 할 때 Object들의 Scale을 Unit 단위로 지정하는 |
import_fps |
Integer |
Import 할 때 Object들의 fps를 지정하는 변수 입니다. |
current_process |
Integer |
여러 개의 파일들을 한꺼번에 처리하는 경우 |
save_folder_path |
String |
저장할 파일들의 폴더를 지정하는 변수입니다. 만약 사용자가 |
module_obj |
CLO Module |
CLO 내부 API module입니다. 이 변수를 |
함수
def initialize(object):
- 현재 사용하고 있는 mdsa 객체를 초기화 합니다.
def clear_console(object):
- console window를 지웁니다.
def get_split_string(object, string, split_filter_list):
- string은 string type, split_filter_list는 string list type
- 인자로 받은 string을 split_filter_list에 값으로 나누어 string list로 반환합니다. Split_filter_list는 문자열을 나눌 때 기준이 되는 문자들의 list 입니다.
이 함수는 Split_filter_list의 첫 번째 문자부터 문자열을 나눕니다. 만약 첫 번째 문자로 문자열이 나누어지지 않는 경우 (string에 filter 문자가 포함되어 있지 않은 경우) 두 번째, 세 번째 문자로 순차적으로 검색합니다.
만약 x 번째 split_filter_list에서 문자열이 나누어진 경우 나누어진 string list를 반환합니다. 만약 검색에 실패한 경우 빈 string list를 반환합니다. 반환되는 string list에는 split_filter 문자는 제외됩니다.
get_split_string(“C:\Users\Public\Documents\MarvelousDesigner\Assets_ver_3.0.9999\default.zpac”, [“\\”, “/”])
- [“C:”, “Users”, “Public”, “Documents”, “MarvelousDesigner”, “Assets_ver_3.0.9999”, “default.zpac”]
def get_file_name(object, file_path):
- file_path는 string type
- 인자로 받은 file_path에서 file_name 만을 Return 합니다.
get_file_name(“C:\Users\Public\Documents\MarvelousDesigner\Assets_ver_3.0.9999\default.zpac”)
- default.zpac”
def get_filter_file_name(object, file_list, filter):
- file_list는 string list type, filter는 string type
- 인자로 받은 file_list에서 확장자가 filter factor와 동일한 file들을 list type으로 반환합니다. 확장자 검색 시 대/소문자를 구분하지 않습니다
def make_valid_folder_path(object, folder_path):.
- Folder_path는 string type
- Folder_path의 마지막 문자가 “\” 또는 “/”이 아닌 경우 유효하지 않은 Path로 인식합니다. 이 함수를 사용하면 유효하지 않은 경로를 유효한 형태의 경로로 반환합니다.
def get_entry_list(object, folder_path):
- Folder_path는 string type
- Folder_path에 있는 파일들의 list를 반환합니다.
def set_open_option(object, unit = "none", fps = 30):
- Unit은 string type, "cm", "mm", "inch", "feet", "m"의 값으로 설정 가능합니다. defalut는 "mm" 값 입니다.
- Fps는 integer type, default는 30 fps입니다
- obj, cache, fbx. alembic file의 import option을 설정합니다. 여러 개의 파일들을 import하는 경우에 각각의 파일의 옵션을 다르게 설정하고 싶다면 set_open_option_list 함수를 사용하십시요.
이 함수는 값만 설정합니다. CLO에 값을 적용하기 위해서는 set_app_open_option 함수도 호출해야 합니다.
def set_save_option(object, unit = "none", fps = 30, unified = False):
- unit은 string type, "cm", "mm", "inch", "feet", "m"의 값으로 설정 가능합니다. defalut는 "mm" 값 입니다.
- Fps는 integer type, default는 30 fps입니다
- Unified는 Boolean type, True일 경우 object의 UV를 0 ~ 1까지의 값으로 변경합니다. default는 False 입니다.
- obj, cache, fbx. alembic, Garment file의 export option을 설정합니다. 여러 개의 파일들을 export하는 경우에 각각의 파일의 옵션을 다르게 설정하고 싶다면 set_save_option_list 함수를 사용 하십시요.
이 함수는 값만 설정합니다. CLO에 값을 적용하기 위해서는 set_app_save_option 함수도 호출해야 합니다.
def set_open_option_list(object, unit_list, fps_list):
- unit_list는 string list type, fps_list는 integer list type
- obj, cache, fbx. alembic, Garment file의 import option을 설정합니다. 여러 개의 파일들을 import 할 때 각각의 파일의 옵션을 다르게 설정하고 싶다면 이 함수를 호출하여 사용하면 됩니다.
인자는 list 형이며 unit_list, fps_list는 동일한 count여야 합니다. 이 함수에 인자인 unit_list, fps_list의 count는 import할 파일의 count와 동일해야 합니다.
만약 import할 파일이 option_list보다 많은 경우 option_list의 마지막 item들로 값이 설정됩니다. 자세한 사항은 example.py를 확인해주세요.
def set_save_option_list(object, unit_list, fps_list, unified_map_list):
- unit_list는 string list type, fps_list는 integer list type, unified_map_list는 Boolean list type
- obj, cache, fbx. alembic, Garment file의 export option을 설정합니다. 여러 개의 파일들을 export 할 때 각각의 파일의 옵션을 다르게 설정하고 싶다면 이 함수를 호출하여 사용하면 됩니다.
인자는 list 형이며 unit_list, fps_list, unified_map_list는 동일한 count여야 합니다.이 함수에 인자인 unit_list, fps_list, unified_map_list의 count는 export할 파일의 count와 동일해야 합니다.
만약 export할 파일이 option_list보다 많은 경우 option_list의 마지막 item들로 값이 설정됩니다. 자세한 사항은 example.py를 확인해주세요.
def run_app_open_option(object):
- set_open_option 함수에서 설정한 값으로 CLO Import Option을 설정합니다.
def run_app_save_option(object):
- set_save_option 함수에서 설정한 값으로 CLO Import Option을 설정합니다
def run_app_open_option(object, index):
- index는 integer type
- set_open_option_list 함수에서 설정한 값으로 CLO Import Option을 설정합니다. set_open_option_list 함수에서 List로 option 값을 설정했다면 설정한 List에서 적용하고 싶은 item의 index를 인자로 넘겨줍니다.
- Index의 최소값은 0이며 list의 전체 사이즈 – 1 값이 index의 최대값입니다.
def run_app_save_option(object, index):
- index는 integer type
- set_save_option_list 함수에서 설정한 값으로 CLO Export Option을 설정합니다. set_save_option_list 함수에서 List로 option 값을 설정했다면 설정한 List에서 적용하고 싶은 item의 index를 인자로 넘겨줍니다.
- Index의 최소값은 0이며 list의 전체 사이즈 – 1 값이 index의 최대값입니다.
def get_app_open_optin_count(object):
- 현재 설정된 import option의 count를 반환합니다. defalut는 0입니다.
def get_app_save_optin_count(object):
- 현재 설정된 export option의 count를 반환합니다. defalut는 0입니다.
def set_avatar_file_path(object, open_avatar_file_path):
- open_avatar_file_path는 string type.
- avatar file path를 추가합니다. 만약 다른 파일들과 count가 맞지 않는 경우 맨 마지막에 등록한 avatar file path가 load 됩니다.
def set_avatar_file_path_list(object, open_avatar_file_path_list):
- open_avatar_file_path_list는 string list type
- avatar file list를 설정합니다. list 형태의 값을 직접 설정하고 싶은 경우 사용합니다. 만약 다른 파일들과 count가 맞지 않는 경우 맨 마지막에 등록한 avatar file path가 load 됩니다.
def set_garment_file_path(object, open_garment_file_path):
- open_garment_file_path는 string type
- garment file path를 추가합니다. 만약 다른 파일들과 count가 맞지 않는 경우 맨 마지막에 등록한 garment file path가 load 됩니다.
def set_garment_file_path_list(object, open_garment_file_path_list):
- open_garment_file_path_list는 string list type
- garment file list를 설정합니다. list 형태의 값을 직접 설정하고 싶은 경우 사용합니다. 만약 다른 파일들과 count가 맞지 않는 경우 맨 마지막에 등록한 garment file path가 load 됩니다.
def set_animation_file_path(object, open_animation_file_path):
- open_animation_file_path는 string list type
- animation file list를 설정합니다. list 형태의 값을 직접 설정하고 싶은 경우 사용합니다. 만약 다른 파일들과 count가 맞지 않는 경우 맨 마지막에 등록한 animation file path가 load 됩니다.
def set_animation_file_path_list(object, open_animation_file_path_list):
- open_animation_file_path_list는 string list type
- animation file list를 설정합니다. List 형태의 값을 직접 설정하고 싶은 경우 사용합니다. 만약 다른 파일들과 count가 맞지 않는 경우 맨 마지막에 등록한 animation file path가 load 됩니다.
def set_simulation_options(object, obj_type = 0, simulation_quality = 0, simulation_delay_time = 5000, process_simulation = True):
- obj_type은 integer type, obj_type = 0인 경우 avatar, 1인 경우 trim object, 2인 경우 obj to garment로 로드 됩니다. Default는 avatar type입니다.
- Simulation_quality는 integer type, 0인 경우 Normal, 1인 경우 Complete, 2인 경우 Custom type 입니다. Default는 Normal입니다.
- Simulation_delay_time은 integer type, 이 값은 설정한 시간만큼 simulation을 진행 한 후에 animation을 진행하고 싶은 경우 사용합니다.
Default는 5000 micro second이며 simulation을 진행하고 싶은 시간(second) * 1000입니다.
- Process_simulation은 boolean type, simulation 진행 여부를 결정합니다. Default는 True입니다.
- 이 함수는 obj type과 simulation과 관련된 Import option들을 추가합니다. 만약 Import할 다른 파일들과 count가 맞지 않거나 option을 설정하지 않는 경우 default 값으로 설정됩니다.
def avatar_file_open(object, open_file_path, obj_type = 0, scale = "mm", fps = 30):
- open_file_path는 string type, obj_type은 string type, scale은 string type, fps는 integer type
- 이 함수를 사용하면 open_file_path에 있는 avatar (avt, obj, fbx, alembic) file을 불러옵니다. 이 때 함께 지정한 obj_type, scale, fps option이 적용됩니다.
def garment_file_open(object, open_file_path):
- open_file_path는 string type,
- 이 함수를 사용하면 open_file_path에 있는 garment (zpac, pac, zprj) file을 불러옵니다.
def animation_file_open(object, open_file_path, scale = "mm", fps = 30):
- open_file_path는 string type, scale은 string type, fps는 integer type
- 이 함수를 사용하면 open_file_path에 있는 animation (pos, mc, mcx, pc2, mdd) file을 불러옵니다. 이 때 함께 지정한 scale, fps option이 적용됩니다.
def save_file_stand_alone(object, file_path, scale = "mm", fps = 30, unfined_map = True):
- File_path는 string type, scale은 string type, fps는 integer type, unified_map은 Boolean type
- 이 함수를 사용하면 현재 load되어 있는 파일들을 file_path에 저장합니다. File_path에 확장자에 따라 save 할 파일 타입을 자동으로 지정합니다. 함께 지정한 scale, fps, unified_map option이 적용되어 저장됩니다.
def SimulationOn(object, time):
- Time은 integer type, micro second (second * 1000)
- 지정한 time 이후에 simulation을 실행합니다.
def SimulationOff(object, time):
- Time은 integer type, micro second (second * 1000)
- 지정한 time 이후에 simulation을 정지 시킵니다.
def StartAnimationRecord(object, time):
- Time은 integer type, micro second (second * 1000)
- 지정된 time 이후에 animation을 실행 또는 녹화 합니다.
def set_save_file_path(object, save_file_path):
- save_file_path는 string type
- 이 함수는 인자로 넘어온 경로를 save_file_path_list에 추가합니다. save_file_path_list는 사용자가 미리 설정한 import file list들 중 적어도 하나의 list의 크기와 동일해야 합니다.
- set_save_folder_path를 설정하여 대체할 수 있습니다. 두 함수 중 하나는 반드시 설정되어야 합니다.
def set_save_folder_path(object, save_folder_path):
- save_folder_path 는 string type
- 이 함수는 인자로 넘어온 경로를 save folder path로 설정합니다. Save folder path는 사용자가 미리 설정한 import file list들 중 크기가 가장 큰 list의 file name과 동일한 name의 zprj(프로젝트) 파일로 해당 폴더에 파일들을 저장합니다.
- set_save_file_path를 설정하여 대체할 수 있습니다. 두 함수 중 하나는 반드시 설정되어야 합니다.
def set_garment_folder(object, garment_folder_path, filter = "zpac"):
- garment_folder_path는 string type, filter는 string type
- 이 함수는 사용자가 원하는 폴더에 존재하는 의상 파일들을 읽어드려 open_garment_file_list로 설정합니다. Filter 값을 설정할 경우 filter의 확장자 파일들로 open_garment_file_list를 설정합니다.
- Filter의 default는 “zpac” 입니다.
def set_avatar_folder(object, avatar_folder_path, filter = "avt"):
- avatar_folder_path는 string type, filter는 string type
- 이 함수는 사용자가 원하는 폴더에 존재하는 avatar 파일들을 읽어드려 open_avatar_file_list로 설정합니다. Filter 값을 설정할 경우 filter의 확장자 파일들로 open_avatar_file_list를 설정합니다.
- Filter의 default는 “avt” 입니다.
def set_animation_folder(object, animation_folder_path, filter = "pos"):
- animation_folder_path는 string type, filter는 string type
- 이 함수는 사용자가 원하는 폴더에 존재하는 Animation 파일들을 읽어드려 open_animation_file_list로 설정합니다. Filter 값을 설정할 경우 filter의 확장자 파일들로 open_animation_file_list를 설정합니다.
- Filter의 default는 “pos” 입니다.
def get_max_count(object):
- 이 함수는 open할 file들의 list (avatar, garment, animation) 중에서 가장 큰 사이즈의 list의 item count를 반환합니다.
def set_auto_save(object, bAutoSave):
- 이 함수는 파일 Export 시 CLO Project File의 저장 여부를 결정합니다.
- bAutoSave가 True이면, 특정 포맷으로 파일을 Export할 때 파일의 이름과 동일한 이름으로 Project File을 함께 저장합니다.
- AutoSave의 default는 'True' 입니다.
def on_save_zprj_with_metadata_info(object, bWith_meta_data, image_number, save_type):
- bWith_meta_data는 boolen type이며 true인 경우 meta data를 함께 저장합니다. image_number는 저장할 scene의 snapshot 개수입니다. image는 360도로 회전하며 snapshot을 저장합니다. 각 snapshot의 회전 각도는 image_number / 360 으로 결정 됩니다. with_meta_data가 True인 경우에만 동작합니다. save type은 meta_data의 저장 방식을 결정합니다. 0으로 설정한 경우 저장할 project file과 동일한 이름의 폴더를 생성한 후 해당 폴더 아래에 xml file과 image들을 저장합니다. 1 인 경우 모든 meta data들이 zip file로 압축되어 저장됩니다.
- zprj (project file) 파일 저장 시 meta data를 함께 저장합니다. meta data에 대한 자세한 사항은 메뉴얼을 참조하십시요.
def on_export_garment_only(object):
- 이 함수는 전체 Scene 중에서 Garment만 export 하도록 설정 합니다.
def on_export_garment_with_relative_objects_only(object):
- 이 함수는 전체 Scene 중에서 Avatar를 제외한 object 들을 export 하도록 설정 합니다.
def on_export_avatar_only(object):
- 이 함수는 전체 Scene 중에서 Avatar만 export 하도록 설정 합니다.
def on_export_piping_pattern_only(object):
- 이 함수는 전체 Scene 중에서 piping pattern만 export 하도록 설정 합니다.
def on_export_zipper_teeth_pattern_only(object):
- 이 함수는 전체 Scene 중에서 zipper teeth pattern만 export 하도록 설정 합니다.
def on_export_trim_only(object):
- 이 함수는 전체 Scene 중에서 trim만 export 하도록 설정 합니다.
def on_export_graphics_only(object):
- 이 함수는 전체 Scene 중에서 graphics만 export 하도록 설정 합니다.
def on_export_zipper_puller_and_slider_only(object):
- 이 함수는 전체 Scene 중에서 zipper puller와 slider만 export 하도록 설정 합니다.
def on_export_button_hole_only(object):
- 이 함수는 전체 Scene 중에서 button hole만 export 하도록 설정 합니다.
def on_export_button_head_only(object):
- 이 함수는 전체 Scene 중에서 button head만 export 하도록 설정 합니다.
def on_export_obj_stitch_only(object):
- 이 함수는 전체 Scene 중에서 stitch만 export 하도록 설정 합니다.
Note. export_(something)_only 옵션은 설정하지 않는다면 모두 export 됩니다. 또한, obj를 export할 때만 동작 합니다.
def on_export_single_object(object):
- 이 함수는 전체 Mesh를 하나의 Mesh로 통합하여 export 하도록 설정 합니다.
- 이 함수는 on_export_multi_object 함수와 동시에 사용할 수 없으며 만약 동시에 사용했을 경우 마지막에 사용한 함수로 설정됩니다.
def on_export_multi_object(object):
- 이 함수는 전체 Mesh를 각각의 Mesh로 export 하도록 설정 합니다.
- 이 함수는 on_export_single_object 함수와 동시에 사용할 수 없으며 만약 동시에 사용했을 경우 마지막에 사용한 함수로 설정됩니다.
def on_export_save_with_texture(object):
- 이 함수는 export file과 texture file를 zip 파일로 압축하여 export하도록 설정 합니다.
def on_export_diffuse_color_combined(object):
- 이 함수는 의상에 설정한 텍스처 이미지와 diffuse color를 합쳐 하나의 이미지로 저장하도록 설정 합니다.
def on_export_exclude_ambient_color(object):
- 이 함수는 의상에 설정한 컬러 값 중 Ambient 값을 제외하고 재질(Material)을 저장하도록 설정 합니다.
def on_export_include_inner_shape(object):
- 이 함수는 의상에 포함된 내부선분의 정보도 함께 저장하도록 설정 합니다.
def on_export_save_meta_data(object):
- 이 함수는 meta data를 함께 저장하도록 합니다. meta data에 대한 자세한 사항은 메뉴얼을 참조하십시요.
def set_export_unified_uv_texcoordnate(object, bTexture_bake, texture_bake_size, fill_texture_seam):
- bTexture_bake는 여러장의 텍스쳐를 한장으로 export 합니다. texture_bake_size는 btexture_bake 옵션을 True로 설정한 경우 저장되는 Texture의 해상도를 결정합니다. min - max 는 100 - 10000 pixel이며 지정한 입력한 size로 image의 width와 height를 설정합니다.
- 이 함수는 여러장의 텍스쳐를 한장으로 저장하도록 설정 합니다.
- CLO는 texture coordinate를 사용하며 일반적인 UV (0 - 1) 좌표를 사용하지 않습니다. 이 함수는 export 시 UV를 0-1 사이로 변환해주도록 설정할 수 있습니다.
def set_export_axis_x(object, axis):
- axis는 string type "Y" or "Z"로 설정 할 수 있습니다. axis는 대소문자를 구분하지 않습니다.
- 이 함수는 x축을 입력받은 axis축으로 변경합니다. 이 함수를 설정할 경우 axis 축은 자동으로 X축으로 변환됩니다.
def set_export_axis_y(object, axis):
- axis는 string type "X" or "Z"로 설정 할 수 있습니다. axis는 대소문자를 구분하지 않습니다.
- 이 함수는 y축을 입력받은 axis축으로 변경합니다. 이 함수를 설정할 경우 axis 축은 자동으로 Y축으로 변환됩니다.
def set_export_axis_z(object, axis):
- axis는 string type "X" or "Y"로 설정 할 수 있습니다. axis는 대소문자를 구분하지 않습니다.
- 이 함수는 z축을 입력받은 axis축으로 변경합니다. 이 함수를 설정할 경우 axis 축은 자동으로 Z축으로 변환됩니다.
def on_export_invert_x(object):
- 이 함수는 x 축을 반전하도록 설정 합니다.
def on_export_invert_y(object):
- 이 함수는 y 축을 반전하도록 설정 합니다.
def on_export_invert_z(object):
- 이 함수는 z 축을 반전하도록 설정 합니다.
def go_animation_first_frame(object):
- 이 함수는 에니메이션의 첫 번째 프레임으로 이동한 뒤 그 프레임의 Scene을 export 하도록 설정 할 수 있습니다. 이 함수를 호출하는 경우 바로 export를 하는 것은 아닙니다. 이 함수는 process 함수가 진행되면서 export 함수에 영향을 줍니다.
- 이 함수는 go_animation_end_frame함수와 동시에 사용할 수 없으며, go_animation_first_frame이 우선 됩니다.
def go_animation_end_frame(object):
- 이 함수는 에니메이션의 마지막 프레임으로 이동한 뒤 그 프레임의 Scene을 export 하도록 설정 할 수 있습니다. 이 함수를 호출하는 경우 바로 export를 하는 것은 아닙니다. 이 함수는 process 함수가 진행되면서 export 함수에 영향을 줍니다.
- 이 함수는 go_animation_first_frame함수와 동시에 사용할 수 없으며, go_animation_first_frame이 우선 됩니다.
def set_windcontroller_wind_activate(object, bActivate):
- bActivate은 boolean type. default는 True.
- 이 함수는 바람 제어의 활성화 상태를 변경 합니다.
def set_windcontroller_wind_type(object, windType):
- windType은 integer type. wind type 이 0이면, sphercal. 1이면, planar. default는 1.
- 이 함수는 바람의 유형을 설정 합니다.
def set_windcontroller_wind_strength(object, strength):
- strength은 floating point type. default는 1000.00
- 이 함수는 바람의 세기를 설정 합니다.
def set_windcontroller_wind_decay(object, decay):
- decay은 floating point type. default는 0.00
- 이 함수는 바람의 영향이 미치는 거리를 설정합니다. 설정한 값만큼 바람이 포물선을 그리며 약해집니다.
def set_windcontroller_wind_frequency(object, frequency):
- frequency은 floating point type. default는 0.00
- 이 함수는 바람의 주기를 설정합니다. 초 단위 간격으로 설정한 값마다 바람이 약해졌다 강해졌다를 반복합니다.
def set_windcontroller_wind_turbulence(object, turbulence):
- turbulence은 floating point type. default는 30.00
- 이 함수는 바람의 강도의 불규칙한 정도를 설정합니다. 값이 클수록 더욱 불규칙해집니다.
def set_windcontroller_translate_x(object, x):
- x은 floating point type. default는 -700.00
- 이 함수는 wind controller의 x 좌표 위치를 설정 합니다.
def set_windcontroller_translate_y(object, y):
- y은 floating point type. default는 1000.00
- 이 함수는 wind controller의 y 좌표 위치를 설정 합니다.
def set_windcontroller_translate_z(object, z):
- z은 floating point type. default는 300.00
- 이 함수는 wind controller의 z 좌표 위치를 설정 합니다.
def set_skin_offset(object, offset):
- offset은 floating point type. default는 3.0
- 이 함수는 아바타와 의상간의 거리를 설정 합니다.
def set_simulation_quality(object, qulity):
- qulity는 integer type. qulity = 0이면 Complete, qulity = 1이면 Normal, qulity = 2이면 Custom으로 설정 됩니다. default는 1.
- 이 함수는 Simulation의 preset을 지정하도록 설정 합니다.
def set_simulation_time_step(object, time_step):
- time_step은 floating point type. default는 0.03333333
- 이 함수는 설정한 시간만큼 1번의 simulation을 처리 합니다.
def set_simulation_number_of_simulation(object, number_of_Simulation):
- number_of_Simulation은 integer type. default는 1.
- 이 함수는 time step 마다 입력된 횟수만큼 시뮬레이션을 실행 합니다.
- 예를들어, 1일 경우 time step 마다 1번의 시뮬레이션을 실행 합니다.
1을 초과하는 값이 들어올 경우, time step 마다 입력된 횟수만큼 시뮬레이션을 실행 합니다.
def set_simulation_cg_finish_condition(object, cg_finish_condition):
- cg_finish_condition은 integer type. default는 0.
- 이 함수는 Simulation의 Conjugate Gradient 종료 조건을 변경 합니다. 0이면 Iteration, 1이면 Residual 입니다.
- Simulation Conjugate Gradient라는 것은 Simulation의 정확도를 향상시키기 위한 기법 입니다. 내부적으로 여러번 계산하며, 시간에 비례하여 정확도가 올라갑니다. CG(Conjugate Gradient)는 계산을 언제 종료할 것인지에 대한 조건이 필요 합니다.
1) iteration count : 계산하는 횟수를 지정하여 시뮬레이션 속도를 일정하게 합니다. 시뮬레이션 속도를 중시하고자 할 때 선택 합니다. 값이 낮을수록 속도가 올라가며, 정확도가 내려 갑니다. 값이 높을수록 속도가 내려가며, 정확도가 올라 갑니다.
2) residual : 계산 결과 후의 시뮬레이션 정확도 편차를 지정 하여, 시뮬레이션 정확도를 일정하게 합니다. 시뮬레이션 정확도를 중시하고자 할 때 선택 합니다. 값이 낮을수록 정확도가 올라가며, 속도가 떨어 집니다. 값이 높을수록 정확도가 떨어지지만, 속도가 올라 갑니다.
def set_simulation_cg_iteration_count(object, simulation_cg_iteration_count):
- simulation_cg_iteration_count은 integer type. default는 50.
- 이 함수는 Conjugate Gradient 계산 횟수를 지정 합니다.
- 값이 낮을수록 속도가 올라가며, 정확도가 내려 갑니다.
값이 높을수록 속도가 내려가며, 정확도가 올라 갑니다.
def set_simulation_cg_residual(object, CGResidual):
- CGResidual은 floating point type. default는 0.000100.
- 이 함수는 Conjugate Gradient 정확도 편차를 지정 합니다.
- 값이 낮을수록 정확도가 올라가며, 속도가 내려 갑니다.
값이 높을수록 정확도가 내려가며, 속도가 올라 갑니다.
def set_simulation_self_collision_iteration_Count(object, selfCollisionIterationCount):
- selfCollisionIterationCount은 integer type. default는 1.
- 이 함수는 Simulation Property의 time step 속성을 변경 합니다.
def set_simulation_air_damping(object, airDamping):
- airDamping은 floating point type. default는 1.0.
- 이 함수는 air damping을 설정 합니다. air damping이란 공기의 마찰로 물체의 속도를 제어 합니다.
def set_simulation_gravity(object, gravity):
- gravity은 floating point type. default는 -9800.
- 이 함수는 중력의 세기를 변경 합니다.
def set_simulation_number_of_cpu_in_use(object, numberOfCPUInUse):
- numberOfCPUInUse은 integer type. default는 4.
- 이 함수는 Simulation을 처리할 CPU 숫자를 설정 합니다.
def set_simulation_nonlinear_simulation(object, bNonlinearSimulation):
- bNonlinearSimulation은 boolean type. default는 False.
- 이 함수는 nonlinear simulation 적용 여부를 설정 합니다.
def set_simulation_ground_collision(object, bGroundCollision):
- bGroundCollision은 boolean type. default는 True
- 이 함수는 지면 충돌처리 적용 여부를 설정 합니다.
def set_simulation_ground_height(object, groundHeight):
- groundHeight은 floating point type. default는 0.0.
- 이 함수는 지면충돌시, 지면으로부터 얼마나 떨어진 곳에서 충돌 검사할 것인지를 설정 합니다.
def set_simulation_avatar_cloth_collision_detection_triangle_vertex(object, bSolidTriangleToClothVertexCollision):
- bSolidTriangleToClothVertexCollision은 boolean type. default는 True
- 이 함수는 아바타와 옷 사이의 충돌 감지 옵션을 설정 합니다.
def set_simulation_self_collision_detection_trianlge_vertex(object, bVertexTriangleSelfCollision):
- bVertexTriangleSelfCollision은 boolean type. default는 True.
- 이 함수는 의상 사이의 충돌을 처리할 시 삼각형과 점간의 충돌 처리 여부를 설정 합니다.
def set_simulation_self_collision_detection_edge_edge(object, bEdgeEdgeSelfCollision):
- bEdgeEdgeSelfCollision은 boolean type. default는 True.
- 이 함수는 의상 사이의 충돌을 처리할 시 엣지와 엣지간의 충돌을 고려할 것인지를 설정 합니다.
def set_simulation_self_collision_detection_avoidance_stiffness(object, SelfCollisionStiffness):
- SelfCollisionStiffness은 floating point type. default는 0.001000.
def set_simulation_proximity_detection_vertex_triangle(object, bVertexTriangleProximity):
- bVertexTriangleProximity은 boolean type. default는 True.
- 이 함수는 아바타와 의상 사이의 충돌을 효율적으로 관리하기 위한 함수입니다. true이면 점-삼각형 사이의 거리를 체크하여 가까이 있는 경우 적절한 힘으로 서로를 떨어뜨려놓지만 false이면 아무것도 하지 않습니다.
def set_simulation_proximity_detection_edge_edge(object, bEdgeEdgeProximity):
- bEdgeEdgeProximity은 boolean type. default는 True.
- 이 함수는 아바타와 의상 사이의 충돌을 효율적으로 관리하기 위한 함수입니다. true이면 엣지-엣지 사이의 거리를 체크하여 가까이 있는 경우 적절한 힘으로 서로를 떨어뜨려놓지만 false이면 아무것도 하지 않습니다.
def set_simulation_intersection_resolution(object, bIntersectionResolution):
- bIntersectionResolution은 boolean type. default는 True.
- 이 함수는 충돌이 일어난 의상의 교차지역을 효율적으로 감소시키는 intersection resolution 과정을 진행할 지의 대한 여부를 설정 합니다.
def set_simulation_layer_based_collision_detection(object, bUseLayer):
- bUseLayer은 boolean type. default는 True.
- 이 함수는 Layer를 반영하여 Simulation을 처리할 것인지를 선택 합니다.
def on_move_garment(object):
- move garment 옵션을 사용하도록 설정 합니다.
- 이 함수는 Garment를 Animation의 시작위치로 이동하도록 합니다.
def single_process(object, open_garment_path, open_avatar_path, open_animation_path, save_file_path, obj_type = 0, simulation_delay_time = 5000, simulation_quality = 0, simulation = True, auto_save_project_file = True):
- single_process는 인자로 넘어온 경로들에 위치한 파일들을 순차적으로 로드하고 save_file_path에 결과 파일을 저장합니다.
- obj_type은 불러올 파일이 obj일 경우에만 적용합니다. obj_type이 0일 경우 불러온 obj file은 avatar로 불러오며 1인 경우 trim object로 로드되며 2인 경우 obj to Garment file로 불러옵니다.
- simulation_delay_time은 파일을 불러온 이후 animation을 진행하기 전 animation의 안정성을 높이기 위해 지연 시간을 설정할 때 사용합니다.avatar와 의상은 처음 불러온 위치에서 지연 시간동안 Simulation을 진행 한 이후 Animation을 시작합니다.
- simulation_delay_time은 micro second를 사용합니다. (1000 == 1 second)
- simulation_quality는 Simulation 할 때의 정밀도를 조절하는데 사용합니다. 0인 경우 Normal 상태로 Simulation을 진행하며 1인 경우 Complete 상태로 Simulation을 진행합니다.simulation_quality는 CLO의 Simulation Quality와 동일합니다. 자세한 설명은 Manual을 참조하십시요.
- Simulation 인자는 파일을 로드한 이후에 Simulation 여부를 결정하는 인자입니다. True 인 경우 파일을 모두 로드한 이후에 Simulation을 진행합니다. 기본 값은 True입니다.
- auto_save_project_file은 save_file_path와 동일한 Folder에 Project File을 자동으로 저장하는 옵션입니다. 기본 값은 True입니다.
Note. single_process는 호출했을 때 단 한 번 파일을 저장합니다. 여러 개의 파일을 저장하고 싶다면 “process" 함수를 이용하십시요.
def process(object):
- process 함수는 설정된 파일들을 로드하고 Animation을 녹화 또는 포즈를 변경한 이후 Animation 파일 또는 의상, 아바타 파일로 저장하는 함수입니다.
- process 함수는 파일 설정, import/export 설정이 모두 완료된 상태에서 호출하여야 합니다. process 함수는 설정된 file 리스트들을 이용하여 1개에서부터 수십 개의 파일들을 로드하고 저장할 수 있습니다.
- 각각의 export되는 결과물은 하나의 import / export 옵션으로 설정되어 처리됩니다.
- 자세한 사안은 example.py 파일을 참고하시기 바랍니다.
댓글