Rabu, 25 Maret 2020

Membuat Gerakan pada Rumput dan Daun di Minecraft Pocket Edition (PE)

Halo teman-teman,
 Selamat datang di blog PioDiamond.

Rumput dan daun pohon
 Kali ini, kita akan membahas tentang bagaimana membuat gerak pada rumput dan daun pohon. Untuk penggeraknya menggunakan variabel TIME karena waktu akan terus bergerak. Nah, dengan variabel TIME ini akan kita gunakan untuk menggerakkan posisi rumput dan dedaunan menggunakan fungsi sin atau cos.


 Langsung saja kita mulai. Jika teman-teman belum memiliki shader original minecraft, silakan download di sini. Kemudian, ekstrak ke Internal Storage > games > com.mojang > resource_packs. Setelah di ekstrak, silakan buka file renderchunk.vertex di folder Internal Storage > games > com.mojang > resource_packs > vanilla > shaders > glsl menggunakan text editor.

 Kemudian cari teks #ifndef BYPASS_PIXEL_SHADER di baris-baris akhir. Di atasnya, kita buat kode baru. 
#ifdef ALPHA_TEST
   if( color.g > color. b )
     gl_Position += cos( length( abs( POSITION.xyz - 8.0 ) * 5.0  ) + TIME * 4.0 ) * 0.01;
 #endif
Kode yang telah di tulis ke renderchunk.vertex
  Penjelasannya :
  • ALPHA_TEST merupakan kategori blok seperti redstone, torch, daun pohon, rumput, bunga, dll.
  • color merupakan variabel warna khusus untuk rumput dan air berdasarkan letak biomanya.
  • gl_Position adalah posisi blok yang akan ditampilkan ( Position, menggunakan P kapital )
  • length(x) merupakan fungsi yang mengeluarkan nilai panjang vector.
  • abs(x) merupakan fungsi yang mengeluarkan nilai menjadi bilangan positif
  • POSITION merupakan posisi perblok dengan nilai 0-16 di setiap komponennya.
  • TIME merupakan waktu yang dimulai sejak Game Minecraft dibuka (bukan waktu didunianya).
 Sebenarnya kalian bisa kreasikan sendiri untuk rumus pergerakannya. Yang jelas, gunakan sin atau cos agar blok tidak pindah ke posisi lain dari posisi yang sebenarnya.



28 komentar:

  1. Pergerakan Daun Nya Patah Patah Bang :v

    BalasHapus
    Balasan
    1. Di Permukaan Air Juga,Kayak Agak Patah Patah,Apakah Ada Yg Kurang? Mungkin uniformPerFrameConstants.h ?
      Saya Gatau Juga Sih :v

      Hapus
    2. di atas "void main()", tambah kode "precision highp float;" tanpa tanda kutip.

      Hapus
    3. Ok Bang Makasih Bang Udh Ngebantuin Saya ^_^

      Hapus
    4. Precision highp float itu apa y bang?

      Hapus
    5. menetapkan float ke presisi teratas.

      Hapus
    6. Bng void main () dimna ya bng saya kurang paham

      Hapus
  2. Bang, saya mau nanya. Kalo kode "gl_FragColor = diffuse" diubah jadi "gl_FragColor = color" di renderchunk.fragment kan benda-benda nya jadi warna putih kecuali benda-benda tertentu. Nah, saya inginnya gerakin benda-benda yang warna putih juga(tanaman panen, bunga, dll). Saya maunya gerakin bendanya bukan pake "ALPHA_TEST". Jadinya gimana tuh kodenya?

    BalasHapus
    Balasan
    1. Gini....
      Kamu Ketik
      "#ifdef ALPHA_TEST
      //kosong atau juga bisa di isi kode warna
      #else
      //TARO KODENYA DISINI
      #endif"
      DIMULAI DARI TANDA PETIK AWAL DAN TANDA PETIK AKHIR, TANDA PETIKNYA DI HAPUS

      NAH PENDAPAT SAYA KLO KODE WARNA PUTIH ITU :
      "if( color.rgb <= 9.6 )
      { gl_Position += cos( length( abs( POSITION.xyz - 8.0 ) * 5.0 ) + TIME * 4.0 ) * 0.01; }"
      ===============================
      Itu Saja Pendapat Saya Jika Ada Yg Salah Maaf
      -ibratabian17-

      Hapus
    2. Masalahnya adalah grass berwarna hijau, jadi kalo tidak pake ALPHA_TEST nanti grassnya bakalan goyang juga. Kecuali kalo kamu punya logika khusus, πŸ€” patut dicoba.

      Hapus
  3. Bang bagi file render nya dong yg dua itu di apk minecarft saya gak ada folder shader, saya pakai apk editor pro buat ngedit

    BalasHapus
  4. Bang Kasih Tutorial Warna Air Sama Player Shadow Dong

    BalasHapus
  5. bang kok aku daunnya gk goyang sih?
    jadi bagaimana bang?

    BalasHapus
  6. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  7. Njir pake #ALPHA_TEST.
    obor,rumput(ya pasi lah.)panel kaca,pintu dll.jadi ikutan goyangπŸ˜‚πŸ˜‚

    BalasHapus
    Balasan
    1. Ngak woy, Itu Kan udah diberi color.g, jadi yang gerak cuma daun dan rumputnya, kecuali color.g nya dihapus, baru obor, pintu, bunga, kaca, dll, ikut goyang

      Hapus
  8. bang tolong lanjutin youtube tutorial shadernya

    BalasHapus
  9. Bang koq saya tiba pakai kode torch,pergerakan air didalam air,dan lain-lain kecuali gelombang air nya jadi eror.gimana bang solusinya itu?

    BalasHapus
  10. Bang punyaku pohonya jadi gundul bang

    BalasHapus
  11. Up:v

    btw,yok ikut gabung di grup fb:
    - Minecraft Indonational
    - M.S.E. Official Group(Minecraft Shader Education Official Group)

    ikut gabung di 2 grup facebook diatas untuk bisa belajar lebih banyak tentang shader Minecraft.

    note:
    kalo si pio diamond mau gabung juga,gak apa apa:v

    my fb: zensky(ProNoob Coder)

    BalasHapus
  12. Bang kok transparan pdhl copy paste lo
    W udah 1 tahun stay tune bang :v

    BalasHapus
  13. Udah work bang ternyata spasinya dobel bikin non work

    BalasHapus
  14. Kok daun gw ilang gimna atasi nya

    BalasHapus
  15. Bg cara hilangkan daun bergerak gimana
    Punya aku aeng shader nih cariin script yg bikin daun gerak gk ketemukaloh aku soalnya daunya bikin lag

    BalasHapus
  16. BANG!πŸ™‚
    mo nanya. Napa semua warna daunnya jadi gelap? Apakah bisa gerakin daun tanpa merubah warna daunnya?πŸ™πŸ™πŸ™πŸ™πŸ™πŸ™ Plz bang

    BalasHapus