ADVERTISEMENT

The legend burns bright: A review of 'Ne Zha 2'

Published Mar 12, 2025 07:18 am

At A Glance

  • Whether you're a fan of the first movie or a newcomer who loves well-crafted animated films, Ne Zha 2 is an epic journey proving that legends will always burn bright.
A scene from Ne Zha 2_1.jpg
A scene from 'Ne Zha 2' 

By Jolo Flores

The fiery protagonist is back — and it’s more epic and emotional than ever.

The much-anticipated sequel to 2019’s ‘Ne Zha’ has finally arrived, and I am grateful to be invited to the film’s premiere at SM Cinema North EDSA last Sunday, March 9. Experiencing this on the big screen along with fellow fans made the day even more thrilling.

A scene from Ne Zha 2_2.jpg

The film, again directed by Jiao Zi, delves into the evolving relationship between the rebellious demon child Ne Zha and the dragon prince Ao Bing. Though they previously wrestled over their opposing destinies, the sequel pits them against a larger ethereal threat, putting all of existence in greater danger.

Like its predecessor, the film deftly integrates ancient Chinese folklore with modern storytelling, resulting in a narrative that is both timeless and refreshing. Whereas the first film focuses on Ne Zha’s struggle for acceptance, this sequel amplifies greater emphasis and higher stakes on teamwork, redemption, brotherhood, family, and destiny.

Ne Zha 2 poster.jpg

1.jpg
'Ne Zha 2' premiere at SM Cinema North EDSA in Quezon City

One of the film’s biggest highlights is its breathtaking animation, which gives it a distinct visual identity. The film boasts fluid action sequences with vibrant color palettes and intricate details that bring the world of Chinese mythology to life. The fight sequences are a spectacle thanks to the action choreography inspired by martial arts and fantasy wuxia aesthetics.

While the film excels in action and emotion, it also leans heavily on slapstick comedy, including exaggerated facial expressions and mischief. The film’s comedic moments serve a purpose — they make Ne Zha relatable, even with his chaotic nature.

2.jpg
Chinese Ambassador to the Philippines Huang Xilian, SAVP for Cinema and Exhibition Karen C. Zabaljauregui, and SM Supermalls Executive Vice President for Marketing Joaquin San Agustin.

Overall, Ne Zha 2 is a worthy follow-up to one of China’s most beloved animated films. It builds upon the original’s strengths while introducing new layers of complexity to its characters and their world.

Among the VIPS who attended the movie screening were Warner Bros. Sales Director Rico Gonzales, SM Supermalls Executive Vice President for Marketing Joaquin San Agustin and President Steven Tan, Chinese Ambassador to the Philippines Huang Xilian, and SAVP for Cinema and Exhibition Karen C. Zabaljauregui.

3.jpg
(From left) Warner Bros. Sales Director Rico Gonzales, SM Supermalls Executive Vice President for Marketing Joaquin San Agustin, SM Supermalls President Steven Tan, Chinese Ambassador to the Philippines Huang Xilian, and SAVP for Cinema and Exhibition Karen C. Zabaljauregui.

Whether you’re a fan of the first movie or a newcomer who loves well-crafted animated films, Ne Zha 2 is an epic journey proving that legends will always burn bright.

Ne Zha 2 is now showing in cinemas nationwide.

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.