저녁 먹은게 소화가 안 돼서 새벽에 깬 김에 팁 하나 적어 봅니다.
Stud.io 에서 lxf 파일을 불러오면 일부 부품들 위치가 틀어지거나 방향이 돌아가 있는 경우가 있습니다.
아마도 LDD와 LDraw 사이의 좌표계(?)가 달라서 이런 현상이 생기는 것 같습니다.
얼마 전에 포기남님께서 작업하신 21042 자유의 여신상을 Stud.io로 열어 보면 아래와 같이 뒤죽박죽이 되어 있는걸 보실 수 있습니다.
lxf->ldr(io) 파일 변환을 위한 매핑 및 위치 보정값은 아래 경로에 있는 ldraw.xml 이라는 파일에 담겨 있습니다.
c:\Program Files\Stud.io\data\ (windows)
/Applications/Stud.io/data/ (mac)
참고로 이 파일 형식은 LDD에서 ldr파일 익스포트 하기 위한 용도로 만들어진 것인데,
Stud.io 팀이 가져와서 보정값을 업데이트 하면서 lxf 파일 임포트 용도로 쓰는 것 같습니다.
파일을 열어 보면 몇 가지 xml 태그들이 보입니다.
저도 다는 모르겠지만 이 중에서 Brick 태그는 LDD와 LDraw 사이에 부품 번호가 다를 때 이를 매핑해 주는 용도이고,
Transformation 태그는 부품별로 위치를 보정하기 위해 쓰는 것으로 보입니다.
위 사진과 같이 LDD 에서 31959인 2 x 2 x 1 코너 패널이 LDraw에서는 91501인 것을 볼 수 있고,
이것이 아래와 같이 ldraw.xml 에서 매핑된 것을 보실 수 있습니다.
위치 보정 관련해서는 위에서 언급한 21042 자유의 여신상을 가지고 이야기해 보겠습니다.
일단 열어 보면 뒤죽박죽 같지만, 의외로 간단하게 아래 네 가지 부품 위치가 틀어져 있어서 발생하는 문제입니다.
29119, 29120 (한쪽 커팅된 슬로프)
26603 (2 x 3 타일)
26604 (90도 각도로 옆면 스터드 2개 있는 1 x 1 브릭)
여기에 추가로 LDD 부품 번호 31493 (액슬 홀 있는 1 x 2 브릭)이 LDraw 32064로 매핑되어 있지 않는 문제도 있습니다.
일단 LDD에서 문제의(?) 네 가지 부품을 찾아서 깔아 둡니다.
이 때 이미 위치 보정이 돼서 기준이 될 수 있는 부품 위에 붙여 둬야 얼만큼 틀어졌는지 알 수 있겠죠.
여기서는 4 x 4 플레이트를 사용했습니다.
이 파일을 Stud.io 에서 열면 아래와 같습니다.
29119, 29120은 y축으로 플레이트 하나, z축으로 반 스터드 이동해야 하고,
26603은 x축으로 한 스터드, z축으로 반 스터드,
26604는 y축으로 플레이트 셋, y축 시계 방향으로 90도 회전해야 하네요.
아까 열었던 ldraw.xml 에 아래와 같이 태그를 추가해 줍니다.
길이 단위는 센티미터, 각도 단위는 라디안입니다.
참고로 1 스터드는 0.8cm, 플레이트 하나 두께는 0.32cm 입니다. 그래서 스터드:플레이트 2:5 비율이 나오죠.
+/- 는 몇 번 시행착오를 거치면 감이 오실 텐데, 이동하고자 하는 방향에 -를 붙이면 되고, 각도는 시계방향이 +인 것 같습니다.
태그에서 ax, ay, az는 각각 회전축을 나타낸 것으로 보입니다.
한 축으로만 회전할 때는 원하는 축에 1, 다른 축에 0을 넣으면 되고,
복합적으로 회전할 때는 아마 각도 값과 행렬 곱셈을 할 것 같은데 바로 유추가 되진 않네요.
이렇게 추가하고 나서 Stud.io 종료 후 다시 열어 보면 아래와 같이 깔끔하게 나오는 것을 보실 수 있습니다.
눈썰미 있으신 분은 아마 횃불이 이상하다고 생각하실 겁니다.
횃불에 쓰인 미니피규어 머리카락 부품(32602)이 Stud.io에 없기 때문인데요.
인터넷에서 구할 수 있는 비공식 LDraw 부품 파일을 가지고 이 문제를 해결할 수 있습니다.
그것과 관련해서는 새벽에 깨는 일이 또 생기면 적어 보도록 하겠습니다.
길고 재미없는 글 읽어 주셔서 감사합니다.
렌더러가 좋아져서 스튜디오를 사용해볼려고 하는데 일부 이런 것들은 얼른 해결되면 좋겠네요 ㅎㅎ
왠지 요즘엔 우선순위에서 밀려 있는 듯한 느낌도 들고요.
일단 유로브릭스에 별도 쓰레드가 있는걸 확인했습니다.
https://www.eurobricks.com/forum/index.php?/forums/topic/137193-more-up-to-date-ldrawxml-lddldraw-conversion-file/&page=10
언급하신 LDraw.xml파일을 계속 업데이트 하는것 같더라고요.
2018년9월8일이 최신입니다.
근데 Ldraw와 Studio의 LDraw.xml파일이 좀 다른지,
같은 파일을 본문에 있는 폴더의 파일과 교체하니, LXF파일 열기가 안되더라고요. (계속 parsing상태..)
Studio측에서도 뭔가 대응안이 발빠르게 나왔으면 좋겠습니다.
같은 부품에 대한 태그가 중복되면 말씀하신 것처럼 멈춰 버리네요.
stud.io 에 있던 파일에 transformation 태그만 유로브릭스에서 가져와서 중복 제거한 파일 링크 걸어 봅니다.
https://1drv.ms/u/s!AoGefdwXut1GhZQql5mk3LevTtbUQw
소중한 파일 공유 감사합니다!
잠시 테스트 해봤는데, 신규 브릭 같은건 거의 완벽하더라고요.
미니피겨 다리 같은건 아직 좌표(?)가 맞지 않는 등 개선의 여지는 보였습니다.