https://www.crusaderkings.com/news/ck3-dev-diary-37-making-mods-1410656-1234 (출처)
이번 일지는 CK3팀 프로그래머인 Matthew가 올렸습니다.
(↓모딩 데이터베이스 폴더)

CK3과 임롬은 프로그래밍 언어로 조미니 기반이며, 조미니 관련 링크는
https://forum.paradoxplaza.com/forum/threads/grand-jomini-modding-information-manuscript.1170261/
를 참조하시면 됩니다. 이벤트 스크립트 관련 내용은 30번째 일지에 있습니다.
https://forum.paradoxplaza.com/forum/threads/crusader-kings-3-dev-diary-30-event-scripting.1397140/
캐릭터 상호작용
CK2에서 캐릭터의 핵심 상호작용은 결혼 및 약혼, 동맹, 전쟁선포가 하드코딩으로 짜였습니다. 캐릭터가 목표를 설정할 수 있도록 된 건 그 뒤의 일이었는데, 시스템 한계로 목표된 결정을 추가하거나 바꿀 수만 있었습니다.
CK3에서는 모든 작업이 스크립트로 짜였고, 하드코딩을 건드리지 않아도 텍스트 작업만으로 모딩이 쉬워질 수 있도록 하는 걸 목표로 잡았습니다. 만약 하드코딩된 부분을 바꾸려고 하면 경고 메시지가 떠서 알 수 있도록 합니다. 참고로 여기에는 AI에서 가져오고, 받고, 응답하고, 그래픽으로 표시하고, 사용하는 방식에 영향을 미치는 상호 작용을 사용할 수있는 모든 옵션의 전체 목록이 있습니다.
모드 조합
모드 호환성 향상을 위해 새 항목이 다른 파일에 있더라도 데이터베이스 항목이 키로 재정의 될 수 있도록 만들었다고 합니다.
예컨대 미치광이(Lunatic) 특성이 수행하는 작업을 재정의하려면 전체 특성 파일을 복사하여 한 항목 만 변경하는 대신 미치광이 특성이 수행하는 작업에 대한 새로운 정의를 포함하는 파일을 만들 수 있게 됩니다.
(↓텍스트 수정으로 바꾼 미치광이 트레잇 효과)


개발 단계에서는 모드 효과 덮어씌우기는 지원하지만, 효과 추가는 지원하지 않는다고 합니다.
경고, 문제 및 알림
https://forum.paradoxplaza.com/forum/threads/ck3-dev-diary-16-tutorials-and-tooltips-and-encyclopedias-oh-my.1345581/ (참조)
CK2에서는 인터페이스가 하드코딩되었지만, CK3에선 스크립트를 통해 수정할 수 있게 바뀔 예정입니다.
예시: 알림 목록을 수정할 경우
알림을 위해 공통 폴더에 데이터베이스 항목을 만든 다음 실행하려는 위치에서 send_interface_message 또는 send_interface_toast 효과를 사용하면됩니다.
이러한 효과는 데이터베이스에서 스크립팅 된 내용을 사용하는 대신 제목과 텍스트에 대한 선택적 재정의뿐 아니라 메시지 유형을 사용합니다. 또한 많은 수의 기계적인 텍스트로 메시지를 부 풀리게하는 대신 사용자 정의 도구 설명을 사용하는 것이 권장 되기는하지만 표시 될 때 텍스트로 포함되는 여러 효과를 실행할 수 있습니다.
경고, 조언 및 현재 문제의 경우 모두 동일한 "중요 작업"시스템을 거치며, 이들 간의 핵심적인 차이점은 시각적 모양과 위치를 제어하는 데 사용하도록 지정된 유형입니다.
이러한 중요한 액션에는 check_create_action 및 effect 블록이 있으며, 둘 다 인터페이스 효과 (특히 MP 전반에서 게임 상태를 수정하지 않고 로컬 UI 만 수정하는 표시된 효과)를 실행하여 생성 가능한지 여부와 클릭시 수행 할 작업을 확인합니다.
check_create_action에서 실행할 주요 인터페이스 효과는이 작업 유형에 대한 UI 요소를 생성하려고 시도하는 try_create_important_action이며 일반적으로 if 검사 뒤에 있습니다.
UI 요소를 클릭 할 때의 효과 블록에는 실행하기에 좋은 아이디어가 몇 가지 있습니다. 반응 적 조언의 일부인 경우 start_tutorial_lesson을 사용하는 것이 좋은 아이디어이고 경고 또는 문제의 경우 open_view_data 효과 경고 또는 문제의 원인을 해결하는 데 도움이 될 수있는 창을 여는 방법이라고 합니다.

참고 :이 개발 일기를 작성하는 동안 실제로 1.0에서 모드를 통해 보는 것과 같은 사용자 지정 아이콘을 추가하는 것이 실제로 작동하지 않는다는 것을 발견했습니다. 1.1에서는 이미 수정되었지만 여기로 돌아 오는 사람들을 위해 여기에서 빨리 주목해야한다고 생각했습니다. 즉시 작동하지 않을 때 알려주는 개발 일기.
제안은 중요한 작업과 유사하지만 제안이 플레이어에게 얼마나 중요한지 확인하는 가중치 필드와 제안의 잠재적 대상이 가장 적합한 지 확인하는 점수 필드도 있습니다.
예를 들어, 조작 청구 제안에서 가중치는 조작 할 수있는 항목이 근처에 있는지, 이미 보유한 청구 수 및 이미 청구를 조작 중인지 여부를 기반으로합니다. 조작 할 제목의 점수는 카운티의 발전 수준, 정복하기 쉬운 정도, 신앙이나 문화를 공유하는 경우 등과 같은 훨씬 더 큰 값 목록을 기반으로합니다.
GUI 스크립팅
임페라토르: 롬을 참고해서 GUI 스크립팅 언어는 일반 데이터베이스 및 이벤트 스크립트와 다르지만 여전히 매우 다재다능하며 게임에있는 거의 모든 GUI 요소의 모양과 위치 및 전체 기능을 모두 변경할 수 있습니다. 또한 게임에 GUI 디버그 모드가있어 계층 구조를 통해 볼 수 있고 요소가 정의 된 파일과 줄을 열 수있어 인터페이스 작업이 훨씬 쉬워집니다.
(일지가 올라온 시점에서 새 창 GUI는 지원하지 않는다고 합니다)
(↓캐릭터 죽이기 GUI 스크립팅 예시)




첫댓글 출시되면 할 시간이 있을려나
인터페이스 모드도 엄청 나오겠네요. 부디 갓겜 되기를.
다음은 업적. 그 다음은 패치노트. 그 다음 출시려나여
일지 올라오는 순서로 볼때 아마 다루지 않을까 싶습니다.