Bagikan melalui


Gambaran Umum Animasi Windows

Gambaran umum ini memberikan pengenalan Windows Animation Manager dan berfokus pada komponen dan konsep utama. Untuk informasi selengkapnya tentang papan cerita dan transisi, lihat Gambaran Umum Storyboard.

Topik ini berisi bagian berikut:

Konsep Dasar

Animation adalah urutan gambar berturut-turut yang menghasilkan ilusi gerakan ketika diputar kembali. Menggunakan animasi interaktif di antarmuka penggunanya dapat memberi aplikasi kepribadian yang unik serta meningkatkan pengalaman pengguna. Animasi dapat membantu mengomunikasikan perubahan status utama di antarmuka pengguna dan membantu mengelola kompleksitas antarmuka pengguna. Animasi juga dapat menambah persepsi pengguna tentang kualitas aplikasi.

Sebagai contoh, Animasi Windows digunakan di taskbar untuk membantu Anda mengelola dan mengakses file dan program, dan Kaca Pembesar untuk memperbesar berbagai bagian layar agar lebih mudah dilihat pengguna.

Unit dasar animasi adalah karakteristik elemen visual yang akan dianimasikan dan deskripsi tentang bagaimana karakteristik itu berubah dari waktu ke waktu. Aplikasi dapat menganimasikan berbagai karakteristik seperti posisi, warna, ukuran, rotasi, kontras, dan opasitas.

Di Animasi Windows, variabel animasi mewakili karakteristik yang akan dianimasikan. Transisi menjelaskan bagaimana nilai variabel animasi tersebut berubah saat animasi terjadi. Misalnya, elemen visual mungkin memiliki variabel animasi yang menentukan keburamannya, dan tindakan pengguna mungkin menghasilkan transisi yang mengambil opasitas tersebut dari nilai 50 hingga 100, mewakili animasi dari semi transparan ke buram sepenuhnya.

Storyboard adalah serangkaian transisi yang diterapkan ke satu atau beberapa variabel animasi seiring waktu. Aplikasi menampilkan animasi dengan membuat dan memutar papan cerita lalu menggambar urutan bingkai diskrit saat nilai variabel animasi berubah dari waktu ke waktu.

Komponen Animasi Windows

Windows Animation terdiri dari komponen berikut:

Pengelola Animasi

Aplikasi menggunakan objek manajer animasi untuk membuat variabel animasi dan papan cerita, menjadwalkan dan mengontrol animasi, dan memperbarui informasi status sebelum aplikasi menggambar setiap bingkai. Objek manajer animasi tunggal biasanya mengelola semua animasi di seluruh aplikasi dan oleh karena itu memiliki kontrol global atas semua papan cerita terjadwal.

variabel animasi

Sebelum memulai animasi apa pun, aplikasi perlu membuat objek variabel animasi. Variabel animasi mewakili satu aspek elemen visual yang akan dianimasikan. Variabel adalah nilai floating-point skalar, meskipun nilainya dapat dibulatkan ke nilai bilangan bulat.

Variabel animasi biasanya memiliki masa pakai yang sama dengan elemen visual yang akan dianimasikan. Nilai awal variabel animasi ditentukan saat variabel dibuat. Setelah itu, nilainya tidak dapat diubah secara langsung; harus diperbarui melalui manajer animasi.

Variabel animasi dapat diidentifikasi oleh tag , yang merupakan pasangan pengidentifikasi bilangan bulat dengan penunjuk ke objek COM. Tag tidak perlu unik, kecuali aplikasi menggunakannya untuk mencari variabel. Secara default, variabel animasi tidak memiliki tag, dan setiap upaya untuk membaca tagnya akan gagal sampai variabel telah ditetapkan.

sistem pengaturan waktu

Windows Animation mencakup sistem pengaturan waktu yang membantu memastikan bahwa animasi dirender pada kecepatan bingkai yang lancar dan konsisten, sekaligus mengurangi penggunaan sumber daya sistem untuk penyajian ketika sistem sibuk. Timer membantu mengelola penyajian animasi dengan secara otomatis menunjukkan satuan waktu kecil, yang disebut tick . Sistem pengaturan waktu memantau performa rendering sistem secara keseluruhan dan mengatur animasi dengan meningkatkan atau mengurangi frekuensi tick secara dinamis. Aplikasi dapat membiarkan timer mendorong manajer animasi dan dapat mendaftarkan handler untuk diberi tahu sebelum dan sesudah manajer diperbarui untuk setiap centang. Aplikasi dapat menentukan kecepatan bingkai animasi minimum yang dapat diterima untuk timer dan diberi tahu jika kecepatan bingkai aktual animasi berada di bawah laju ini.

Untuk menghemat sumber daya sistem, timer dapat dikonfigurasi untuk menonaktifkan dirinya sendiri ketika tidak ada animasi yang terjadi.

API Animasi Windows

WINDOWS Animation API adalah API berbasis COM berulir tunggal yang menyediakan fitur berikut untuk pengembang:

  • Objek manajer animasi, UIAnimationManager, untuk membuat objek animasi dan mengontrol animasi
  • Variabel animasi dan papan cerita
  • Pustaka dasar yang berupa UIAnimationTransitionLibrary, berisi transisi siap pakai
  • Objek timer, UIAnimationTimer, untuk menentukan waktu saat ini dan, secara opsional, untuk mengendarai animasi
  • Pemicu kejadian untuk memantau keadaan dan kemajuan animasi

Untuk referensi API lengkap, lihat Referensi Animasi Windows. Untuk kode contoh, lihat Tugas Animasi Windows dan Sampel Animasi Windows.

Konfigurasi

Aplikasi harus mendapatkan waktu saat ini sebelum menjadwalkan animasi baru. Berikut ini adalah mekanisme waktu yang didukung oleh Windows Animation:

Animasi Application-Driven

Aplikasi yang menggunakan API grafis yang dipercepat perangkat keras dapat disinkronkan dengan laju refresh monitor untuk merender animasi yang lancar. Secara bergantian, aplikasi dapat menggunakan mekanisme waktunya sendiri untuk menentukan kapan harus menggambar setiap bingkai animasi. Dalam kedua kasus, aplikasi akan memberi tahu manajer animasi kapan harus memperbarui statusnya. Timer animasi masih dapat digunakan untuk menentukan waktu saat ini dengan presisi tinggi, dalam unit yang diperlukan oleh manajer animasi.

Diagram berikut menunjukkan interaksi antara aplikasi dan komponen Animasi Windows saat aplikasi mendorong pembaruan animasi secara langsung.

diagram yang menunjukkan interaksi antara aplikasi dan komponen animasi windows saat aplikasi mendorong pembaruan animasi secara langsung.

Dalam konfigurasi paling sederhana, aplikasi akan menggambar ulang semuanya setiap kali layar di-refresh, bahkan ketika tidak ada animasi yang diputar. Untuk menghindari pekerjaan yang terbuang, aplikasi dapat mendaftarkan penangan acara manajer untuk diberi tahu ketika ada animasi yang dijadwalkan, dan dapat mendeteksi ketika jadwal kosong sehingga dapat berhenti menggambar ulang.

Animasi Timer-Driven

Daripada memperbarui manajer animasi secara langsung, aplikasi mungkin membiarkan timer animasi memberi tahu manajer animasi kapan harus memperbarui statusnya, dan hanya diberi tahu ketika setiap pembaruan telah terjadi. Pendekatan ini direkomendasikan untuk API grafis yang lebih lama. Secara umum, jika dimungkinkan untuk menyinkronkan dengan laju refresh monitor, lebih baik melakukannya dan menggunakan animasi berbasis aplikasi.

Diagram berikut menunjukkan interaksi antara aplikasi dan komponen Animasi Windows saat timer animasi mendorong pembaruan animasi.

diagram yang menunjukkan interaksi antara aplikasi dan komponen animasi windows saat timer animasi mendorong pembaruan animasi.

Timer dapat dikonfigurasi untuk berjalan hanya ketika animasi dijadwalkan; melakukan ini adalah proses yang sederhana dengan menggunakan parameter tertentu ketika timer dan manajer animasi terhubung.

Fitur Tingkat Lanjut

Di luar fondasi dasar untuk mendukung animasi, Animasi Windows mencakup dukungan untuk beberapa teknik animasi tingkat lanjut, termasuk:

durasi yang sensitif terhadap konteks

Durasi transisi tidak perlu tetap terpatok pada satu nilai; dapat ditentukan berdasarkan nilai dan kecepatan variabel yang dianimasikan ketika transisi dimulai.

pencocokan kecepatan

Gerakan umumnya lebih menyenangkan bagi mata jika posisi dan kecepatan objek bergerak tidak melompat seketika di antara nilai. Ketika papan cerita baru mengganggu yang saat ini sedang diputar, pencocokan kecepatan memungkinkan papan cerita baru untuk melanjutkan dengan lancar dari akhir yang sebelumnya.

Manajemen pertikaian

Jika dua papan cerita perlu memperbarui variabel animasi yang sama secara bersamaan, konflik penjadwalan terjadi. Daripada memerlukan prioritas numerik tertentu untuk setiap papan cerita, Windows Animation memungkinkan aplikasi menentukan prioritas relatif dari dua papan cerita apa pun.

Manajemen Pertikaian

Pengembang dapat menerapkan fungsi panggilan balik perbandingan prioritas untuk membandingkan prioritas storyboard yang dijadwalkan dan storyboard yang sudah ada dalam jadwal. Aplikasi yang menerapkan perbandingan prioritas dapat menggunakan logika pilihan apa pun untuk menentukan kapan satu papan cerita mendahului yang lain. Untuk mengatasi konflik penjadwalan, Animasi Windows meminta aplikasi mana dari tindakan ini yang dapat diambil, dalam urutan berikut:

  • Batalkan storyboard yang dijadwalkan. Jika papan cerita terjadwal belum mulai diputar, papan cerita tersebut mungkin dibatalkan dan segera dihapus dari jadwal.
  • Pangkas papan cerita terjadwal. Ketika papan cerita baru menggantikan papan cerita terjadwal, papan cerita terjadwal tersebut berhenti memengaruhi variabel segera setelah papan cerita baru mulai menganimasikannya. Kecepatan diselaraskan, memungkinkan papan cerita baru untuk mulai secara lancar dari tempat yang ditinggalkan oleh yang sebelumnya.
  • Selesaikan papan cerita yang terjadwal. Alur cerita dapat disimpulkan hanya jika berisi perulangan yang berulang terus-menerus. Jika papan cerita berada dalam lingkaran seperti itu saat diselesaikan, pengulangan saat ini selesai, dan bagian tersisa dari papan cerita kemudian dijalankan. Jika perulangan belum dimulai ketika storyboard selesai, perulangan dilewati sepenuhnya.
  • Kompres papan cerita terjadwal. Jika pemangkasan atau pembatalan papan cerita terjadwal bukan pilihan, papan cerita dibiarkan selesai. Windows Animation memperkenalkan kemungkinan mengompresi waktu yang tersedia untuk papan cerita terjadwal (dan papan cerita apa pun yang dijadwalkan sebelumnya), sehingga variabel mencapai status akhir mereka lebih cepat. Ketika kompresi diterapkan, waktu dipercepat sementara untuk papan cerita yang terpengaruh, sehingga diputar lebih cepat.

Jika tidak ada tindakan di atas yang diizinkan oleh objek perbandingan prioritas yang terdaftar, upaya untuk menjadwalkan cerita baru dalam storyboard tersebut akan gagal. Secara default, semua papan cerita dapat dipangkas, disimpulkan, atau dikompresi untuk mencegah kegagalan, tetapi tidak ada yang dapat dibatalkan.

Diagram berikut menunjukkan siklus hidup papan cerita, menggunakan status yang ditentukan oleh enumerasi UI_ANIMATION_STORYBOARD_STATUS. Aplikasi menggunakan WINDOWS Animation API untuk membangun papan cerita dan mengirimkannya untuk penjadwalan. Manajer animasi menjadwalkan papan cerita dan mengelola animasi.

diagram yang menunjukkan bagaimana manajer animasi menjadwalkan papan cerita dan mengelola animasi.

Untuk informasi selengkapnya tentang penjadwalan dan manajemen papan cerita, lihat gambaran umum Storyboard.

Referensi Animasi Windows

Sampel Animasi Windows

Tugas Animasi Windows