BUAT DUNIAMU
Pemain & Karakter: Lanjutan

Membuat sebuah NPC

36min

Pelajari cara membuat NPC dari Karakter ZEPETO.

Terapkan skrip contoh yang disediakan untuk setiap fitur untuk menambahkan NPC pilihan Anda ke Dunia Anda.



Buat NPC menggunakan ID ZEPETO.

Document image




  • Penampilan NPC dan barang yang dikenakan akan sama dengan ID ZEPETO yang dimasukkan.
  • Disarankan untuk menyiapkan karakter ZEPETO dengan penampilan tertentu sebelum membuat NPC.



Mengatur objek lokasi di mana NPC akan dibuat



  • Terapkan kode pembuatan karakter ZEPETO di Scene Anda secara default.

📘 Silakan merujuk ke panduan berikut. [Buat Karakter ZEPETO]



  • Buat Hierarki > Buat Objek Kosong dan ganti namanya menjadi NPC.
    • Sebuah objek untuk menyimpan lokasi di mana NPC akan dibuat.
    • Atur Posisi, Rotasi.
Document image




Menulis skrip pembuatan NPC



1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCCreator.

2) Tulis skrip contoh seperti di bawah ini.

TypeScript




Alur skrip adalah sebagai berikut:

  • Start()
    • Buat NPC di lokasi objek NPC menggunakan fungsi ZepetoCharacterCreator.CreateByZepetoId() dan simpan di _npc.



3) Setelah Anda selesai menulis skrip, tambahkan skrip ke objek NPC.

4) Tetapkan Zepeto Id di inspector.

  • Zepeto Id : ID ZEPETO dari NPC.
Contoh Layar Pengaturan Skrip
Contoh Layar Pengaturan Skrip




5) Tekan tombol play untuk mengeksekusi dan NPC akan dibuat.

6) Tambahkan objek lokasi NPC dengan cara yang sama, dan tambahkan skrip NPC untuk membuat beberapa NPC dengan mudah.

Document image




Pelabelan NPC



Anda dapat memberi label pada NPC Anda dengan label nama untuk membedakannya dari pemain.

Document image




Untuk membuat Prefab Kanvas Name Tag



1) Buat Hierarki > UI > Kanvas dan ganti namanya menjadi PrefNameTagCanvas.

  • Atur Mode Render ke World Space.
Contoh Pengaturan Kanvas
Contoh Pengaturan Kanvas




2) Buat Hierarki > UI > Teks sebagai anak dari PrefNameTagCanvas dan ganti namanya menjadi NameTagText.

  • Teks untuk mewakili nama.
  • Tambahkan komponen Content Size Fitter untuk membuat teks dengan ukuran yang tepat.
Contoh Pengaturan Teks
Contoh Pengaturan Teks




3) Setelah selesai, seret ke jendela Proyek untuk menjadikannya Prefab, dan kemudian hapus PrefNameTagCanvas yang masih ada di penyorot.

Contoh Konfigurasi Prefab
Contoh Konfigurasi Prefab




Membuat Skrip Nama Tag NPC



1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCCreatorWithNameTag.

2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

TypeScript




Alur skrip adalah sebagai berikut:

  • Mulai()
    • Panggil fungsi kustom SetNameTag().
  • SetNameTag()
    • Secara dinamis menghasilkan label nama untuk NPC dan menyesuaikan posisi label nama yang dihasilkan di atas kepala NPC
    • Atur teks di dalam label nama.
  • Perbarui()
    • Panggil fungsi kustom UpdateCanvasRotation() untuk memutar kanvas agar sesuai dengan kamera.



3) Setelah Anda selesai menulis skrip, tambahkan ke objek NPC.

4) Di Inspector, tetapkan Zepeto Id, Label Nama, Prefab Label Nama, dan Offset Y Label Nama.

  • Label Nama: Nama yang akan muncul di label nama NPC.
  • Prefab Label Nama: Prefab kanvas label nama.
  • Offset Y Label Nama: Variabel yang menyimpan nilai offset sumbu-y untuk objek Kanvas Label Nama. Ketika Anda menempatkan label nama di atas kepala karakter, Anda dapat menyesuaikan jarak antara karakter dan label nama.
Contoh Layar Pengaturan Skrip
Contoh Layar Pengaturan Skrip




5) tekan tombol putar untuk mengeksekusi, dan NPC dengan nama tag akan dibuat.

Document image




Mengendalikan Perilaku NPC



Anda dapat mengendalikan tindakan NPC.



Melompat



Document image




Gunakan ZEPETO Character API untuk membuat NPC melompat.

Anda dapat menggunakan ZEPETO Character API untuk menerapkan berbagai perilaku.

📘 Silakan merujuk ke panduan berikut. [Karakter ZEPETO]



Membuat skrip NPC Jump

1) Pergi ke Proyek > Buat > ZEPETO > Buat TypeScript dan ganti namanya menjadi NPCJump.

2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

TypeScript


Alur skrip adalah sebagai berikut:

  • Mulai()
    • Panggil coroutine JumpCoroutine().
  • JumpCoroutine()
    • Panggil metode Jump() untuk membuat karakter NPC melompat setiap 5 detik.



3) Setelah Anda selesai menulis skrip, tambahkan skrip ke objek NPC.

4) Tekan tombol Putar dan NPC akan melompat.



Gerakan



Document image




Gunakan Animator Controller untuk menerapkan gerakan untuk NPC.

Anda dapat menggunakan Animator Controller untuk menerapkan berbagai perilaku yang lebih luas.

📘 Unity Animator Controller https://docs.unity3d.com/Manual/class-AnimatorController.html



Mempersiapkan klip animasi Anda



  • Gunakan panduan berikut untuk mempersiapkan klip animasi gerakan untuk NPC Anda lakukan.

📘 Silakan merujuk ke panduan berikut.



Membuat Animator



1) Proyek > Buat > Buat Pengontrol Animator dan ganti namanya menjadi NPCAnimatorController.

Document image




2) Di tab Animator, Buat Status > Kosong.

Document image




3) Di Inspector, ganti namanya dengan tepat dan tetapkan klip animasi ke Motion.

Document image




Membuat Skrip Gesture NPC



1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCGesture.

2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

TypeScript




Alur skrip adalah sebagai berikut:

  • Start()
    • Dapatkan komponen Animator dari objek NPC dan atur ke Animator Controller yang ditentukan oleh variabel npcAnimator.



3) Setelah Anda selesai menulis skrip, tambahkan ke objek Lokasi di mana NPC akan dibuat.

4) Di Inspector, tetapkan Id Zepeto, Animator NPC.

  • Animator NPC: Pengontrol animasi NPC.
Document image




5) Tekan tombol play untuk menjalankannya dan Anda akan melihat NPC membuat gerakan.

6) Anda dapat menerapkan ini untuk membuat NPC yang melakukan lebih banyak tindakan selain gerakan dan lompatan.



Kata-kata di atas NPC



Anda dapat membuat Kanvas di atas kepala NPC, menampilkan gambar atau teks, dan membuatnya berbuih.

Document image




Membuat Prefab Kanvas Kata-kata

1) Buat Hierarchy> UI > Canvas dan ganti namanya menjadi PrefSpeechBubbleCanvas.

  • Atur Mode Render ke World Space.
Document image




2) Buat Hierarchy> UI > Gambar sebagai anak dari PrefSpeechBubbleCanvas dan ganti namanya menjadi SpeechBubbleImage.

  • Ini adalah gambar yang akan menjadi latar belakang gelembung ucapan.
Contoh Pengaturan Gambar
Contoh Pengaturan Gambar




3) Buat Hierarki> UI > Teks sebagai anak dari SpeeachBubbleImage dan ganti namanya menjadi SpeeachBubbleText.

  • Ini adalah teks di dalam gelembung ucapan.
  • Tambahkan komponen Content Size Fitter untuk membuat teks dengan ukuran yang tepat.
Contoh Pengaturan Teks
Contoh Pengaturan Teks




4) Setelah selesai, seret ke jendela Proyek untuk menjadikannya Prefab, dan kemudian hapus PrefSpeechBubbleCanvas yang masih ada di Sorotan.

Contoh Konfigurasi Prefab
Contoh Konfigurasi Prefab




Membuat Skrip Gelembung Ucapan NPC



1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCSpeechBubble.

2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

TypeScript




Alur skrip adalah sebagai berikut:

  • Mulai()
    • Panggil fungsi kustom SetBubble().
  • SetBubble()
    • Buat kanvas gelembung bicara (speechBubblePrefab) dan posisikan gelembung bicara yang dibuat di atas kepala NPC
    • Panggil fungsi kustom SetBubbleText() untuk mengatur teks di dalam gelembung bicara.
  • SetBubbleText()
    • Mengaktifkan kanvas gelembung bicara NPC (_speechBubbleObject).
    • Menampilkan string yang diberikan sebagai parameter (bubbleText) di dalam gelembung bicara.
  • Perbarui()
    • Panggil fungsi kustom UpdateCanvasRotation() untuk memutar kanvas agar sesuai dengan kamera.



3) Setelah Anda selesai menulis skrip, tambahkan ke objek Lokasi di mana NPC akan dibuat.

4) Di Inspector, tetapkan Zepeto Id, Teks Balon Bicara, Prefab Balon Bicara, dan Offset Y Balon Bicara.

  • Teks Balon Bicara: Variabel ini menyimpan dialog yang akan diucapkan karakter NPC dalam balon bicara. Dalam contoh kami, kami menyimpan dialog berikut: "Halo Dunia".
  • Prefab Balon Bicara: Variabel ini menyimpan prefab untuk GameObject Kanvas Balon Bicara.
  • Offset Y Balon Bicara: Variabel ini menyimpan nilai offset sumbu-y untuk GameObject Kanvas Balon Bicara. Ini memungkinkan Anda untuk menyesuaikan jarak antara karakter dan balon bicara saat Anda menempatkan balon bicara di atas kepala karakter.
Contoh Layar Pengaturan Skrip
Contoh Layar Pengaturan Skrip


5) tekan tombol play untuk mengeksekusi, dan Anda akan melihat balon bicara mengapung di atas kepala NPC.



Berinteraksi dengan NPC



Anda dapat menerapkan banyak konten menyenangkan dengan berinteraksi dengan NPC.

Dalam panduan ini, kami akan menggunakan contoh untuk menerapkan gelembung ucapan yang berubah saat NPC didekati.

Document image




Mengatur Collider



1) Tambahkan komponen Collider ke objek Anda untuk berinteraksi dengan NPC dan periksa isTrigger.

Document image




2) Ubah ukuran Collider agar pemain dapat berinteraksi dengan NPC.

Document image




Membuat Skrip Interaksi NPC



1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCInteraction.

2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

TypeScript




Alur skrip adalah sebagai berikut:

  • OnTriggerEnter(), OnTriggerExit()
    • Ketika pemicu terdeteksi dengan memasuki area collider, panggil fungsi kustom SetBubbleText() untuk mengatur teks di dalam gelembung bicara menjadi changedSpeechBubbleText.
    • Ketika meninggalkan area collider, panggil fungsi kustom SetBubbleText() untuk mengatur teks di dalam gelembung bicara menjadi speechBubbleText.



3) Setelah Anda selesai menulis skrip, tambahkan ke objek Lokasi di mana NPC akan dibuat.

4) Di Inspector, tetapkan Zepeto Id, Teks Gelembung Bicara, Prefab Gelembung Bicara, Offset Y Gelembung Bicara, dan Gelembung Bicara yang Diubah.

  • Teks Gelembung Bicara: Variabel ini menyimpan dialog yang akan diucapkan karakter NPC di dalam gelembung bicara. Dalam contoh kami, kami menyimpan dialog berikut: "Halo Dunia".
  • Prefab Gelembung Bicara: Variabel ini menyimpan prefab untuk GameObject Kanvas Gelembung Bicara.
  • Offset Y Gelembung Bicara: Variabel ini menyimpan nilai offset sumbu-y untuk GameObject Kanvas Gelembung Bicara. Ini memungkinkan Anda untuk menyesuaikan jarak antara karakter dan gelembung bicara saat menempatkan gelembung bicara di atas kepala karakter.
  • Gelembung Bicara yang Diubah: Menyimpan dialog yang akan ditampilkan di gelembung bicara NPC ketika pemain memasuki collider NPC.
Contoh Layar Pengaturan Skrip
Contoh Layar Pengaturan Skrip




5) tekan play untuk mengeksekusi, dan ketika pemain mendekati NPC, teks di gelembung bicara akan berubah.



Terapkan interaksi NPC



Untuk membuat format dialog, buat UI menggunakan panel.

Berikut adalah contoh dialog sederhana yang terdiri dari panel dan tombol.

Document image




Ini adalah contoh skrip yang membuka dialog saat berinteraksi dengan NPC dan memprosesnya saat setiap tombol ditekan.

Terapkan ini untuk menerapkan konten yang menarik.

TypeScript