Talking Movies: Ernest & Celestine is a refreshing animated film for both children and adults

Ernest & Celestine
Ernest & Celestine opens April 18 at FilmScene’s Scene 1 Theater.

Among other animated films of the moment — including the delightful The Lego Movie — the French-Belgian Ernest & Celestine is a breath of fresh air. It lasts a reasonable 80 minutes and is “traditionally” animated: Its characters and environs look rather like an animated storybook, with heavy lines and soft watercolor-like hues.

But it also adopts a comedic style too rare in contemporary U.S. film. Rather than having a hero who must show his mettle to prove his or her worth, for example, it makes true outcasts the heroes of the film, and makes the cops who pursue them into bumbling, authoritarian fools. Both are old tropes, traceable through Charlie Chaplin to vaudeville and the penny opera, but it’s refreshing to see them reappear here in what is essentially a children’s movie.

The aforementioned outcasts are a poverty-stricken bear, Ernest, and the orphan mouse Celestine. The two live in opposing societies: At her orphanage, Celestine hears fairy tales about evil bears, and in the above-ground world of the bears, mice are nuisances to bourgeois bears or potential meals for poor ones like Ernest. Still, the two societies exist in a symbiotic relationship: Mice collect the baby teeth of young bears and refashion them into incisors for aging mice.

Ernest & Celestine
For Ernest, mice like Celestine were once a meal.

In the world of Ernest and Celestine, both societies strictly prohibit associating with members of the other species, despite the fact that both recognize the other ones as sentient. But Celestine believes that bears cannot be as bad as they’re made out to be by the mouse society’s authorities, and seeks out a friendship with down-on-his-luck Ernest. Although resistant at first, Ernest eventually relents, and the two are wanted by the two governments for their transgressive friendship.

On the surface here is a very familiar anti-prejudice message, with each friend flouting arbitrary social laws to find common ground with someone who not only is very different physically and culturally, but who is in fact demonized by their culture. Ernest and Celestine bridge this divide by finding things to admire in each other that their respective culture doesn’t value: Celestine admires Ernest’s musicianship and Ernest, Celestine’s drawing and painting. This depiction of people finding something unique in each other to love is probably the heart of the film and makes it a much more ethical children’s film, for example, than The Lego Movie, with its largely vapid insistence that “everything is awesome.”

The film has less visual flourish, and certainly less sophisticated referential humor, than such recent U.S. animated fare. That is not to say that it’s void of humor — it is a funny, if not uproarious, film. For adult viewers, what may be most fun about Ernest and Celestine is the social satire that surrounds the lessons of friendship. The hubris of the legal system of both societies, and of their insistence on remaining separate even while evolving symbiotically and in parallel, is presented with wit, if not subtlety.

The surreality of the relationship between bears and mice in this universe, in which both species are anthropomorphic but still see each other as just animals, creates a bounty of absurd moments. Female bears, for example, are expected to scream at the sight of mice. Here the film extends its satire to gender roles, and at one point the bourgeois female bear voiced by Megan Mullally must be reminded by surrounding males to scream at the mouse.

The English dub of the film features an impressive cast of voice actors, with Forest Whittaker truly shining in his role as the grumpy but essentially warm Ernest. Among the other voice actors are William H. Macy, Paul Giamatti, Jeffrey Wright, Nick Offerman and hollywood royal Lauren Bacall. The urge to play “spot the voice” can be distracting at parts — rather than being a part of the fun, as it often is in animated film — but Macy in particular is another highlight in his role as the lead dentist in charge of appropriating bears’ teeth as new incisors.

In all, Ernest and Celestine is a animated film that blends some very traditional and familiar ideas with a fresh perspective on the anthropomorphization of animals. I am not familiar with the children’s books by Gabrielle Vincent on which this is based, so I can’t say which ideas originate with whom, but the world that directors Stéphane Aubier, Vincent Patar and Benjamin Renner create is one of great emotional and satirical depth. If you have a child, or are simply in the mood for an animated film that is clever without being cynical, it’s not one to miss.

Ernest & Celestine opens April 18 at FilmScene’s Scene 1 Theater.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/talking-movies-ernest-celestine-is-a-refreshing-animated-film-for-both-children-and-adults/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Comments</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="103"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>