Crusader Kings 3 - Converting DNA code using Portrait Editor

 DNA 코드에는 Base64 포맷과 룰러디자이너 포맷 2가지가 있습니다.

게임 내 포트레잇 에디터를 사용하여 서로 각기 다른 포맷의 데이터를 컨버팅 해 봅시다.


포트레잇 에디터를 사용하기 위해서는 게임을 디버그 모드로 실행 합니다. (다음 글 참고)

Crusader Kings 3 - How to run debug mode (all--the--things.blogspot.com)


` (백틱 문자) 키를 눌러 디버그 콘솔 창을 띄웁니다.


포트레잇 에디터를 실행 하는 방법은 2가지가 있습니다.

1. 콘솔 입력 창에 portrait_editor 입력 하거나

2. Debug Menus에서 'Portrait Editor' 를 클릭 합니다.

포트레잇 에디터

(4명의 무서운 빡빡이가 나옵니다)


게임 내의 캐릭터의 DNA코드를 룰러 디자이너 포맷이든 Base64 포맷이든 준비 합니다. (아래 글 참고)

Crusader Kings 3 - Extract DNA code for ruler designer (all--the--things.blogspot.com)

Crusader Kings 3 - Extract DNA code (Base64 format) (all--the--things.blogspot.com)


# 룰러 디자이너 포맷 → Base64 포맷


이전 글에서 작성했던, '에아드기푸' 캐릭터의 룰러 디자이너 코드는 다음과 같습니다.


	meta_main_portrait={
		type=female
		id=15967
		age=0.410000
		genes={ 			hair_color={ 192 141 230 34 } c0 8d e6 22
 			skin_color={ 87 95 87 95 }
 			eye_color={ 172 150 74 187 }
 			gene_chin_forward={ "chin_forward_pos" 134 "chin_forward_pos" 134 }
 			gene_chin_height={ "chin_height_pos" 140 "chin_height_pos" 140 }
 			gene_chin_width={ "chin_width_pos" 140 "chin_width_pos" 140 }
 			gene_eye_angle={ "eye_angle_pos" 133 "eye_angle_pos" 133 }
 			gene_eye_depth={ "eye_depth_pos" 134 "eye_depth_pos" 134 }
 			gene_eye_height={ "eye_height_neg" 116 "eye_height_neg" 116 }
 			gene_eye_distance={ "eye_distance_pos" 134 "eye_distance_pos" 134 }
 			gene_eye_shut={ "eye_shut_pos" 153 "eye_shut_pos" 153 }
 			gene_forehead_angle={ "forehead_angle_pos" 137 "forehead_angle_pos" 137 }
 			gene_forehead_brow_height={ "forehead_brow_height_pos" 153 "forehead_brow_height_pos" 153 }
 			gene_forehead_roundness={ "forehead_roundness_neg" 114 "forehead_roundness_neg" 114 }
 			gene_forehead_width={ "forehead_width_neg" 102 "forehead_width_neg" 102 }
 			gene_forehead_height={ "forehead_height_neg" 114 "forehead_height_neg" 114 }
 			gene_head_height={ "head_height_neg" 112 "head_height_neg" 112 }
 			gene_head_width={ "head_width_neg" 102 "head_width_neg" 102 }
 			gene_head_profile={ "head_profile_pos" 140 "head_profile_pos" 140 }
 			gene_head_top_height={ "head_top_height_pos" 132 "head_top_height_pos" 132 }
 			gene_head_top_width={ "head_top_width_pos" 153 "head_top_width_pos" 153 }
 			gene_jaw_angle={ "jaw_angle_neg" 106 "jaw_angle_neg" 106 }
 			gene_jaw_forward={ "jaw_forward_pos" 133 "jaw_forward_pos" 133 }
 			gene_jaw_height={ "jaw_height_pos" 128 "jaw_height_pos" 128 }
 			gene_jaw_width={ "jaw_width_pos" 148 "jaw_width_pos" 148 }
 			gene_mouth_corner_depth={ "mouth_corner_depth_neg" 102 "mouth_corner_depth_neg" 102 }
 			gene_mouth_corner_height={ "mouth_corner_height_pos" 132 "mouth_corner_height_pos" 132 }
 			gene_mouth_forward={ "mouth_forward_pos" 129 "mouth_forward_pos" 129 }
 			gene_mouth_height={ "mouth_height_pos" 130 "mouth_height_pos" 130 }
 			gene_mouth_width={ "mouth_width_neg" 102 "mouth_width_neg" 102 }
 			gene_mouth_upper_lip_size={ "mouth_upper_lip_size_pos" 153 "mouth_upper_lip_size_pos" 153 }
 			gene_mouth_lower_lip_size={ "mouth_lower_lip_size_pos" 153 "mouth_lower_lip_size_pos" 153 }
 			gene_mouth_open={ "mouth_open_neg" 114 "mouth_open_neg" 114 }
 			gene_neck_length={ "neck_length_neg" 106 "neck_length_neg" 106 }
 			gene_neck_width={ "neck_width_neg" 108 "neck_width_neg" 108 }
 			gene_bs_cheek_forward={ "cheek_forward_pos" 38 "cheek_forward_pos" 38 }
 			gene_bs_cheek_height={ "cheek_height_neg" 176 "cheek_height_neg" 176 }
 			gene_bs_cheek_width={ "cheek_width_pos" 6 "cheek_width_pos" 6 }
 			gene_bs_ear_angle={ "ear_angle_pos" 17 "ear_angle_pos" 17 }
 			gene_bs_ear_inner_shape={ "ear_inner_shape_pos" 3 "ear_inner_shape_pos" 3 }
 			gene_bs_ear_bend={ "ear_lower_bend_pos" 8 "ear_lower_bend_pos" 8 }
 			gene_bs_ear_outward={ "ear_outward_pos" 89 "ear_outward_pos" 89 }
 			gene_bs_ear_size={ "ear_size_neg" 76 "ear_size_neg" 76 }
 			gene_bs_eye_corner_depth={ "eye_corner_depth_neg" 35 "eye_corner_depth_neg" 35 }
 			gene_bs_eye_fold_shape={ "eye_fold_shape_pos" 18 "eye_fold_shape_pos" 18 }
 			gene_bs_eye_size={ "eye_size_pos" 192 "eye_size_pos" 192 }
 			gene_bs_eye_upper_lid_size={ "eye_upper_lid_size_neg" 6 "eye_upper_lid_size_neg" 6 }
 			gene_bs_forehead_brow_curve={ "forehead_brow_curve_pos" 0 "forehead_brow_curve_pos" 0 }
 			gene_bs_forehead_brow_forward={ "forehead_brow_forward_neg" 4 "forehead_brow_forward_neg" 4 }
 			gene_bs_forehead_brow_inner_height={ "forehead_brow_inner_height_pos" 45 "forehead_brow_inner_height_pos" 45 }
 			gene_bs_forehead_brow_outer_height={ "forehead_brow_outer_height_neg" 4 "forehead_brow_outer_height_neg" 4 }
 			gene_bs_forehead_brow_width={ "forehead_brow_width_pos" 19 "forehead_brow_width_pos" 19 }
 			gene_bs_jaw_def={ "jaw_def_pos" 11 "jaw_def_pos" 11 }
 			gene_bs_mouth_lower_lip_def={ "mouth_lower_lip_def_pos" 3 "mouth_lower_lip_def_pos" 3 }
 			gene_bs_mouth_lower_lip_full={ "mouth_lower_lip_full_neg" 5 "mouth_lower_lip_full_neg" 5 }
 			gene_bs_mouth_lower_lip_pad={ "mouth_lower_lip_pad_neg" 10 "mouth_lower_lip_pad_neg" 10 }
 			gene_bs_mouth_lower_lip_width={ "mouth_lower_lip_width_neg" 108 "mouth_lower_lip_width_neg" 108 }
 			gene_bs_mouth_philtrum_def={ "mouth_philtrum_def_pos" 39 "mouth_philtrum_def_pos" 39 }
 			gene_bs_mouth_philtrum_shape={ "mouth_philtrum_shape_pos" 44 "mouth_philtrum_shape_pos" 44 }
 			gene_bs_mouth_philtrum_width={ "mouth_philtrum_width_neg" 69 "mouth_philtrum_width_neg" 69 }
 			gene_bs_mouth_upper_lip_def={ "mouth_upper_lip_def_pos" 1 "mouth_upper_lip_def_pos" 1 }
 			gene_bs_mouth_upper_lip_full={ "mouth_upper_lip_full_pos" 53 "mouth_upper_lip_full_pos" 53 }
 			gene_bs_mouth_upper_lip_profile={ "mouth_upper_lip_profile_pos" 44 "mouth_upper_lip_profile_pos" 44 }
 			gene_bs_mouth_upper_lip_width={ "mouth_upper_lip_width_pos" 50 "mouth_upper_lip_width_pos" 50 }
 			gene_bs_nose_forward={ "nose_forward_pos" 10 "nose_forward_pos" 10 }
 			gene_bs_nose_height={ "nose_height_neg" 9 "nose_height_neg" 9 }
 			gene_bs_nose_length={ "nose_length_pos" 23 "nose_length_pos" 23 }
 			gene_bs_nose_nostril_height={ "nose_nostril_height_neg" 87 "nose_nostril_height_neg" 87 }
 			gene_bs_nose_nostril_width={ "nose_nostril_width_neg" 49 "nose_nostril_width_neg" 49 }
 			gene_bs_nose_profile={ "nose_profile_hawk" 147 "nose_profile_hawk" 147 }
 			gene_bs_nose_ridge_angle={ "nose_ridge_angle_neg" 27 "nose_ridge_angle_neg" 27 }
 			gene_bs_nose_ridge_width={ "nose_ridge_width_neg" 11 "nose_ridge_width_neg" 11 }
 			gene_bs_nose_size={ "nose_size_neg" 46 "nose_size_neg" 46 }
 			gene_bs_nose_tip_angle={ "nose_tip_angle_pos" 8 "nose_tip_angle_pos" 8 }
 			gene_bs_nose_tip_forward={ "nose_tip_forward_pos" 106 "nose_tip_forward_pos" 106 }
 			gene_bs_nose_tip_width={ "nose_tip_width_neg" 0 "nose_tip_width_neg" 0 }
 			face_detail_cheek_def={ "cheek_def_01" 120 "cheek_def_02" 16 }
 			face_detail_cheek_fat={ "cheek_fat_01_pos" 20 "cheek_fat_01_pos" 30 }
 			face_detail_chin_cleft={ "chin_cleft" 1 "chin_cleft" 1 }
 			face_detail_chin_def={ "chin_def" 147 "chin_def" 147 }
 			face_detail_eye_lower_lid_def={ "eye_lower_lid_def" 50 "eye_lower_lid_def" 50 }
 			face_detail_eye_socket={ "eye_socket_01" 145 "eye_socket_01" 145 }
 			face_detail_nasolabial={ "nasolabial_02" 17 "nasolabial_02" 17 }
 			face_detail_nose_ridge_def={ "nose_ridge_def_pos" 202 "nose_ridge_def_pos" 202 }
 			face_detail_nose_tip_def={ "nose_tip_def" 237 "nose_tip_def" 237 }
 			face_detail_temple_def={ "temple_def" 80 "temple_def" 80 }
 			expression_brow_wrinkles={ "brow_wrinkles_03" 0 "brow_wrinkles_03" 193 }
 			expression_eye_wrinkles={ "eye_wrinkles_02" 145 "eye_wrinkles_02" 145 }
 			expression_forehead_wrinkles={ "forehead_wrinkles_01" 159 "forehead_wrinkles_01" 182 }
 			expression_other={ "cheek_wrinkles_left_01" 0 "cheek_wrinkles_left_01" 0 }
 			complexion={ "complexion_beauty_1" 255 "complexion_1" 144 }
 			gene_height={ "normal_height" 129 "normal_height" 129 }
 			gene_bs_body_type={ "body_fat_head_fat_low" 118 "body_fat_head_fat_low" 126 }
 			gene_bs_body_shape={ "body_shape_triangle_half" 112 "body_shape_rectangle_half" 0 }
 			gene_bs_bust={ "bust_clothes" 154 "bust_shape_3_full" 120 }
 			gene_age={ "old_beauty_1" 120 "old_4" 120 }
 			gene_eyebrows_shape={ "avg_spacing_low_thickness" 250 "avg_spacing_low_thickness" 250 }
 			gene_eyebrows_fullness={ "layer_2_lower_thickness" 157 "layer_2_lower_thickness" 157 }
 			gene_body_hair={ "body_hair_sparse" 120 "body_hair_sparse" 120 }
 			gene_hair_type={ "hair_straight" 128 "hair_straight" 128 }
 			gene_baldness={ "no_baldness" 127 "no_baldness" 127 }
 			eye_accessory={ "normal_eyes" 60 "normal_eyes" 60 }
 			teeth_accessory={ "normal_teeth" 0 "normal_teeth" 0 }
 			eyelashes_accessory={ "normal_eyelashes" 138 "normal_eyelashes" 138 }
 			pose={ "" 255 "" 0 }
 			clothes={ "northern_low_nobility_clothes" 127 "most_clothes" 0 }
 			headgear={ "northern_common" 104 "no_headgear" 0 }
 			legwear={ "western_common_legwear" 181 "all_legwear" 0 }
 			hairstyles={ "scripted_character_hairstyles_01" 45 "all_hairstyles" 0 }
 }
		entity={ 3242738294 3242738294 }
	}​


포트레잇 에디터에서 'Paste Persistent DNA' 버튼을 클릭하면, 위에 복사된 룰러 디자이너 코드가 적용이 됩니다.

그리고 'Copy DNA String' 버튼을 누르면, 클립보드에 Base64 포맷 DNA 코드가 복사됩니다.

복사된 Base64포맷 DNA코드는 다음과 같습니다.

wI3mIldfV1+slkq7AYYBhgGMAYwBjAGMAYUBhQGGAYYAdAB0AYYBhgGZAZkBiQGJAZkBmQByAHIAZgBmAHIAcgBwAHAAZgBmAYwBjAGEAYQBmQGZAGoAagGFAYUBgAGAAZQBlABmAGYBhAGEAYEBgQGCAYIAZgBmAZkBmQGZAZkAcgByAGoAagBsAGwBJgEmALAAsAEGAQYBEQERAAMAAwAIAAgBWQFZAEwATAAjACMBEgESAcABwAAGAAYBAAEAAAQABAEtAS0ABAAEARMBEwELAQsAAwADAAUABQAKAAoAbABsACcAJwEsASwARQBFAAEAAQE1ATUBLAEsATIBMgEKAQoACQAJARcBFwBXAFcAMQAxApMCkwAbABsACwALAC4ALgEIAQgBagFqAAAAAAB4ARAAFAAeAAEAAQGTAZMAMgAyAJEAkQERAREAygDKAO0A7QBQAFACAALBAZEBkQCfALYAAAAAB/8AkAGBAYEBdgF+CnAIAACaCHgEeAN4A/oD+gSdBJ0AeAB4AIAAgAB/AH8APAA8AAAAAAGKAYo=


# Base64 포맷 → 룰러 디자이너 포맷


반대로 Base64 포맷의 DNA 코드를 복사해서 'Paste DNA String' 을 클릭 하면, DNA가 적용 되고,

'Copy Persistent DNA' 를 클릭 하면, 룰러 디자이너 포맷의 DNA 코드가 복사 됩니다.

복사된 룰러 디자이너 포맷의 DNA 코드는 영주 생성기에서 'DNA 붙여넣기'에 사용할 수 있습니다.



이 블로그의 인기 게시물