학살과 자동이동 중 어느 인터페이스가 위에 있어야 할까요?
단순하긴 하지만 갑자기 답하려고 하면 세상 헛갈리는 주제를 이야기해 보겠습니다. UI에 조금이라도 관여하는 인터페이스를 만들다 보면 항상 듣게 되는 질문 중 하나는 그래서 이 인터페이스는 다른 인터페이스의 위에 올라와야 하느냐, 아래로 내려가야 하느냐입니다.
생각 없이 새로 만드는 인터페이스가 위에 올라와야 한다고 이야기를 반복하다 보면 레벨업, 새로운 아이템 획득, 능력치 증가, 자동이동 가능, 업적 달성 등의 다양한 이벤트가 거의 비슷한 시간대에 일어날 때 화면은 난장판이 되고 말 겁니다. 또 한편으로는 당연히 아래로 내려가도 상관 없다고 생각한 인터페이스가 위로 올라와야 해서 어려움을 겪기도 합니다. 가령 화면 전체를 가리는 업적 화면을 열고 그 안에서 뭔가 하고 있을 때 뒤에서 진행하던 자동전투에 의한 레벨업을 한다면 레벨업 메시지를 업적 화면 위에 보여줘야 할까요? 레벨업은 중요한 이벤트이므로 그래야 할 것 같기는 한데 그럼 전체 화면을 가리는 씬 위에 올라오는 팝업이 생깁니다. 이런 과정을 반복하다 보면 어느 인터페이스가 더 위에 있어야 하는지를 정의하기가 생각보다 까다롭다는 것을 알게 됩니다.
실은 처음 UI 시스템을 설계하면서 언리얼 기준으로 씬과 팝업의 종류와 용도에 따라 이들이 겹치는 큰 순서를 정해 놓고 시작해야 합니다. 다만 오늘 그 이야기까지 할 건 아닙니다. 범위를 확 좁혀 귀찮은 사례 하나를 들어 보겠습니다. 위 스크린샷은 디아블로 이모탈에서 한번에 몬스터 여러 마리를 처치할 때 나타나는 학살 메시지가 나타나는 상황입니다. 이 메시지는 화면 중앙 하단에 나타납니다. 그런데 이 자리에는 항상 자동이동 메시지가 나타납니다. 그러면 학살 메시지는 자동이동 메시지 위에 나와야 할까요 아니면 아래에 나와야 할까요.
화면을 보면 학살 메시지는 당연히 자동이동 메시지 위에 나오는 것 같습니다. 자동이동 메시지가 더 위에 있었다면 분명 눈에 보였겠죠. 그런데 자동이동 메시지는 희미한 자동이동버튼에서 이야기한 것처럼 화면 상에 버튼이 희미하게 표시되는 상태 또는 아예 표시되지 않는 상태에서도 빈 공간을 터치하면 동작합니다. 그래서 단순히 학살 메시지 뒤에 있으면 이 상황에서 자동이동 버튼을 조작할 수 없게 됩니다.
답은 학살 메시지가 앞에 나오고 자동이동 메시지는 뒤에 나오지만 학살 메시지는 터치 입력을 받지 않고 입력을 그냥 뒤로 보냅니다. 뒤에 가려져 있는 자동이동 메시지는 보이지는 않지만 여전히 입력을 받고 있으며 학살 메시지 위에서도 보이지 않는 자동이동 버튼 위치를 터치하면 이 상황에서 바로 자동이동이 일어납니다. 그래서 어느 메시지가 위에 있어야 할 지 헛갈리는 상황인데 위에 있어야 하는 메시지는 항상 시각적인 기준에 따르되 뒤에 있는 UI 요소가 입력을 받아야 할 경우 시각적으로 앞에 있는 인터페이스는 입력을 받지 않고 입력을 그냥 뒤로 통과시켜야 합니다.