인크 태그를 사용한 Unity2D 대화 시스템 - 이름, 초상화, 레이아웃 | Unity + Ink 튜토리얼

Try Proseoai — it's free
AI SEO Assistant
SEO Link Building
SEO Writing

인크 태그를 사용한 Unity2D 대화 시스템 - 이름, 초상화, 레이아웃 | Unity + Ink 튜토리얼

목차

  1. 소개
  2. NPC 이름, 초상화 및 다이얼로그 레이아웃 표시 및 관리하는 간단하고 효과적인 방법
  3. 전제조건: 이전 비디오(선택의 다이얼로그 시스템 구축)를 참고하지 않아도 되지만, 보면 도움이 됨
  4. Unity에 내장된 ink를 사용하여 다이얼로그 작성
  5. Ink의 태그를 활용하여 NPC 이름, 초상화, 레이아웃 변경
  6. 태그 사용 시 유의사항
  7. Dialog Manager 스크립트에 태그 처리 코드 추가
  8. Display Name Text, 초상화 및 레이아웃 관련 UI 컴포넌트 추가
  9. Animator 및 Animation 사용하여 초상화 및 레이아웃 변경
  10. 다른 NPC와의 다이얼로그 전환 시 초기값 재설정
  11. 마무리

1. 소개

안녕하세요, 여러분! 저는 Trever입니다. 이 비디오에서는 Unity에서 내장된 ink를 사용하여 NPC 이름, 초상화, 다이얼로그 레이아웃을 표시하고 관리하는 간단하면서도 효과적인 방법을 보여드릴 것입니다. 비디오가 끝날 때까지 우리는 말씀하는 각 줄마다 초상화와 이름이 손쉽게 변경되고, 마찬가지로 다이얼로그 패널 레이아웃도 쉽게 변경할 수 있게 될 것입니다. 이번 튜토리얼은 이전 비디오에 이어진다는 점을 미리 알려드립니다. 그 이전 비디오에서는 선택 사항이 있는 다이얼로그 시스템을 구축했었습니다. 하지만, 이 비디오를 이해하기 위해선 이전 비디오를 봐야 하는 것은 아닙니다. 그러나, 이번 튜토리얼을 시작하기 전에 이전 비디오를 먼저 확인한 후에 돌아오길 강력히 추천합니다. 또한, 이번 튜토리얼에서는 ink를 사용하여 다이얼로그를 작성할 것입니다. 우리가 관리할 NPC 이름, 초상화, 레이아웃과 관련된 기능을 ink의 태그를 통해 작성하게 됩니다. 이 비디오의 설명란에 ink 문법에 대한 자세한 내용을 담은 전체 비디오 링크가 있으니 궁금하신 분들은 더 깊게 파고들어 볼 것을 권장합니다. 그럼, 이야기와 단계별로 접근하는 방법을 살펴보겠습니다.

2. NPC 이름, 초상화 및 다이얼로그 레이아웃 표시 및 관리하는 간단하고 효과적인 방법

Unity에 내장된 ink를 활용하면 NPC 이름, 초상화, 다이얼로그 레이아웃을 손쉽게 표시하고 관리할 수 있습니다. 이를 위해 우리는 ink의 태그를 사용할 것입니다. 태그는 각 다이얼로그 줄에 메타데이터를 추가하는데 사용되며, 간단한 키-값 쌍으로 구성됩니다. 태그는 C# 코드에서 해당 키와 값을 읽어와 작업을 수행합니다. 우리가 할 일은 태그를 활용하여 다음과 같은 작업을 수행하는 것입니다.

  • 태그에 따라 NPC의 이름을 변경하고, 그에 해당하는 초상화를 표시합니다.
  • 태그에 따라 다이얼로그 패널의 레이아웃을 변경합니다.

3. 전제조건: 이전 비디오(선택의 다이얼로그 시스템 구축)를 참고하지 않아도 되지만, 보면 도움이 됨

이번 튜토리얼을 따라하기 위해 이전 비디오를 참고할 필요는 없지만, 더 이해하기 쉽게 하기 위해 이전 비디오에서 구축한 다이얼로그 시스템을 사용하겠습니다. 이를 위해 프로젝트에는 Unity Ink 플러그인과 Text Maspero가 설치되어 있어야 합니다. 또한, 이미 NPC에 첨부된 ink 파일을 사용하여 대화를 표시하는 시스템도 구축되어 있습니다. NPC와 대화할 때마다 해당 ink 파일을 Dialog Manager 클래스로 전달하여 읽어오고, 각 다이얼로그 줄에 따라 대화 텍스트와 선택지를 설정합니다. 이 튜토리얼에서는 Dialog Manager 클래스에 태그를 처리하는 코드를 추가할 것입니다.

4. Unity에 내장된 ink를 사용하여 다이얼로그 작성

가장 먼저 우리는 ink 파일에 태그를 사용하여 다이얼로그를 작성할 것입니다. 이를 위해 프로젝트의 Dialog 폴더에 ink 파일을 생성합니다. 파일 이름은 "Dr Green"이라고 하겠습니다. 파일을 생성한 후에는 ink 편집기를 열어서 간단한 다이얼로그를 작성합니다. 다이얼로그에 말하는 주인공은 "Dr Green"이며, 플레이어에게는 "행복" 또는 "슬픔"의 감정을 선택하게 할 것입니다. 이 선택에 따라 "Dr Green" 캐릭터의 감정도 바뀌게 됩니다. 그리고 "Ms. Yellow"라는 다이얼로그를 사용하여 "Dr Green" 캐릭터는 실제로는 의사가 아니라고 말할 것입니다. 마지막으로, 플레이어의 답변이 "예"인 경우에는 다이얼로그가 계속 반복될 수 있도록 설정하겠습니다.

이제 태그를 추가하여 첫 번째 줄에서 누가 말하는지 정의해보겠습니다. "Dr Green" 캐릭터가 말하는 대사에 태그를 추가하여 화자를 설정합니다. 그 다음 줄에서는 "Ms. Yellow"가 말하도록 화자를 변경하고, 그 다음 줄에서는 다시 "Dr Green"으로 변경합니다. 이제 화자 태그에 대한 설정은 끝났습니다. 그러나, 초상화에 대해서도 생각해야 합니다. 사용자 정의 초상화를 저장할 인크 파일에서 초상화 태그를 설정할 것입니다. 보통 태그의 값으로는 특정 애니메이션 상태의 이름을 사용합니다. 이것에 대한 자세한 내용은 이 튜토리얼의 뒷부분에서 다룰 예정입니다.

5. Ink의 태그를 활용하여 NPC 이름, 초상화, 레이아웃 변경

Unity에서 Ink 파일을 읽어올 때 각 태그를 처리하고 적절하게 활용할 수 있습니다. 이를 위해 Dialog Manager 스크립트에 태그를 처리하는 코드를 추가해야 합니다. 우리는 현재 말하고 있는 줄의 각 태그에 대하여 처리해야 합니다. 먼저 태그를 키와 값을 가지는 키-값 쌍으로 구분하기 위해 ':' 기호로 문자열을 분할합니다. 그 다음, 문자열의 길이를 확인하여 키와 값을 분리한 후, 해당 키와 값을 변수에 할당합니다. 이후 스위치 문을 사용하여 각 태그 키를 루트로 처리합니다. 각 케이스마다 태그 값이 Unity로 전달되어 올바르게 인식되는지 확인하기 위해 콘솔에 출력합니다.

6. 태그 사용 시 유의사항

태그를 사용할 때 모든 다이얼로그 줄마다 태그를 추가할 필요는 없습니다. 태그를 변경하려는 경우에만 사용하면 됩니다. 이를테면 NPC 이름, 초상화, 레이아웃과 같은 정보를 변경하려는 경우에만 태그를 사용하면 됩니다.

7. Dialog Manager 스크립트에 태그 처리 코드 추가

Dialog Manager 스크립트에는 태그를 처리하는 코드를 추가해야 합니다. 이 코드를 통해 화자의 이름을 표시하는 TextMeshProUGUI 컴포넌트와 초상화를 변경하는 Animator를 제어할 수 있습니다. 이를 위해 Dialog Manager 스크립트에는 Display Name Text와 Portrait Animator에 대한 serialize field를 추가합니다. 그리고 현재 다이얼로그 줄에 있는 태그를 처리하는 switch 문에서, 각 태그별로 적절한 작업을 수행하도록 코드를 작성합니다. 이를 통해 화자 이름과 초상화가 올바르게 변경됩니다.

8. Display Name Text, 초상화 및 레이아웃 관련 UI 컴포넌트 추가

다이얼로그 패널에는 표시할 화자의 이름과 초상화가 표시됩니다. 이를 위해 Dialogue Panel UI 내에 DisplayNameText, PortraitFrame, Border, PortraitImage 컴포넌트를 추가해야 합니다. PortraitImage에는 기본 초상화 이미지를 지정하고, DisplayNameText에는 기본 이름 값을 설정합니다. 또한, 포스트리에션을 조정하여 텍스트 박스를 설정해야 할 수도 있습니다. 이렇게 하면 UI 컴포넌트가 올바르게 표시됩니다.

9. Animator 및 Animation 사용하여 초상화 및 레이아웃 변경

다이얼로그의 초상화 및 레이아웃을 변경하기 위해 Animator 및 Animation을 사용합니다. 초상화와 레이아웃을 변경하기 위해 Animation Controller를 생성하고, 관련된 Animation을 Animation Window에 추가합니다. 이후 해당 Animation을 Animator에 연결합니다. 초상화와 레이아웃을 변경하려는 경우에는 Animation Controller내에 적절한 Animation을 추가하고, 해당 Animation에 초상화 및 레이아웃에 대한 Sprite를 연결합니다. 이렇게 하면 ink 파일에서 설정한 태그에 따라 초상화와 레이아웃이 자동으로 변경됩니다.

10. 다른 NPC와의 다이얼로그 전환 시 초기값 재설정

각 NPC와의 대화를 시작할 때마다 초상화, 화자, 레이아웃 등의 초기값을 설정해야 합니다. 이를 위해 Dialog Manager 스크립트의 EnterDialogMode 메소드에서 초기화 코드를 추가합니다. 이를 통해 이전 대화 정보가 다음 NPC와의 대화에 영향을 주지 않도록 합니다.

11. 마무리

이렇게하면 Unity에서 내장된 ink를 사용하여 NPC 이름, 초상화, 다이얼로그 레이아웃을 표시하고 관리할 수 있습니다. 이를 통해 게임에 실제 대화 시스템을 구현하는 데 도움이 될 것입니다. 많은 도움이 되기를 바랍니다.

FAQ

Q: 이 전체 과정을 마스터하기 위해 필요한 시간은 얼마나 될까요? A: 개인에 따라 다를 수 있지만, 이 과정을 익히는 데에는 몇 일이 걸릴 수 있습니다. 그러나 유니티와 ink에 익숙하지 않은 경우에는 조금 더 시간이 걸릴 수 있습니다.

Q: 이 튜토리얼에서 사용되는 소프트웨어 버전은 어떤 것인가요? A: 이 튜토리얼은 Unity 2019.4.0f1 버전과 ink 0.9.94 버전을 기준으로 작성되었습니다.

Q: 이 튜토리얼에서 다루는 내용을 다른 게임 엔진에서도 사용할 수 있나요? A: 네, 일부 내용은 다른 게임 엔진에서도 적용할 수 있습니다. 그러나 구체적인 세부사항 및 구현 방법은 게임 엔진에 따라 다를 수 있습니다.

참고 자료

이 비디오를 시청해 주셔서 감사합니다. 이 비디오가 도움이 되었다면 좋아요 버튼을 눌러주세요. 더 많은 내용을 원하시면 구독 버튼도 눌러주세요. 좋은 하루 되세요!

Are you spending too much time on seo writing?

SEO Course
1M+
SEO Link Building
5M+
SEO Writing
800K+
WHY YOU SHOULD CHOOSE Proseoai

Proseoai has the world's largest selection of seo courses for you to learn. Each seo course has tons of seo writing for you to choose from, so you can choose Proseoai for your seo work!

Browse More Content