|
2026-06-27 01:02
조회: 1,445
추천: 0
12.1.0에 추가될 새로운 버프/디버프 API(Aura Tracking)에 대한 정보12.1.0부터 기존의 프라이빗 오라와 별개로 새로운 오라 API인 Aura Tracking이 추가됩니다.
2시즌부터 프라이빗 오라의 역할을 대체하는 것 같습니다. 용군단 3시즌~한밤 1시즌 컨텐츠에선 프라이빗 오라를 여전히 사용한다고 이해하시면 되겠네요. 아래는 블리자드 개발팀의 디스코드 채널 공지 번역입니다 (https://discord.com/channels/327414731654692866/1517308873093152768) ----------------------------------------- 월드 오브 워크래프트 UI 엔지니어링 팀에서 다시 한번 인사드립니다! 오늘은 12.1에 적용될 오라 관련 주요 변경 사항에 대해 말씀드리고자 합니다. 이 변경 사항 대부분은 PTR 시작과 동시에 확인할 수 있으며, 나머지 부분은 향후 수 주에 걸쳐 점진적으로 도입될 예정입니다. 왜 오라인가요? 한밤 확장팩 출시로 애드온 무장 해제(Addon Disarmament) 프로젝트가 시작된 이래 오라는 애드온 보안에서 지속적으로 가장 취약한 영역 중 하나였으며, 출시 전후로 수많은 보안 파훼법이 발견되기도 했습니다. 핵심 문제는 많은 경우에서 특정 유닛(플레이어, 적, 공격대/파티원 등)에 단순히 어떤 오라가 걸려있는지만 알아도 중요한 전투 이벤트가 발생했음을 판단하기에 충분하다는 것입니다. 오라 필터는 다수의 적법한 애드온 사용에 반드시 필요하지만 한 유닛에 여러 오라가 걸렸어도 "특정 오라 X"가 있다고 알려줄 수 있는 방법을 내포하고 있으므로 보안 문제를 어렵게 만드는 것도 사실입니다. 지금까지 저희는 이에 대한 해결책으로 프라이빗 오라에 의존해 왔습니다. 불행하게도 프라이빗 오라는 몇 가지 단점이 있습니다: 애드온에서 보이지 않기 때문에 커스터마이징을 할 수 없으며, 이름표 같은데선 모든 방면에서 지원되지 않고 모든 보스전마다 설정을 하느라 디자이너들에게 상당한 설정 업무량을 가중시켰습니다. 비밀 값(Secret values)은 바로 이와 같은 경우를 방어하기 위해 만들어졌으며 기본적으로 수동적인 보호 기능을 제공하고 있습니다. 무엇이 바뀌나요? 기존 API의 변경 사항을 다루기 전에, 먼저 Lua에 추가되는 몇 가지 새로운 구조와 두 가지 새로운 객체 유형( Aura Containers와 Aura Buttons)을 소개해 드리겠습니다.새로운 기술: 비공개 스크립트 객체(Private Script Object)와 접근 금지 파티션(The Forbidden Partition) 비공개 스크립트 객체(Private Script Objects)는 스크립트 객체의 Lua 표현을 여러 Lua 테이블 또는 파티션으로 분할할 수 있게 해주는 새로운 구조입니다. 이들 파티션을 접근 금지 파티션(Forbidden Partition)이라고 부르는데 애드온이 접근할 수 없기 때문입니다. 접근 금지 파티션에는 믹스인(mixin), key/value pairs, 함수, 스크립트 핸들러, 하위 객체(child object) 등 어떤 종류의 값이든 담을 수 있습니다. 이를 통해 객체가 안전한 환경에 있지 않더라도 애드온 코드로부터 객체의 특정 부분을 효과적으로 숨길 수 있습니다. 새로운 기술: 접근 금지 어스펙트(Forbidden Aspect) 접근 금지 어스펙트(Forbidden Aspect)는 비공개 스크립트 객체와 함께 작동하는 또 다른 새로운 구조입니다. 개념적으로는 한밤에서 소개된 비밀 어스펙트(Secret Aspect)와 유사하지만, 특정 객체 API가 비밀 값을 반환하게 만드는 대신 애드온이 특정 기능 자체를 아예 사용하지 못하도록 막습니다. 비밀 어스펙트가 데이터를 숨긴다면, 접근 금지 어스펙트는 애드온이 객체를 가지고 할 수 있는 행동을 제한합니다. 여러 접근 금지 어스펙트가 추가되어 있는데(자세한 사항은 문서 참조), 그 중 UntrustedScriptExecution를 예로 들어보겠습니다. 프레임이 접근 금지 어스펙트 UntrustedScriptExecution을 가지고 있고 설정된 스크립트 바인딩 핸들러(OnShow, OnLoad, OnSizeChanged 같은 것들)가 있다면, 핸들러 객체가 접근 금지 파티션에 있거나 코드 실행이 오염(Taint)되지 않은 경우 외에는 핸들러가 실행되지 않습니다. 다시 말해서 애드온은 객체에 자체적인 스크립트 바인딩을 설치할 수 없지만 블리자드 내부 코드로는 가능하다는 것입니다.새로운 객체 유형: 오라 컨테이너(Aura Container)와 오라 버튼(Aura Button) Aura Container와 Aura Button은 애드온이 자기만의 방식으로 오라를 표시할 수 있게 해주는 새로운 Lua 객체 유형입니다. 아래는 사용법을 보여주는 간단한 예시입니다:
위의 예시에서 Aura Container를 생성하고 나의 대상 유닛에 걸린 이로운 오라들 중 가장 앞의 5개를 추적하도록 지정한 후, Aura Container에 5개의 오라 버튼을 추가했습니다. 각 오라 버튼에는 아이콘 텍스처와 지속시간을 표시할 폰트 스트링을 생성합니다. 오라 버튼에 사용하고 있는 오라 버튼 API는 제공되는 API중에서 일부 샘플일 뿐이지만(전체 내용은 문서에 공개 예정), 이것 만으로도 어떻게 작동하는지 감을 잡을 수 있을겁니다. 주목할 점은 애드온 코드가 오라를 표시하는 방식에 대해서는 여전히 큰 제어권을 갖지만, 근본적인 오라 데이터와는 전혀 상호작용하지 않는다는 것입니다. 이러한 분리는 보안에 매우 중요할 뿐만 아니라, 나만의 오라 표시를 더 쉽고 성능 저하 문제가 없이 제작할 수 있게 만들어 줍니다. Aura Container가 내부적으로 오라의 추적, 필터링, 할당과 데이터 업데이트를 알아서 처리하므로, 애드온은 오라 상태를 매번 직접 조회하고, 대조하고, 새로고침하는 무거운 작업 대신 표시 방식에 보다 집중할 수 있습니다. 왜 오라 컨테이너(Aura Container)가 더 안전한가요? 이에 답하기 위해 비공개 스크립트 객체(Private Script Object)와 접근 금지 어스펙트(Forbidden Aspect)로 다시 돌아가 보겠습니다. 오라 버튼과 오라 컨테이너는 생성될 때 둘 다 접근 금지 어스펙트가 적용됩니다. 현재 어떤 API들이 변경되나요? 기존 API의 주요 변경점은 오라가 비밀일 때(전투 중, 보스전, 신화+, PvP 경기) 이 모든 내용이 PTR 1주 차에 바로 적용되나요? 아닙니다. 첫 번째 PTR 빌드에는 몇 가지 요소가 아직 구현되지 않았으며, 향후 몇 주 동안 도입될 예정입니다. 가장 핵심적인 언제나 그렇듯 저희는 여러분의 피드백을 기다리고 있으며, 면책 조항: 본 공지는 애드온 제작자를 위한 것이며, 애드온 관련 API 및 보안 변경 사항에만 초점을 맞추고 있습니다. 게임의 다른 부분(UI 또는 기타 다른 사항들)에 예정된 변경 사항은 여기에 포함되지 않습니다.
EXP
114,718
(18%)
/ 135,001
|
엘나르핌