毎日新聞 2026/1/3 16:30(最終更新 1/3 16:30) 1544文字ポストみんなのポストを見るシェアブックマーク保存メールリンク印刷復元された屋嶋城。大規模な石積みの城壁が続く=高松市の屋島で2025年11月26日午前9時28分、佐々木雅彦撮影写真一覧 高松市のシンボルである屋島は、標高292メートルの山だ。ここで源平による「屋島の戦い」が繰り広げられたのは1185年。源氏方の那須与一(なすのよいち)が弓を引く前に祈ったとされる「祈り岩」や、足場にしたと伝わる「駒立岩」など、戦いのゆかりの場所が点在している。現代によみがえる戦い 陣太鼓の音が鳴り響き、ときの声が上がる中で戦絵巻が繰り広げられる。やがて夕闇が迫る頃、扇の的を掲げる平家の女人が登場し、那須与一が放った矢が的を射抜いた――。Advertisement源平合戦を演じるオペラ。那須与一(舞台左)が扇の的に向けて矢を射る瞬間=高松市の屋島で2025年10月19日午後6時28分、佐々木雅彦撮影写真一覧 屋島の戦いを描いた平家物語の名場面だ。2025年10月19日、「瀬戸内国際芸術祭2025」の一環で、香川大が中心となり「瀬戸内源平合戦絵巻~オペラ『扇の的』ダイジェスト版」を上演した。屋島の山麓(さんろく)にある野外博物館「四国村ミウゼアム」内の農村歌舞伎舞台で、約420人の観客が840年前にタイムスリップした。 実は屋島には、平安の源平合戦よりはるかに時代をさかのぼる戦いを巡る歴史があった。その代表的な遺構が、四国村ミウゼアムから見上げる山上の斜面の一角にある約1360年前に築かれた古代山城「屋嶋城(やしまのき)」跡だ。記憶から消え「幻の城」に 江戸時代の名所案内書「讃岐国名勝図会(ずえ)」にも「屋島城跡」の項目があり、源平合戦との関連が記載されている。ただ、高松市文化財課の梶原慎司主査によると、源平合戦と直接関係はない。その上で、梶原さんは「江戸時代の屋島の人たちに、そう言い伝えられていたのかもしれない」と想像を膨らませる。 屋嶋城は、7世紀に東アジア情勢が緊迫する中で築かれた。朝鮮半島の3国(高句麗(こうくり)、新羅(しらぎ)、百済(くだら))のうち、百済が唐・新羅連合軍に滅ぼされると、日本は百済の復興を支援するため派兵したが、663年に「白村江(はくすきのえ)の戦い」で敗北。このため連合軍の侵攻に備え、九州北部から瀬戸内海沿岸、近畿にかけて複数の城を築いた。その一つが屋嶋城で、日本書記には667年の築城と記載されている。 しかし、江戸時代以降、屋嶋城は人々の記憶から消えていく。1990年代には「幻の城」とも呼ばれていた。復元も今も残る謎 転機は98年に訪れた。地元の歴史愛好家が山林に埋もれていた石積みの一部を発見し、高松市教育委員会が本格的な発掘調査を始めた。朝鮮半島の築城技術を生かした城門・城壁が確認され、屋嶋城が実在していたことが2002年に判明。復元工事も進み、16年から一般公開されている。城壁は延長約50メートル、高さ約6メートル。城門は国内の古代山城の中でも最大級の規模を誇り、市街地が一望できる。復元された屋嶋城の城壁。市街地が一望できる=高松市の屋島で2025年11月26日午前9時36分、佐々木雅彦撮影写真一覧 古代山城は山全体を石塁や土塁で囲み、城門を備えるケースが多い。屋嶋城も城壁が山上を全長7キロにわたってはり巡らされていたと考えられるが、ほとんどは自然の断崖で、人工的に築かれた城壁はそのうちの1割程度。発掘調査で判明した遺構は2カ所だけだ。梶原さんは「一部の場所しか調査できていないので、城門の役割や廃城時期も分かっていない。謎に包まれたままだ」と説明する。 屋島の戦いを再現した香川大のオペラは、戦のさなかであっても懸命に生きようとした人々の姿を描いた。最終盤には、平家物語の冒頭の一節「祇園精舎の鐘の声、諸行無常の響きあり、……おごれる人も久しからず、ただ春の夜の夢のごとし」が歌われ、「生きてゆく」と繰り返し合唱して幕を下ろした。 私も観劇した。古代から続く数々の戦の跡が残る屋島に、命を懸けた人々の息遣いがよみがえってくるようだった。【佐々木雅彦】屋嶋城跡 JR高徳線屋島駅、ことでん志度線琴電屋島駅からシャトルバスで屋島山上バス停(屋島山上観光駐車場内)下車。徒歩15分。あわせて読みたいAdvertisement現在昨日SNSスポニチのアクセスランキング現在昨日1カ月アクセスランキングトップ' + '' + '' + csvData[i][2] + '' + '' + '' + listDate + '' + '' + '' + '' + '' + '' } rankingUl.innerHTML = htmlList;}const elements = document.getElementsByClassName('siderankinglist02-tab-item');let dataValue = '1_hour';Array.from(elements).forEach(element => { element.addEventListener('click', handleTabItemClick);});fetchDataAndShowRanking();//]]>