Scripting I: Visual Acting & Dialogue
Seni menghidupkan karakter melalui dialog yang kuat dan gerakan visual yang ekspresif. Di pertemuan ini, game kamu mulai benar-benar "hidup".
Target Kompetensi
Mahasiswa mampu mengimplementasikan dialog multi-karakter yang ekspresif, memanipulasi ekspresi sprite, menerapkan staging/posisi karakter yang dramatik, dan menguasai teknik penulisan dialog yang menarik dan natural.
Mendefinisikan Karakter: Lebih dari Sekadar Nama
Objek Character() di Ren'Py jauh lebih powerful dari yang kamu kira. Kamu bisa mengkustomisasi hampir setiap aspek tampilannya.
# Karakter dasar
define n = Character("Nabilah")
# Karakter dengan warna nama
define n = Character("Nabilah", color="#c8ffc8")
# Karakter dengan dialog miring (untuk pikiran/monolog)
define pikiran = Character("", what_italic=True, what_color="#aaaaaa")
# Karakter tanpa nama (narator)
define narr = Character("", kind=narrator)
# Karakter dengan gambar nama yang berbeda dari teks
define a = Character("Ahmad", color="#ffc8c8", who_bold=True)
# NPC dengan nama yang berubah
define orang_misterius = Character("????", color="#888888")
Untuk karakter yang namanya terungkap di tengah cerita (misalnya "???" yang ternyata adalah Budi), gunakan $ orang_misterius = Character("Budi", color="#ffd700") untuk mengganti definisi karakter secara dinamis.
Say Statement: Cara Menulis Dialog yang Benar
# Dialog dengan nama karakter
n "Ini dialog Nabilah."
# Dialog narator (tanpa nama)
"Ini narasi. Tidak ada nama yang muncul."
# Dialog internal/pikiran dengan kurung
a "(Dalam hati) Kenapa ia begitu dingin padaku?"
# Dialog panjang yang dibagi (pemain klik dua kali)
n "Sudah kubilang berkali-kali, masalah ini tidak sesederhana yang kamu pikir."
n "Ada banyak hal yang harus dipertimbangkan sebelum mengambil keputusan."
# Pause dalam dialog (jeda dramatis)
a "Aku... {w}maaf." # {w} = tunggu klik
a "Aku benar-benar {p}minta maaf." # {p} = pause singkat
# Dialog dengan teks berwarna
n "Jawaban yang {color=#ff0000}salah{/color} adalah pilihan pertama."
# Dialog dengan teks tebal
n "Ini adalah {b}keputusan paling penting{/b} dalam hidupmu."
# Substitusi variabel dalam dialog
default nama_tokoh = "Ahmad"
n "Hei, [nama_tokoh]! Sudah lama tidak jumpa!" # [variabel] = substitusi
Jenis-jenis Dialog dan Kapan Menggunakannya
| Jenis | Kode | Kapan Digunakan | Contoh |
|---|---|---|---|
| Dialog Langsung | n "..." |
Percakapan antar karakter | "Hei Ahmad, apa kabar?" |
| Narasi | "..." |
Deskripsi situasi, setting scene | "Matahari mulai tenggelam di balik gedung kampus." |
| Monolog Internal | a "(...)..." |
Pikiran karakter, keraguan | "(Apa yang harus kukatakan sekarang?)" |
| Efek Suara Teks | "..." |
Deskripsi aksi non-verbal | "*Suara notifikasi HP berbunyi*" |
| Dialog Off-Screen | suara "..." |
Suara karakter yang tidak terlihat | define suara = Character("???", color="#aaaaaa") |
Manipulasi Ekspresi: Menghidupkan Emosi
Pergantian ekspresi yang tepat waktu adalah kunci visual acting yang baik. Ekspresi harus berganti tepat sebelum dialog yang mencerminkan emosi tersebut.
label scene_konflik:
scene bg_koridor_kampus with fade
show nabilah normal at left with dissolve
show ahmad normal at right with dissolve
n "Ahmad, kita perlu bicara."
show ahmad bingung # Ekspresi berganti sebelum dialog
a "Ada apa? Kamu terlihat serius."
show nabilah sedih # Nabilah berubah ekspresi
n "Aku tahu kamu yang mengambil softcopy tugas itu."
show ahmad kaget # Reaksi terkejut Ahmad
a "Aku... Bukan seperti yang kamu pikirkan."
show nabilah marah # Nabilah memuncak
n "Lalu jelaskan. Aku mendengarkan."
show ahmad normal # Ahmad mengambil napas
a "(Menunduk) Kamu benar. Maaf."
Urutan Ekspresi yang Dramatis
Ekspresi berganti SEBELUM dialog yang mencerminkan emosi tersebut, bukan sesudahnya. Ini seperti akting di teater — aktor menunjukkan emosi sebelum berbicara, bukan setelah.
Posisi dan Gerakan Karakter Lanjutan
# Posisi bawaan
show nabilah normal at left # Kiri
show nabilah normal at center # Tengah
show nabilah normal at right # Kanan
# Lebih dari 2 karakter
show karakter_a at left
show karakter_b at center
show karakter_c at right
# Posisi kustom menggunakan xpos dan ypos
show nabilah normal:
xpos 0.2 # 20% dari kiri layar
ypos 0.0 # Dari atas
# Karakter menghilang ke sisi (pergi dari scene)
show nabilah normal at offscreenleft with ease # Keluar kiri
show nabilah normal at offscreenright with ease # Keluar kanan
# Karakter masuk dari sisi
show ahmad normal at offscreenleft # Mulai dari luar
show ahmad normal at left with ease # Geser masuk ke posisi kiri
Stage Direction: Sutradara Game Kamu
Stage direction adalah teknik menyusun karakter dan visual untuk menciptakan dampak dramatis yang maksimal. Ini yang membedakan visual novel biasa dengan yang benar-benar berkesan.
Teknik Staging yang Efektif
Jarak Karakter = Jarak Emosional
Karakter yang saling percaya berdiri dekat (satu di kiri-tengah, satu di kanan-tengah). Karakter yang berkonflik berdiri berjauhan (kiri paling pinggir dan kanan paling pinggir).
Zoom untuk Momen Penting
Gunakan CG (gambar event) atau tampilkan karakter lebih besar untuk momen-momen kritis cerita. Perubahan skala menciptakan fokus visual.
Kekosongan yang Bermakna
Setelah karakter pergi (hide), biarkan sejenak layar hanya menampilkan background. Kekosongan ini menciptakan rasa sunyi yang kuat secara emosional.
Contoh Adegan Dramatis Lengkap
label scene_perpisahan:
scene bg_taman_sore with fade
"Sore terakhir sebelum Ahmad berangkat ke Jakarta."
show nabilah sedih at left with dissolve
show ahmad normal at right with dissolve
n "Jadi... ini hari terakhir?"
show ahmad sedih
a "Iya. Besok pagi aku berangkat."
"Keduanya diam untuk beberapa saat." # Narasi tanpa dialog = pause dramatis
n "Kamu akan baik-baik saja kan, di sana?"
show ahmad senang # Senyum meski sedih
a "Tentu. Dan kamu juga harus baik-baik saja di sini."
# Ahmad mulai pergi
show ahmad normal at offscreenright with ease
# Nabilah sendirian di layar
show nabilah sedih at center with ease
"Nabilah menatap punggung Ahmad yang menghilang."
# Fade ke hitam untuk menutup scene
scene bg_taman_sore with fade # Atau scene black with fade
Teknik Menulis Dialog yang Menarik
Prinsip Dialog yang Baik
Dialog Harus Terdengar Natural
Baca dialogmu keras-keras. Jika terdengar kaku, itu perlu direvisi. Orang tidak bicara seperti buku teks.
Setiap Karakter Punya Cara Bicara Sendiri
Ahmad mungkin bicara formal dan hati-hati. Nabilah mungkin lebih santai dan spontan. Perbedaan ini membuat karakter terasa nyata.
Kurangi Penjelasan Berlebihan
Dialog yang baik tidak menjelaskan segalanya. Biarkan emosi muncul dari situasi, bukan dari teks yang memberi tahu pembaca harus merasakan apa.
Setiap Dialog Harus Bermakna
Jika sebuah dialog bisa dihapus tanpa mengubah cerita atau karakter, hapus saja. Setiap baris harus memiliki fungsi.
Dialog yang Buruk vs Baik
| Dialog Buruk | Dialog Baik | Kenapa Lebih Baik? |
|---|---|---|
| "Aku sangat sedih dan tidak tahu harus berbuat apa karena masalah ini sangat berat." | "(Diam panjang) Aku lelah, Ahmad. Benar-benar lelah." | Emosi disampaikan secara tidak langsung, lebih kuat |
| "Seperti yang kamu ketahui, korupsi adalah masalah besar di negeri kita." | "Tanda tanganku di sini... berarti aku sama seperti mereka." | Pesan tersampaikan melalui situasi konkret, bukan ceramah |
| "Kenapa kamu marah? Apa yang membuatmu marah?" | "(Suara tercekat) Pergi." | Satu kata mengandung lebih banyak emosi dari satu paragraf |
Tugas Pertemuan 6
Lanjutkan Proyek: Visual Acting Scene
- Tulis minimal 2 scene lengkap dalam proyek kamu menggunakan aset dari P5.
- Setiap scene harus mengandung: pergantian ekspresi minimal 3x, penggunaan transisi (dissolve/fade), dan minimal 8 baris dialog.
- Implementasikan minimal 1 teknik staging dramatis (karakter sendirian, karakter bergerak, dll).
- Gunakan variasi teks: italic, bold, atau substitusi variabel dalam dialog.
Kuis Pemahaman Pertemuan 6
Uji Pemahamanmu!
1. Kapan waktu yang tepat untuk mengganti ekspresi karakter?
2. Apa fungsi tag {w} dalam teks dialog Ren'Py?
3. Apa tujuan teknik staging "karakter sendirian di layar" dalam visual novel?