בויען אַ בויד: טיפע-באַקאַנט פֿלאַקינג אַנימאַציע אין רעאַקט

שאַפֿן פֿליסיק, פּאַראַלעקס אַקטיווירטע פאַרפולן סימולאַציעס וואָס פילן זיך לעבןדיק

פֿלאַקן צוזאַמען: די נערדישע עלעגאַנס הינטער אַן טיפע-באַקאַנט רעאַקט אַנימאַציע

אין אַ וועלט וואָס בויל דיגיטאַלע UI אַנימאַציעס זיצן צו אָפט צווישן "גאנץ סטאַטיש" און "איבערגיסן סירקוס פון באַוועגונג," האָב איך באַשלאָסן צו בויען עפּעס... אַנדערש. עפּעס וואָס פילט זיך לעבןדיק, אַ ביסל כאַאָסדיק, אָבער רימאַרקאַבלע קאָמפּאָוזד. באַטרעפֿט FlockingAnimation.tsx: אַ רעאַקט קאַמפּאָנענט וואו דיגיטאַלע בוידס גרייספולי פֿליָען איבער דעם פאַרשטעלן מיט אַ מיינונג, עטלעכע פּאַראַלעקס טיפקייט, און אַ דערוווּնկענע גראַד פֿון זעלבסט-קאָןטראָל.

דאָס איז די מעשׂה ווי איך האָב פאַרשאַפן אַ קליינע פֿלאָק פון אַנימירטע כאַראַקטערן וואָס זענען מער עמאָטיאָנאַלי סטאַביל ווי רובֿ פֿון מיינע דזשאַוואַסקריפּט בונדלערס.

דער קאָנצעפּט: בוידס מיט מוח (און טיפקייט)

דער ציל איז געווען צו סימולירן פֿלאַקינג ביהאַריוור—יאָ, ווי פויגל—אָבלי פֿאַרשיקן דעם בראַוזער צו קאַרדיאַקער יאָרע. אָננעמען אינספּיראַציע פֿון Craig Reynolds' קלאַסיש פֿלאַקינג אַלגאָריטם, יעדער "בויד" (אַ יחיד פויגל-אַähנליך אָביעקט) פאלגט דריי פּשוטע רעגולעס: 1. אַפֿשיידונג: האָב נישט צו פיל קלאָענגע 2. אַליינמענט: זײַ קיל ווי די אַנדערע 3. קוֹעהעזיע: לייג זיך צוזאַמען, מענטשן.

איך האָב צוגעגעבן אַן טיפע-באַקאַנט פּאַראַלעקס טייל, וואָס מיינט אַז די בוידס ווייַטער אין דעם "באָקעגנדראַנד" באַוועגן זיך סלאָווער, שאַפֿן אַן אילוזיע פֿון דימענסיאָנאַליטעט. עס איז ווי 3D, אָבער אָן די ברילן אָדער די עקסיסטענציגער באַדראָונג.

אונטער דער הויט: אַרכיטעקטור & מעכאַניקס

בויד אינטעליגענץ

יעדער בויד איז אַ אינסטאַנס פֿון די בויד קלאַס, וואָס טראָגט זײַן אייגנעם וועקטאָר מאַטעמאַטיק מוח. טראַכט וועגן עס ווי אַ פויגל מיט אַ פּי־האָ בקאָר אין טריגאָנאָמעטרי און אַן מינאָר אין רעאַקט שטאַט אָפּזאָרג.

אַזוי ווי זיי טראַכטן:

  • גיכקייַט און אַקסעלעראַציע וועקטאָרן באַשטימען באַוועגונג.
  • שטירינג ביהאַריאָרס לייגן די הייליגע טריניטי אָן: אַפֿשיידונג, אַליינמענט, און קאָעהעזיע.
  • טיפקייט פֿאַקטאָר קלאַפּט זייער גיכקייַט פֿאַר אַ פּאַראַלעקס עפֿעקט.
  • גרענעץ באַשטיקונג באַשטימט אַז קיין בויד פליעט נישט פֿון דער עק פון דער רעאַליטעט (אָדער דער פאַרשטעלן).

זיי דערהייַעלן זייער פּאָזיציע יעדער פֿריים און מעלדן זייער קאָאָרדינאַטן דורך MotionValues. ווי פויגל זיי טאָן דאָס נאַטירלעך.

סטיל און באַוועגונג

יעדער בויד ווערט געדרוקט ווי אַ פשוטער ראָטירטער יוניקאָד כאַראַקטער (◗) סטיילעד מיט Tailwind CSS. מיר ווערן דורכגעקוקט שיינעם Tailwind 950 שאַדעס ווי שוואַרץ, ראָזע, און פֿוכסיע—ווייל אויב דו וועסט סימולירן פויגל ביהאַריוור, דורכפֿירן עס מיט סטיל.

די <motion.div> ראַפּערס לאָזן Framer Motion טרעטן אין אַקציע פֿאַר די פֿאַרברייטונגען און אַנימאַטעד פּראָפּערטיעס—פּאָזיציע, ווינקל, סקייל, און אָפּאַסיטי—ביז מיינט דאָס קלאָר און דעקלעראַטיוו. אַ מildi פייד-אין בײַם מאָנט איז פֿאַר זיכער מאַכן אַז די אַנימאַציע ניט אמבושירט דעם אָפּזוכער ווי אַ ראָג פּאַפּ-אַפּ אַד.

וויזול אױף מאַן: פֿון קאָנצעפּט צו אַנימאַציע

אַזוי לאָמיר נעמען אַ וויזועלן אַרומפאָר, ווי די בוידס לעבן נעמען, פֿון זייער אָנפאַנגלעכע פאָרמירונג ביז זייער גרייספֿולער טאַנץ איבער דעם פאַרשטעלן:

די אָנהייב שטאַט פֿון אונדזערע בוידס, ווײַזנדיק זייער אָריגינעלע פּאָזיציעס און הויפּט פֿלאַקינג ביהאַריוור.
די אָנהייב שטאַט פֿון אונדזערע בוידס, ווײַזנדיק זייער אָריגינעלע פּאָזיציעס און הויפּט פֿלאַקינג ביהאַריוור.
ווי די אַנימאַציע פֿאָרויסגייט, זען מיר די טיפע-באַקאַנט פּאַראַלעקס עפֿעקט וואָס נעמט פאָרעם, מיט בוידס באַוועגן צו פֿאַרשיידענע גיכקייטן לויט זייער געדאַכט ליידיקייט.
ווי די אַנימאַציע פֿאָרויסגייט, זען מיר די טיפע-באַקאַנט פּאַראַלעקס עפֿעקט וואָס נעמט פאָרעם, מיט בוידס באַוועגן צו פֿאַרשיידענע גיכקייטן לויט זייער געדאַכט ליידיקייט.
די פֿלאָק האָט אָנגעהויבן ווײַזן עמערזאַנט ביהאַריוור, מיט גרופּעס וואָס פאַרמאָנען זיך און פּונקטן זיך אויף אַן אָרגאַניק, פליסיק באַוועגונג.
די פֿלאָק האָט אָנגעהויבן ווײַזן עמערזאַנט ביהאַריוור, מיט גרופּעס וואָס פאַרמאָנען זיך און פּונקטן זיך אויף אַן אָרגאַניק, פליסיק באַוועגונג.
די לעצטער שטאַט ווײַזט די בוידס אין פּערפעקטער האַרמאָניע, דערווײַלנדיק ביידע די טעכנישע פּרעסיזיע און די קונסט־שיינקייט פֿון דער פֿלאַקינג אַלגאָריטם.
די לעצטער שטאַט ווײַזט די בוידס אין פּערפעקטער האַרמאָניע, דערווײַלנדיק ביידע די טעכנישע פּרעסיזיע און די קונסט־שיינקייט פֿון דער פֿלאַקינג אַלגאָריטם.

פּערפֿאָרמאַנס באַטראַכטונגען

אַנימאַציע פֿריימס ווערן געפֿירט דורך useAnimationFrame און גאַטעד דורך זעען מיט אַן IntersectionObserver. בוידס טאָן ניט אָפּחדלן זייער פֿיזיק אויב זיי זענען נישט אין דער וויזיע. זיי זענען מינימאַליסטן אין האַרצן.

די אַנימאַציע איז אויך פאַרגעהאַטעטיק. אויב דער ניצער דריקט אויף דעם פאַרשטעלן מיטן לינקן מאוס־קנעפּל, עקסטרע בוידס שאַפֿן זיך בייַ דעם פוינט — ווייל מער כאַאָס איז שטענדיק נאָר אַ געשט אין ווייַטקייט.

דיפּלוימענט כוואַנקיעס & דעטאַילס

עטלעכע אַנדערע טעכנישע לשונות וואָס דו וועסט געפֿינען:

  • אַדאַפּטיוו פֿלאָק גרייס: אויב נישט באַשטימט initialCount, מיר רעכענען עס לויט דער גרייס פֿון דעם קאָנטיינער. ווייל קליינע סקרינז דאַרפֿן נישט אַ געהויבענעם שווארעם.
  • סטאַגערד ינישאַליזאַציע: בוידס קומען נישט אַלע צייַט צו דער זעלבער מאָמענט; זיי שטעכן זיך אין צייַט געבונדן גרופּעס צו פאַרמיידן וויזועל אינדיגעסטיאָן.
  • קאָנפֿיגוראַבלי פֿאָרסעס: אַפֿשיידונג, אַליינמענט, און קאָעהעזיע וואָגען קענען ווערן טונען דורך פּראָפּס. פּערפעקט פֿאַר אָפּטימירן די פּערסאָנאַליטעט פֿון דיין וירטועל פֿלאָק—מאַך זיי ינטראָווערץ, עקסטראָווערץ אָדער כאַאָטישע ניוטראַלן.

אין אבֿ-Schluss: די פרייד פֿון סימולירטן לעבן

בויען FlockingAnimation איז געווען אַ הנאהדיקע עקסערסייז אויף ברענגען אָדער צו דער נאַטירליכן כאַאָס פֿון באַוועגונג. עס איז דער טיפּ פֿון קאַמפּאָנענט וואָס באַצאָלט זיך צו אַ צווייטע קוק — נישט ווײַל עס בעט אַכטונג, נאָר ווײַל עס רויִכטיק באַקומען זי.

אין אַ UI וועלט פול מיט שטרענגען גרידס און סטרילע סלאיידערס, עפּעס איז שיין צו קוקן אַ פֿלאָק וועקטאָרן דאַנסן איבער דעם פאַרשטעלן—ניט ווײַזענדיק קיין איינעם ריכטונג, אָבער אויף עפּעס באַוועגן זיך ווי איינס.

שרייב קאָוד פֿאַראַנטוואָרטלעך. פֿלעך קונסטלעך.

Categories