Bethesda Tutorial Papyrus Hello World/ko

From the CreationKit Wiki
Jump to navigation Jump to search
Bethesda Tutorial Papyrus Hello World/ko
Scripting Series, Chapter 1
Return to Tutorial Hub
LeftArrow.png Previous Tutorial Next TutorialRightArrow.png

개요[edit | edit source]

이 튜토리얼에서는 파피루스와 the Creation Kit 스크립트 언어의 기초를 소개한다.

당신은 다음을 배울 것이다 :

  • 새로운 스크립트를 만들고 대상에 할당하는 방법.
  • 만든 스크립트를 이벤트에 반응하게 하는 방법.

스크립트 만들기[edit | edit source]

우선 우리는 새로운 스크립트를 만들고 이를 어떤 오브젝트에 할당시킬 것이다. Creation Kit을 열고 당신이 원하는 테스트 셀을 불러오기 한다. 필자는 몰락발음성셀(MolagBalVoiceCell)을 사용하겠다. 몰락발 음성셀은 지저분한 것 없이 깔끔하게 비어있는 셀이다.

오브젝트를 셀에 할당시켜보자 - Activator 리스트에서 WETempActivator를 사용한다. 이것은 이번 연습에서 일시적으로 사용할 빛나는 기둥이다.

Papyrus Tutorial1 Activator.jpg

오브젝트를 더블클릭하여 Reference 창을 열고, 스크립트 탭을 선택한다. 이곳에서 게임내 어느 오브젝트에나 스크립트를 추가할 수 있다.

Papyrus Tutorial1 Ref.jpg


Add버튼을 눌러 "Add Script"창을 띄운다.

Papyrus Tutorial1 AddScript.jpg

리스트 맨 위에 있는 "[New Script]"를 더블클릭하여 새로운 스크립트를 만든다. Name 칸에 "HelloWorldScript"라고 쓰고 "OK" 버튼을 누른다.(이것이 스크립트의 이름이다.)

Achtung.png 다음과 같은 오류를 겪을경우 : "The Extends script does not exist, please pick one that does" 이 오류는 새 업데이트로 인하여, 흩어져있는 파피루스 소스들을 스카이림 설치 경로의 Data폴더에 .rar파일("Scripts.rar")로 압축을 시켜놓았기 때문이다. 스카이림 Data 폴더에서 "Scripts.rar"파일을 찾아 내부 파일을 Data폴더에 압축 풀기 한다. 이후에 CK툴이 정상적으로 작동할 것이다.

Papyrus Tutorial1 NewScript.jpg

참고: "Documentation String"이라고 되어 있는 칸에는 당신의 스크립트가 들어가지 않는다. 'Documentation String"은 스크립트를 편집하는 동안 빠른 정보를 제공하는 툴팁 기능이다. 무슨 역할을 하는지, 어떤 오브젝트에 할당되어있는지 등을 적는다. 이제 새로운 스크립트가 기둥의 스크립트 목록에 추가된 것을 볼 수 있다.

Papyrus Tutorial1 Ref WithScript.jpg

"OK" 버튼을 눌러 기둥의 reference를 저장한다. 축하한다! 당신은 스크립트를 만들고 스카이림 세계에 연결하는데 처음으로 성공하였다.

이벤트 추가[edit | edit source]

물론, 당신의 스크립트는 아무것도 하지 못한다. - 비어 있는 shell이며 무언가 주어지길 기다리고 있다.

이 오브젝트는 시동기(활성화기, Activator)이기 때문에 플레이어가 ("활성화, Activated") 버튼을 클릭해야 반응할 수 있다. 이제 플레이어가 기둥을 클릭할 때 메세지가 나오도록 우리의 스크립트에게 가르쳐주자.

기둥의 Reference창을 다시 열고, 스크립트 탭의 HelloWorldScript를 우클릭하여 "Edit Source"를 선택한다. 스크립트 편집 창이 뜰 것이다.

이제 스크립트가 활성화에 반응하게 해보자. OnActivate event 를 스크립트에 추가할 것이다. 아래의 내용들을 스크립트에 추가한다.

 Event OnActivate(ObjectReference akActionRef)

 endEvent

OnActivate 이벤트를 정의하는데 어떤 문법을 사용해야할지 지금은 고민하지 않아도 된다. - 이에 대해서는 이후 튜토리얼에서 좀 더 자세히 알아볼 것이다. 지금은 게임상에서 우리의 스크립트가 뭔가를 할 수 있는지만 보면 된다.

 Event OnActivate(ObjectReference akActionRef)
    Debug.MessageBox("Hello, World!")
 endEvent

방금 전 단계를 조금 더 설명하자면, 이 문장들의 문법이 다음과 같이 분해할 수 있다. :

Debug.MessageBox("Hello, World!") : 이 메세지는 우리가 다른 스크립트에서 함수를 불러오고 있다는 것이다. (다음 항목 참고 Debug Script Object)
Debug.MessageBox("Hello, World!") : MessageBox는 메세지 박스를 띄우는 기능(함수)이다.
Debug.MessageBox("Hello, World!") : 이 삽입구는 우리가 어떤 함수를 불러오고 있다는 것을 의미한다. 삽입구 내의 모든 내용은 우리가 함수에 도달하는 동안 거쳐가는 데이터이다. (이 경우에는 우리가 원하는 내용이 나왔다.)

위 작업 표시줄의 File 메뉴에서 "Save"를 눌러 작업한 스크립트를 저장(Save and Compile)한다. (혹은 Ctrl-S) 모든 내용을 제대로 작성하였으면, 다음과 같은 창을 볼 수 있다. :

Papyrus Tutorial1 CompiledScript.jpg

"Hello, World"[edit | edit source]

이제 게임에 들어가서 확인해보자. (다음 2가지를 우선 확인하라 save your plugin, set up the game to load it)

게임에 들어가게 되면, ~ 키를 눌러 콘솔 창을 띄우고 다음을 입력한다. :

coc MolagBalVoiceCell

위 명령어를 입력하면 해당 셀로 이동하게 된다. 기둥으로 걸어가서 활성화를 시킨다. 다음과 같은 새 메세지 창을 볼 수 있을 것이다. :

Papyrus Tutorial1 HelloWorld.jpg

다 되었다. 플레이어의 행동에 반응하는 오브젝트를 만들었다.

다음은 how to use variables and conditional statements에서 당신의 스크립트를 좀 더 복잡하게(혹은 정교하게) 만드는 방법에 대해 배워볼 수 있을 것이다.


Edited by AG초보(2016. 05. 05)


Language: English  • français • 日本語 • 한국어 • polski • русский
LeftArrow.png Previous Tutorial Return to Tutorial Hub Next Tutorial RightArrow.png