ByRoxana Hadadi,
a Vulture TV critic who also covers film and pop culture
Photo: Katie Yu/FX
Major spoilers follow for Shōgun’s eighth episode, “The Abyss of Life.”
Death isn’t uncommon on Shōgun. The series has killed off characters via boiling alive, beheading, earthquake, bandit attack, cannon fire, and bloody accident, for losing a battle, disrespecting the Council of Regents, or breaking a facetiously uttered rule against touching a rotting pheasant. Any character can die at any time. But even under those established rules, the seppuku sacrifice of Toda Hiromatsu in the eighth episode, “The Abyss of Life,” is an agonizing surprise.
As portrayed by veteran Japanese actor Tokuma Nishioka, Hiromatsu is a loyal paternal figure both for Lord Yoshi Toranaga (Hiroyuki Sanada), whom he has served for decades as a general, and for many of Toranaga’s allies, who turn to Hiromatsu for his brusque common sense. When Toranaga’s men share their concerns about Toranaga surrendering instead of pursuing the war he promised them, Hiromatsu takes their worries to their lord in a horribly tense scene in which Hiromatsu announces he will commit seppuku if Toranaga doesn’t stop “throwing away all that we have fought for.” Instead of stopping Hiromatsu, Toranaga calls his bluff, with tight close-ups on Nishioka and Sanada’s faces as they argue, right up until Hiromatsu plunges a dagger into his own stomach.
The final scene of “The Abyss of Life” clarifies that this was all a feint, a predetermined series of events between Hiromatsu and Toranaga to trick the Council of Regents into believing Toranaga is serious about surrender. That reveal underscores the seriousness of the samurai code of loyalty, but it doesn’t negate the impact of Hiromatsu’s death, which was originally written with more members of Toranaga’s samurai guard committing seppuku. It was Nishioka’s idea, he says through a translator, to limit the death count in order to emphasize the singularity of Hiromatsu and Toranaga’s bond.
You’ve had such a long and varied career. I’m wondering what your experience was with death scenes before this episode and how this compared. It was actually quite different from the other two times I played seppuku onscreen before, because it has to do with this special relationship between Toranaga and my character. We have this shorthand between us, don’t we? We understand each other the way nobody else in the room understands us. This is what they told me during the audition process: I had to play my character as if the relationship between myself and Toranaga was that we understood each other just by looking at each other’s eyes. Everything was expressed not through words but just by looking at each other. And they specifically requested I do that in the way that, for example, Paul Newman and Robert Redford did in Butch Cassidy and the Sundance Kid.
How did you and Hiroyuki Sanada work on the scene? I remember quite vividly that back in August 2021, I flew to Vancouver and met up with Sanada-san for the first time in a very long time. And we had this pact that we both would bring a very genuine idea of Bushido, or the way of the samurai, to the world. We promised each other that we would not perform our characters, or we would not present this series, in a way that would bring us shame or that would feel embarrassing. And since we had that kind of pact with each other, when we shot that final scene, it felt like, This. It all comes down to this. This is the moment.
What was the atmosphere like on set? It was one of the last scenes we shot, and it was a full day of shooting. Everyone was very excited indeed. There were about 30 samurai actors behind me, and after they said “cut,” I remember I looked around and they were clapping, very, very silently, and some of them were crying. We had other crew and other samurai actors on set as well, and everyone seemed to be very, very moved by it. I saw everybody and I thought, I guess I did well. Sanada-san is right there in front of me, and I could see his face, and there were tears welling up in his eyes. It really helped the emotions inside of me swell up. I was completely in the zone as we were shooting that scene. It was basically the first cut. We did have to shoot it a couple of times for camera angles and so forth, but basically I seem to have gotten it on one try.
I cried watching it too. In this episode, Hiromatsu is defending his lord from other allies who think Toranaga should be going to war instead of surrendering. In those interactions with Toranaga’s doubters, we see Hiromatsu show uncertainty, and that informs his later act of seppuku — or so we think. How did you approach this turning point for the character? It was quite complicated because there are so many layers to what we’re playing there. The premise is that we think maybe one of Ishido’s spies is there, and so we have to put on this play, don’t we, to convince? It’s a performance. He is sacrificing himself for his Lord Toranaga, but of course the spy can’t be able to tell that, so it has to be just the right amount of true for the spies. We had to be very measured in that way.
We actually had a very intricate conversation with both [series co-creator] Justin Marks and Sanada-san as to how we were going to do this scene. It was written differently. It was supposed to be five people who were going to commit seppuku in front of Toranaga, but they ultimately decided it would weaken the impact of the scene. We wanted to bring much more attention to it, which is why they decided ultimately that it was going to be just my character. That was actually my idea to do the seppuku scene with just myself. I remember talking about that from the very first instance that I received the script. In that way, it would be quieter and cleaner but more impactful if it was I alone who did it. And it also is a very good display of what I was talking about, about what Bushido is. You sacrifice yourself. You will do anything for your lord and for your purpose.
Hiromatsu’s two primary relationships are with Toranaga and his granddaughter Fuji. These characters have such tenderness and love for each other. What was your working relationship like with Moeka Hoshi, who plays her? It was indeed that kind of very, very loving relationship. She has this presence that makes you want to just go and hug her. I was able to portray Hiromatsu as a doting grandfather who was very loving. “This is my most cherished granddaughter,” he says in one instance. And Moeka, she does bring that out in you because she plays the character so wonderfully as very sensitive and very genuine. She’s like a tiny little bird that brings out your protective instincts. It’s like I wanted to guard her and protect her as a character. She played it very well in that way.
Hiromatsu bringing Fuji her husband’s and son’s remains also really got me. It was an intimate moment that effectively showed us how these characters in particular understand the cost of this war. Moeka was trembling as we were shooting the scene because she was at quite a loss as to how to approach that instance as a character. And I remember encouraging her and saying, “Don’t worry about it, don’t worry about it. You can make mistakes in delivering your dialogue. Just do it in whatever way comes to you. Just do it in the way that you want to.” And as we wrapped that scene, she was crying. She was asking me, “How did I do? Was that okay?” She mentioned to me later on that the fact that I told her all these things gave her a sense of assurance and confidence.
Hiromatsu also has a couple of moments that made me laugh: When he announces to the Council of Regents that Toranaga is resigning “for personal reasons,” and later when he makes fun of Toranaga for being unable to behead an enemy when he was a child. Did you think of Hiromatsu as funny? Do you enjoy working in comedy? It’s fun to be funny. I love to be funny. And Sanada-san, Hiro, also loves comedy. I’ve known him for a very long time, and he tells a lot of jokes on set; I think it’s to alleviate the tension. But for myself as an actor, I do like to pace my acting, bringing the tension where it’s necessary and then letting it loose with the joke and then tightening it up again. I like doing that kind of thing.
Sanada has talked about how culturally and historically accurate he wanted the series to be in his role as a producer. Were there any moments when he tweaked something about Hiromatsu? In terms of how I would play the character, there was really no additional input from Sanada-san. He really left it to my devices as to how I wanted to approach the character. He never really questioned what I did, and so I was at my liberty, or at my leisure, to play the role as soulfully as I wanted to, to bring soul to it, and there was no external direction or anything like that. But I do remember that when it was the day that we were going to shoot the seppuku scene, Hiro was on set in the morning, and he greeted me. He said, “Hiromatsu, so — today is the day, isn’t it?” And I felt this lingering kind of pang, that he probably didn’t want that relationship on screen to end between Toranaga and Hiromatsu.
This interview has been edited and condensed for clarity.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]