AnyPortrait > 메뉴얼 > PSD 파일과 기존 객체

PSD 파일과 기존 객체


1.7.0

PSD 파일을 다시 가져오는 기능을 이용하면, 수정된 PSD 파일을 기존의 작업물에 적용하는 것이 가능합니다.
그런데 이 기능은 PSD 파일이 어떻게 수정되었느냐에 따라 많은 문제점을 야기시킬 수 있습니다.
이전의 메뉴얼(링크)에서는 PSD와 메시 그룹간의 매핑 방법과 레이어의 변동시 어떻게 해야하는지에 대해서 다루었습니다.


PSD 파일을 다시 가져오면, 기존의 메시 그룹 내의 객체들을 PSD 파일의 이미지와 가장 유사하도록 위치나 크기 등을 다시 조정합니다.
그런데 이 경우에 의도치 않은 결과가 나타날 수 있습니다.
의도치 않은 위치로 객체들이 이동할 수 있고, 또한 위치 보정을 하지 않은 상태로 Atlas만 갱신하고자 하는 경우도 있을 것입니다.
AnyPortrait v1.7.0에서는 기존의 객체들을 어떻게 처리할 것인지에 대한 옵션들이 추가되었습니다.
이 페이지에서는 이 옵션들에 대해서 설명합니다.




위치 조정 방식


PSD 다시 가져오기를 하면 기본적으로 매핑된 객체들의 위치와 크기 및 회전값은 PSD 파일에 맞게 조정됩니다.
그래서 PSD 다시 가져오기를 실행하면 PSD 파일과 거의 동일한 형태가 되는 것입니다.
이때 기존의 객체들의 위치를 조정하는 방식에 따라 내부의 처리 방식이 조금 달라집니다.




PSD 파일로부터 생성된 로봇 캐릭터입니다.
(1) 이 로봇의 팔의 이미지를 변경한 후, 옵션에 따른 위치 조정 차이점을 확인해봅시다.
(2) Edit Default Transform 모드를 켜서 이 로봇 팔 메시의 위치가 약 "(-253, -147)"인 것을 기억해둡시다.




오른쪽 이미지와 같이 로봇의 팔을 "집게"에서 "송곳" 형태가 되도록 PSD 파일을 수정했습니다.
이제 수정된 PSD 파일을 다시 가져와봅시다.




(1) 변경된 PSD 파일을 다시 가져오려고 하니 로봇 팔 부분의 형태가 기존과 달라진 것을 볼 수 있습니다.
(2) 왼쪽의 UI에는 "Adjusting Transforms of Existing Objects" 항목과 2개의 옵션들을 추가된 것을 볼 수 있습니다.


이 옵션은 PSD 파일에 맞게 기존 객체들을 어떻게 처리할지를 결정합니다.
- Connected Objects : 매핑이 완료되어 PSD의 레이어와 연결된 기존 객체들의 위치를 조정하는 방식을 결정합니다.
- Unconnected Meshes : 매핑되지 않은 메시 객체들을 그대로 둘지, 아니면 최소한 크기만이라도 조정할지를 결정합니다.




(1) Connected Objects 옵션에는 다음과 같은 값들이 있습니다.
- Adjust to PSD (Legacy) : PSD에 맞게 기존 객체들의 위치 등을 조정하는 이전 버전의 처리 방식입니다.
- Adjust to PSD (Pivot Moved) : PSD에 맞게 기존 객체들의 위치를 조정하되, 메시의 Pivot을 우선적으로 조정합니다.
- Keep Current : Atlas만 갱신하며 기존 객체들의 위치 등은 조정하지 않습니다.


여기서는 "Adjust to PSD (Legacy)"와 "Adjust to PSD (Pivot Moved)" 옵션을 각각 선택하여 그 차이점을 확인해봅시다.




두 옵션의 차이는 수정된 PSD 파일의 이미지의 형태가 바뀌면서 기존의 객체와 위치가 맞지 않아 보정이 필요할 때 발생합니다.




(1) 위치 보정 도구를 이용해서 PSD의 이미지와 기존 객체의 위치를 일치시킵니다.
(2) 위치가 일치되었다면 Next 버튼을 눌러서 이후 다시 가져오기 작업을 완료합니다.


이제 PSD 다시 가져오기 결과를 두개의 옵션에 대해서 각각 확인해봅시다.




겉으로 보기엔 두 옵션에서의 결과는 동일해보입니다.
그런데 로봇 팔 메시 객체를 선택하여 위치를 확인하면 그 차이를 알 수 있습니다.
"Adjust to PSD (Legacy)" 옵션의 결과값에서는 기존의 위치값인 "(-253, -147)"과는 다른 "(-256, -205)"의 값을 가집니다.
반면, "Adjust to PSD (Pivot Moved)" 옵션을 이용한 결과에서는 기존과 거의 유사한 위치값을 가집니다.




"Adjust to PSD (Pivot Moved)" 옵션에서 이미지의 형태가 바뀌었는데도 객체의 위치 값을 유지할 수 있었던 것은 메시의 Pivot을 대신 움직였던 덕분입니다.
"Adjust to PSD (Legacy)" 옵션의 경우, 단순히 새로 가져온 PSD 레이어 이미지의 중심에 메시의 Pivot을 둡니다.
"Adjust to PSD (Pivot Moved)" 옵션의 경우, Pivot을 중심으로부터 조금 이동된 것을 볼 수 있습니다.


AnyPortrait v1.7.0에서는 "Adjust to PSD (Pivot Moved)" 옵션이 기본값으로 설정되었습니다.
옵션별 처리 방식의 차이를 알면 PSD를 다시 가져올 때 발생하는 이슈에 대처하기 쉬울 것입니다.




기존의 기본 트랜스폼을 유지하기


PSD 파일로부터 캐릭터를 생성한 이후, 객체들의 기본 트랜스폼(Default Transform)을 AnyPortrait 상에서 직접 수정하기도 할 것입니다.
그런데 이 상태에서 수정된 PSD 파일을 다시 가져오면 기껏 변경했던 객체들의 위치나 크기 등이 다시 리셋되어버립니다.
AnyPortrait v1.7.0에서 추가된 옵션을 이용하여 이 문제를 해결해봅시다.




PSD 파일로부터 생성한 로봇입니다.
(1) 메시 그룹 편집 화면에서 Edit Default Transform 버튼을 누릅니다.
(2) 로봇의 팔 객체를 위와 같이 이동 및 회전합니다.




PSD 파일을 다시 가져와봅시다.
이번에는 로봇을 생성했을 때의 PSD 파일을 그대로 다시 가져오겠습니다.
PSD 파일 다시 가져오기 창에서 메시 그룹의 로봇의 팔이 변형된 것을 볼 수 있습니다.




만약 이 상태로 PSD 파일 다시 가져오기 작업을 마무리 한다면 위와 같이 로봇 팔의 트랜스폼이 원래대로 돌아와버립니다.




수정한 기본 트랜스폼을 유지하기 위해서는 옵션을 변경해야합니다.
(1) PSD 파일 다시 가져오기의 "Basic Setting" 단계에서 Connected Objects 옵션의 값을 (2) "Keep Current"로 변경합니다.




PSD 파일 다시 가져오기 작업을 마무리하면 기존의 트랜스폼이 유지되는 것을 볼 수 있습니다.




복제된 메시의 트랜스폼 조정하기




PSD 파일의 이미지 레이어로부터 생성된 메시 객체를 복제하는 경우를 가정해봅시다.
PSD 파일 다시 가져오기 작업의 핵심은 PSD 레이어와 메시 그룹의 객체를 연결하는 "매핑"입니다.
그런데 PSD 파일 내의 1개의 이미지 레이어를 메시 그룹에 존재하는 복제된 여러개의 매시 객체들로 매핑할 수는 없습니다.
그래서 일반적으로 복제된 메시는 매핑된 메시와 공유하는 Atlas의 갱신을 제외하고는 별도의 처리 대상이 되지 않습니다.


이 방식은 일반적으로 큰 문제가 없습니다.
하지만 PSD 이미지나 메시 그룹의 크기가 맞지 않아서 전체적인 크기 조정이 필요한 특수한 경우에는 문제가 됩니다.




PSD 이미지 파일의 크기를 절반으로 줄이고, 이 PSD 파일을 다시 가져와서 캐릭터에 적용해봅시다.




(1) 이미지의 크기가 바뀐 PSD 파일을 대상으로 다시 가져오기를 해보면 메시 그룹과 크기가 맞지 않는 것을 볼 수 있습니다.
(2) "Bake Scale" 옵션의 값을 조절하여 PSD 이미지와 메시 그룹의 크기를 일치시켜야 합니다.




(1) Unconnected Meshes 옵션에는 다음의 값들이 있습니다.
- Ignore : PSD와 연결되지 않은 기존의 메시 객체들을 대상으로 별도의 처리를 하지 않습니다.
- Resize by Scale Factor : 전체적인 크기 조정이 필요한 경우엔, PSD의 영향을 받는 복제된 메시들에도 동일한 크기 조정을 가합니다.


두개의 옵션에 대해서 각각 PSD 파일 다시 가져오기 작업을 완료하여 결과를 비교해봅시다.




크기 조정이 필요한 PSD 파일 다시 가져오기 과정 중엔 "Adjust" 단계에서 위와 같은 Atlas 크기 조정 작업이 필요합니다.




두개의 옵션에 대해서 각각 PSD 파일 다시 가져오기를 완료한 결과입니다.
"Ignore" 옵션에서는 복제된 메시 객체들의 팔이 작아졌습니다.
PSD 파일의 이미지 크기가 작아졌지만 별다른 크기 조정이 없었기 때문에 위와 같은 문제가 발생한 것입니다.
반면에 "Resize by Scale Factor" 옵션의 경우엔 정상적인 결과를 볼 수 있습니다.
PSD 파일의 이미지 크기가 작아진 만큼 메시 객체들의 크기를 증가시켜야 하는데, 그 처리를 복제된 메시에도 적용해서 문제를 해결한 것입니다.


참고
이 처리는 동일한 메시를 공유하는 메시 객체들에 한해서만 적용됩니다.




PSD 파일과 메시 그룹의 레이어 구조가 다른 경우의 문제


PSD 파일을 가져오는 기능은 PSD 레이어의 위치와 영역의 크기를 AnyPortrait 시스템에 맞게 변환하는 과정을 거칩니다.
AnyPortrait는 PSD 파일 상의 값을 최대한 활용하는데, 여기서 문제가 하나 발생합니다.
PSD 파일의 "폴더 레이어"는 이미지 레이어와 달리 "위치값"을 가지지 않습니다.
그 반면, PSD 파일의 폴더 레이어와 대응되는 AnyPortrait의 "서브 메시 그룹"은 위치를 포함한 트랜스폼 값을 가집니다.
이 차이를 해소하기 위해서, AnyPortrait는 "폴더 레이어"에 포함된 이미지 레이어들의 위치를 이용해서 평균 값을 "서브 메시 그룹"의 위치로서 적용합니다.


대체로 이 방식은 큰 문제없이 동작합니다.
하지만 PSD 파일의 레이어 구조가 메시 그룹의 구조와 서로 다른 경우엔 위치 조정이 잘못 되어버리는 문제가 발생합니다.
이미지 레이어의 평균 위치를 구하는 과정에서 잘못된 값이 서브 메시 그룹과 하위의 객체들에게 영향을 주기 때문입니다.


여기서는 이 문제가 어떻게 발생하는지와 해결 방법을 알아봅시다.




문제를 재현하기 위해 PSD 파일의 레이어 구조와 메시 그룹의 구조를 서로 다르게 만들어봅시다.
먼저, PSD 파일 상의 레이어 구조입니다.
여기서는 폴더 레이어를 만들지 않아서 모든 이미지 레이어들이 동일한 레벨에 위치합니다.




반면에 AnyPortrait에서의 로봇 메시 그룹은 서브 메시 그룹을 가집니다.
서브 메시 그룹에는 "Arm"이라는 이름의 메시가 속한 것을 볼 수 있습니다.




이 상태에서 PSD 파일 다시 가져오기를 시도해봅시다.
(1) "Mapping" 단계에서 PSD의 레이어 구조와 메시 그룹 내의 구조가 서로 맞지 않은 것을 볼 수 있습니다.




만약 이 상태에서 Next 버튼을 눌러서 진행하려고 한다면 위와 같은 경고 메시지가 나타납니다.
이 메시지는 매핑 과정에서 구조가 서로 다른 경우가 발견되었으니 PSD 파일과 메시 그룹의 구조를 일치시켜야 한다는 내용을 담고 있습니다.
이 경고를 무시하고 Ignore and Proceed 버튼을 눌러서 이후 작업을 강제로 마무리해봅시다.


참고
이 경고 메시지는 매핑된 대상들의 "레벨"이 일치하는지만 체크합니다.
만약 서로 매핑되지 않은 폴더 레이어나 서브 메시 그룹에 속한 상태에서 레벨이 같은 경우는 감지하지 않습니다.
그러므로 경고 메시지에 의존하기보다는 PSD 파일과 메시 그룹의 상태를 미리 확인해두는 것을 권장합니다.




(1) PSD와의 구조 차이가 발생했던 "Arm" 메시를 확인해봅시다.
(2) 위치 조정 처리가 잘못 수행되면서 위와 같이 잘못된 위치로 이동된 것을 볼 수 있습니다.


이 경우의 가장 확실한 해결 방법은 PSD 파일이나 메시 그룹의 구조를 변경하여 서로 일치시키는 것입니다.
특히, PSD 파일 내에서 폴더 레이어를 추가하는 작업이 더 용이할 것입니다.
그후, 폴더 레이어와 서브 메시 그룹을 매핑하면 정상적으로 다시 가져오기 작업이 수행될 것입니다.


그런데 앞서 소개한 "Keep Current" 옵션을 이용해도 이 문제를 해결할 수 있습니다.
"Keep Current" 옵션이 위치 조정을 수행하지 않다는 특성에 의해 이 문제를 피할 수 있는 것입니다.




앞서 설명한 Connected Objects 옵션의 값을 "Keep Current"로 설정한 상태에서 PSD 파일을 다시 가져와봅시다.




"Keep Current" 옵션이 적용된 상태에서는 "Mapping" 단계에서 PSD 파일과의 구조 차이가 존재해도 경고 메시지가 나타나지 않습니다.




위치 조정없이 정상적으로 PSD 파일 다시 가져오기 작업이 완료되는 것을 볼 수 있습니다.