祖父との思い出2

「おじいちゃあん、おじいちゃあん、行くよう、早く行くよう、って言って、おじいちゃん、妹にミルク飲ませてるのに、バスのガラガラ引っ張るおもちゃもって、行くよ、行くよって何度もいってさ、その話をおじいさんから何辺も何辺も聞かされたいや。

それで遠ーくまで散歩していってさ、そうしたら、途中でお前が眠たくなって、それで、妹おんぶして、お前のことをおじいさん抱えて、バスのおもちゃ引っ張って帰ってきたんだれ。 ばぁか疲れたいやって、おじいさん言ってさ。」


2019/03/24

到着すると地元はよく晴れていた。
母親が喪主なため、せわしなく連絡をとったりしていた。余裕がなさそうだ。
僕は車に乗り込むと、とりあえず祖父の家に向かうことになった。妹と3年ぶりにあった。
向かう道中で、母は車を運転しながら、決めることが多く、葬儀会社と何度も何度も打ち合わせしなければ行けない状況に苛立っているうようだった。

祖父の家では、布団で祖父が寝かされていた。息を引き取ってから3日目なので、喉元が緑色に変色し、耳が暗い紫色に変わっていた。首から下は、布団がかけられていて分からなかった。

触ると冷たい。ドライアイスのせいだ。
じいちゃん、帰ってきたよ。

線香を折らずに火をつけ、立てる。水を替えてやる。水を替えるのが供養になるそうだ。

祖母は相変わらずマイペースだ。
今の葬儀は割合手が込んだものになっていて、遺影以外にも写真をいくつも集めたコラージュみたいなものも作るらしい。そのために引き出した昔の写真を見ながら、自分を見つけては可愛い可愛いと何度もいっていた。 こんだけ可愛かったんだから、そら言い寄られるわけだ、と言っていた。

**

母の家系は、男の子供に恵まれなかった。
僕の母が長女、そして近いところに嫁に行った叔母(次女)がいる。
僕の家も叔母の家も祖父母の家からはそう遠くはないし、行き来がずっとあるが、叔母の方が訪問頻度も高く、その分関係性も強かったんだろうと思う。

僕は初孫で長男だったこともありすごくかわいがってもらったしその自覚もあるが、逆に叔母の子達は一番下の子で18でまだ地元におり、孫を通した交流も多かったことも、交流頻度の多寡に影響していると思う。

そうはいっても長男がいないため、とりあえず長女である母が喪主ということにしたそうだ。祖母はとにかくそういった面倒事を任せられる状態ではない。

**

今日は僕と父、妹は家に帰って、母親は祖母と祖父と泊まることにするそうだ。宗教的な理由からか、線香を絶やしてはいけないらしく、火事になる危険性もあるので祖母一人には任せることができない。それに死体と夜を二人で過ごすのは、幾ら夫婦だったとはいえ可哀想だ。(遺体の顔に白い布がかけられていることも多いが、祖母はその状態が怖いらしく、常にとっていた。) 明日は昼に納棺、夜に通夜、そのまま祖母と僕の家族が斎場に祖父と泊まる。叔母たちは斎場と家が近いため家に帰り、葬儀前にまた来る形になった。

大まかな予定を確認したあと、父方の叔父(父の兄)が妹に結婚祝いを渡したいことと、僕が妹に髪の毛を切ってほしいと依頼したことで、先に一旦家に帰ることにした。母が父に、僕の髪の毛を切り終わってから叔父に連絡して来てもらえ、コーヒーをだして、茶菓子が今家にないから、このお菓子を持っていけと、お菓子をもたせてくれた。

家について散髪が始まるやいなや、父は叔父に連絡し、髪の毛を切ってる途中に何故か叔父が来た。コーヒーは出すのに茶菓子は出さない。しかも何故か寒いし、叔父の対応を僕と妹に任せ、自分は少し離れた席で相撲を見ていた。それでも談笑して和やかな雰囲気だったが、終わったあと確認すると、車の中にお菓子は置きっぱなしだった。父はこういう人間なんだ。僕はまた祖父の家に向かう途中の車の中で、父を叱った。

祖父の家に叔母家族が来たので、久しぶりに皆でご飯を食べにいった。回転寿司。
僕は叔母の隣りに座った。叔母は普通に振る舞っているようだったが、かなり憔悴しているようだった。


2019/03/25

今日は納棺と通夜。
納棺は15時からなので、それに間に合うように祖父の家に行けば良かった。

昼頃、一旦母を家に戻すため、妹が迎えにいった。祖父の家の風呂が機能していないため、家で風呂に入りたいそうだ。
帰ってきた母は、祖父の家では歯も磨けなかった、 誰も歯がないから歯磨き粉がないんだと言った。なるほど、盲点だったなと思った。

支度をしていると刻一刻と納棺の時間が近づいてくる。それにもかかわらず、父はラーメンを食いに行きたいだの、出前を頼もうなど食べる話しかしない。僕は今日の晩、斎場に泊まって翌日の式に出席した後直接大阪に帰るので、忘れ物の無い様、荷物をまとめた。
お昼ご飯は結局スーパーで弁当を買った。

祖父の家に向かう道中、母はいろいろなことを語った。
今回、いろいろなことを決めなければならないが、祖母が決めることができないので、自分が決めなければならないこと。連絡すべき人たちの連絡先などはすべて、祖父が生前残してくれたノートに記載されていたこと。そこには僕の電話番号や、息子が生まれたこと、親戚関係の生死なども記載されていたこと。浅丘雪路、死亡なども書かれていたこと。入院中に何かあった時のために、姉妹にはお金の場所等も事前に教えておいたこと。そういうことが、今回すごく助かったと言っていた。また、家系の本家、分家等のしきたりが分からず、マナーを犯したために少々ややこしくなっていて、ストレスになっていることも語った。

話を聞いていると、本家問題以外にも、お坊さんに対する扱いも特別なものだった。僕はなんとなく、そういったしきたりがひどく疑問だった。
僕は祖父を送りたいがために来ているのであって、本家との顔つなぎに来ているわけでもなければ、入信しに来てるわけでもない。母や叔母も同じはずだ。お坊さんは宗教上の行為を持って祖父を弔ってくれる、いわば協力者の立ち位置であって、そこに気を使いすぎて祖父を送ることに集中できないような構造では、改められてもいいのかもしれないと思った。

早めについたので、祖父の顔を何度も眺めて、触る。右の頬には若干赤い筋がはいってきている。何人か祖父に会いに来た。叔母たちもきた。そしてお坊さんと棺がやってきた。
遺影は淡い緑色の額に入れられている。棺もそれに合わせた色、運び込んで祖父の隣に置く。

旅支度。
布団を剥ぐと、黄色くてむくんだ手や足がみえる。
手が大きい。こんなに手が大きかったんだなーと思った。
アルコールで体の出ている部分を拭いてやる。僕は顔を拭いた。祖母も反対側から顔を拭いた。

おじいさん、旅立つときが来ましたて。しょうがねえんだ。

僕は次に手を念入りに拭いてやった。黄色くて大きい手が、堪らなく愛しかった。
祖母は祖父の手を取り、「冷てえねえ、冷てえて。22日の日に、おじいさんの手を握ってたんだよ。そんときはさ、あんなあったけかったのに、冷てえねえ。ずっと触っててもあったかくならねえね」といった。

旅支度は、足袋を履かせ、すね当て、手の甲あてをつけて、最後に頭巾をつけて、六文銭をもたせてやる。
足や手はすごく冷たくて重たかった。

腹水が溜まっているので、頭の方を下げるとそれがクチから出る可能性があったため、慎重に、棺の中に収めた。
収めたあと、葬儀会社の人が綿で袴を着せてくれた。下から見ると立っているように見えた。
あまり立派だったからか、父が写真を撮っていいか聞いた。僕はその時の父の態度が不真面目に感じて、苛々しながら父を諌めた。葬儀会社の人は、最近はそういう方も増えていますと言ったが、祖父は写真がすきでなかったから、と、その話は流れた。 それから顔にファンデーションを施して、口に綿をつめ、少し紅を塗った。妹も化粧を施してやっていた。本当に生きているみたいで、寝てるだけなんじゃないかと何度も思って、何回も何回も冷たい顔を触った。

入院中、枕元に置いていたという妹が買ってきた健康長寿のお守りも持たせてやった。50円玉など、小銭も集めて持たせてやった。集めた小銭を祖母が、じいさん、お金持ちになりましたね、といって袴の襟のやたら奥に突っ込んだ。

大好きだった酒と、枕と、衣類なんかの遺品も葬儀会社の人に渡した。
そして棺の蓋を締めた。
その時、それがなぜだかすごく悲しかった。

重たい棺を霊柩車に乗せた。
それが出発するのをみながら、もう肉体はここに帰ってこないんだと思った。

僕たちは着替えながら通夜の迎えのマイクロバスを待った。着替え終わったくらいで、母は通夜の終わりの挨拶をするので、そのための原稿を練習した。
父も妹も泣いた。母も泣いた。本番に読めるのだろうかと不安になるほどに。

祖母の準備は致命的に遅い。それは周りを常に苛立たせるほどに。
通夜の支度をして迎えが来たが、祖母はストッキングを履くのに時間がかかっている。うちの親父の気が揉めている。だけどいいじゃないか。ばあちゃんのための葬式でもあるんだから。

僕は叔母の息子とともに車で斎場に向かった。久しぶりの従兄弟。
叔母の子供は三人いる。長女、長男、次男だ。長女が一番年が上だ。

斎場につくと、祖父のスナップ写真や、先程渡した遺品が展示されていた。スナップ写真はぼくが写っているものがやたら多かった。嬉しくて、切なくなった。
会場に入ると、すごく立派な飾りが用意されていて、祖父が寝ていた。顔をずっと見ていたい。
徐々に人が集まって、スナップ写真を見ながら談笑をしたり、控え室でコーヒーを飲んだりしている。僕はそういった人たちに挨拶したり、変にトイレに立ったりしていた。そうして、その間に何度も祖父を覗きに行った。
祖父のそばに、僕以外にもうひとりいて、慈しむように祖父を見ていた。あとから聞くと妹だそうだ。祖父をひどく慕っていたらしい。

親戚たちへの挨拶や、談笑をしているとあっという間に時間が過ぎた。お坊さんがはいってきて母たちは挨拶に向かった。もう直ぐお通夜が始まる。
僕は何度めかのトイレに向かってから煙草を吸った。

地域柄、祖父は法華宗だった。
僕はこのタイプの葬儀関連は初めてだったので、興味深く参加していた。
隣に座る父が、だんだん眠たそうにしてくるのを肘で小突いて起こしながら、お経を聞いていた。
リズミカルな打楽器とお経は、意味はわからなかったがなんとなくぼうっとしてしまった。この時間、僕は祖父について考えていた。いろいろなことを思い出そうとしていた。話の断片や記憶をかき集めて辻褄を合わせるような、物語を作っているようなことを繰り返していた。ふわふわとした浮遊感の中で、満遍なく引き伸ばされた悲しみの上をたゆたっているような、悲しいような、よくわからないような気持ちをずっと感じていた。

焼香をして、南妙法蓮華経と唱えさせられた。35日法要もかねているからかもしれない。焼香は最初喪主である母と叔母、祖母の三人が行った。きちんとできるかな、と思った。その後僕と父、妹、叔母の子。僕は中央の焼香台をつかった。真正面から焼香をしたかった。

読経が終わると、喪主の母が挨拶だ。
変にどきどきする。
その前に突然、プロジェクターが降りてきて、祖父の生前のスライドショーが始まった。結婚式みたいだなと思って笑った。

母が泣いてる姿はほとんど記憶にない。
テレビを見て泣いていたことはあった気がする。あるいは定かではないが、子供の頃、父と喧嘩して泣いていたところを見た記憶が朧気にある。
そんな母は、声をつまらせながら挨拶を読み終えた。
隣で妹は号泣していた。

通夜振る舞いでは、父の兄夫婦と、祖父の兄弟の奥さんしかいないテーブルに座っていろんなことを話した。
奥さんはその兄弟は昨年の10月に亡くなったんだと言った。10月22日。祖父は3月22日、偶然ってあるもんですねと話していると、父の兄が、うちの方のおじいちゃんがなくなったのも2月22日だったといった。
不思議だなと思った。

参列者が全部帰ったあと、葬儀場の宿泊部屋に僕の家族と祖母、叔母家族が集った。
母と叔母は明日の流れを確認している。祖母は疲れたのだろう、すぐに横になって目をつぶった。通夜振る舞いでラーメンを3杯も食べていたので満腹だったのもあったかもしれない。
部屋には祖父も運ばれてきていた。
棺桶の小窓を開けて、祖父の顔をまた触った。相変わらず、生きていて寝てるみたいだ。
叔母の一番下の18歳に、今祖父がバッて起き上がってきたらどうする?と聞いた。
嬉しいと答えた。
俺も。と言った。
昼間母がこの質問を祖母にしたら、祖母は逃げると言ったらしい。

その子にビールを注いでやった。
じいちゃんと一緒にずっと飲みたかったんだといった。僕は飲めたのに飲めなかったんだと白状した。だから今日はたくさん飲もう。
小さいグラスにビールを注いで祖父のもとにおいて乾杯した。

思えばこうして皆揃って集まれるなんて、本当に久しぶりだ。
じいちゃんうれしいやろな。
僕もじいちゃんと久しぶりに一緒に泊まれて嬉しいよ。


2019/03/26

葬儀は9時から。
朝の6時頃から目は覚めていたが、ある程度飲んでいたし、なんとなくゴロゴロしていたくて寝たふりをしていた。一緒に飲んでた従兄弟は良い感じに酔っ払っていたが、二日酔いは大丈夫だろうか。なんかすごく懐かれてしまった。
祖母は午前2時頃に風呂に入ったそうだ。湯壷に入ったと言っていた。湯壷という語彙がなんだかツボに入ってしまって無性におかしかった。

布団を揚げて、朝ごはんにコンビニのおにぎりを食べて、支度をした。
じいちゃん、おはよう。今日でお別れだね。と顔をなでた。
少し時間があったので、近くのコンビニまで歩いていった。このあたりを歩くのは初めてだったので、少し道に迷いそうになった。
コンビニで野菜ジュースを買って、煙草を吸った。雨の予報だったが、気持ちよく綺麗に晴れていた。

戻ると参列者たちが既にちらほら来ていた。老人たちは朝が早い。
僕は再び、祖父を覗きに行って、それから親戚たちに挨拶をした。
今回わかったことだが、妹のコミュニケーション能力は異常だ。職業柄、高齢の方を相手にすることが多いこともあると思うが、ほとんどの人と話をして盛り上がっていた。
昨晩の通夜振る舞いでは僕の隣りにいた祖父の兄弟の奥さんと連絡先の交換さえしていたし、母の悩みの種になっていた祖父側の本家のおばあさんに世辞や冗談をいったりして笑い合っていた。
しかも祖父側、祖母側の家系図まで頭の中で掴みかけてきたらしく、妹を通して誰が誰なのかの説明をうけた。無論、僕はほとんど覚えることができなかったわけだが。

葬儀が近づいてきたので、煙草を吸った。
父の兄と一緒になった。
「じいちゃんはでも良かったと思う、ひ孫も見れたんだし。うちの方は一人もひ孫見ないで死んでしまった」といった。

時間になって葬儀が始まった。
流れは通夜とほとんど一緒だったが、お坊さんの服が少し違ったし、お経中に何かしらで棺を叩いたり、なにかバラバラとした紙がついた棒を煙越しに投げて棺の上に乗せるというパフォーマンスがあったりした。
僕はまた昨日と同様に、父を肘で小突いて起こしつつ、お経をきいたり、遺影を眺めたりした。父の向こう側で祖母もコクリコクリとなっている。湯壷というワードを思い出して、僕は少し、笑ってしまった。
焼香したり手を合わせたり、南妙法蓮華経を唱えたりして、葬儀は終わった。
お経をきいている間、祖父の兄弟関係の方たちはお坊さんと一緒にお経を読んでいた。僕はなんとなく、祖父に向かって一緒に弔ってやれるのは少しうらやましい気持ちになった。

お経が終わり、花を手向ける。
花を手向けながら、また、顔を触る。
もう触れなくなるので、何度も何度も頬を撫でる。
余った花も手向け、遺品もいれる。
顔の近くに酒を供える。
誰かがそれじゃあねといったので、僕は顔を背けて棺から少し離れた。
それじゃあね、と僕も言おうと思ったが、うまく発生できなかった。
だけれど言わなければいけないと思って、また顔を触りながら小さい声で、じゃあね、と言った。

棺の蓋を締めて、出入り口まで運んだ。
出棺の挨拶は叔母がおこなった。
叔母も言葉をつまらせながら挨拶をした。
聞きながら祖父の兄弟が声を揚げて泣き崩れた。
棺は運ばれて、霊柩車の荷台に載せられた。

霊柩車は長いクラクションを三回ならして、火葬場へとむかった。僕たちもバスに乗ってそれを追いかけた。僕はまた、叔父と隣りに座った。なんとなく話したかったので、霊柩車の話をしていた。
ひどく悲しい瞬間と普通の瞬間が短い感覚で交互にやってきて、それについてうまく対処することが難しいなと思った。

火葬場は真新しく、綺麗で広い建物だった。
新しいせいか、あの独特の匂いが全然ない。
どの火葬場でもそうだが、物事が粛々と淡々と行われ、非常に事務的な対応がされる印象があったが、ここはそうではなかったので安心した。

火葬場の奥まで進むと、焼くための装置が蓋を開けて待っていた。
再度お経が読まれ、焼香し、顔を見て、手を合わせた。
じいちゃんがこれからあそこに入るのが凄く怖く感じた。
棺をいよいよ、装置に入れるとき、これから人間の形をした肉体を焼くという行為がありありと感じられて、悲鳴のようなものが漏れたのが聞こえた。
蓋を閉める時、手を振って何人かがバイバイといった。ぼくもそれに習ってばいばいといって、装置の扉は閉められるのを見送った。

あの世とこの世というものを分け隔てるものがあるとすれば、僕はこの、火葬の装置の扉なのではないかと思った。

葬儀場にかえって、お斎の時間。
1時間半ほど皆でご飯を食べて、お骨拾いに行く。
バスから降りて、お斎の場に向かう途中、妹はスナップ写真のコラージュなんかを写真に収めたし、じいちゃんのことも今朝、写真に撮ったと言ったので、写真を送ってもらった。普通にほしいと思った。

お斎は和食のコース料理のような形式だった。席は決まっていて、孫5人は同じテーブルに集められていた。叔母が挨拶をして、お坊さんが献杯の音頭をとった。叔母はもう、泣いていなかった。
お坊さんの献杯に合わせて、孫の僕たちは普通に乾杯をしてグラスを鳴らした。
葬儀場のスタッフが笑ってた。やってしまった、と思ったが、孫は往々にして許されるもんだろうと思って笑った。
これから気をつけます。

18歳の従兄弟は胃の調子が悪そうだった。二日酔いらしい。
若い人間しかいないテーブルには、老人たちのテーブルから無尽蔵にご飯が送られてきて、胃がはちきれそうになった。一番若い人間は胃がだめになっているので、僕と叔母の長女が大活躍していた。なんだか凄く楽しかった。
妹は久しぶりに孫が集まったのだし、と孫と祖母とで集合写真を撮ることを提案した。椅子を並べて真中に祖母を座らせて、それを囲んだ。いい写真が取れた。

あっと言う間に時間は過ぎて、お骨拾いの時間。
希望者だけがいく形だったが、祖父の親戚まわりも、祖母の親戚周りも殆ど来なかった。祖父の兄弟で生前飲み仲間だったおじさんが来た。祖父にそっくりだ。
バスに乗って出発をまった。この日9件も火葬が入っていたので、時間厳守だそうだったが、祖母はトイレに入ってなかなか出てこなくて、皆待たされた。
父はまた苛々している。僕はばあちゃんぽいなと思って可怪しかった。

結局10分近く遅れて出発した。
綺麗に焼き上がっていて、骨の形がしっかり残っていた。ここまで残るのは珍しいそうだ。大腿骨や頭蓋骨も形がありありと分かるほど綺麗に残っていた。
時間がないので橋渡しは最初の一回だけ。僕と、叔母の長男が行った。
それからみんなで骨を集めた。途中から飲み仲間の祖父の兄弟は手で集め始めた。お兄ちゃんの骨だもんなと思った。
すべて骨壷に収めて、それを僕が受け取った。決して落とさないように大事に大事に抱えた。

葬儀場に戻ると、場は解散になった。
参列者を見送って、荷物をまとめた。バスに乗って、祖父の家に帰った。
最後に、お寺にいって、またお経を読んでもらわねばならない。

ただいま。じいちゃん、帰ってきたよ。

祭壇に祖父を置いて、お寺に向かった。
お寺につくと、骨はどうした?ときかれた。
家だとこたえると、必要なんだが、、、と言われた。
取りに帰るのも、ということでそのまま読経が行われた。
読経を聞きながら祖母はたぶん寝ていた。父も眠たそうにしていた。

すべて終わって、祖父の家についたが、葬式の引き出物を渡すところがある、と母と父と妹はまた出ていった。叔母たちも着替えに帰った。僕は荷物をまとめたり、着替えたりしなければならなかったので、祖父の家にいた。祖母と二人になった。
二人きりになった祖母は、じいちゃんにむかって手を合わせた。しばらく手を合わせて何かを話していた。僕はその横でそそくさと着替えを済ませた。
祖母はそれから、何かが食べたいと言い始めた。そばを食べに行こうと言い始めた。冗談じゃない。僕はまだまだ満腹なんだ。祖母は今食べるわけではない、一時間後とかに食べるんだといった。それからそばが良いか、チャーハンがいいか、焼そばがいいか、もしたべるとしたらスープがあるものと無いものどっちがいいか、やっぱり焼そばが良いかもしれないというようなことをしきりに言い始めた。
僕は5時には電車に乗らないといけないから食べられないよ、といったが、聞いてるのか聞いてないのかわからない。
母がもうすぐ帰ってくるはずだから、それから決めたら良いんじゃないかといった。だが、人数が多いから早く予約しないと行けなくなると答えた。火曜日の昼間だから大丈夫、まだ埋まったりはしない。
納得したようだったが、おもむろに立ち上がって、突然受話器を持ち始めた。ちょっと待て、どこに電話するの?ときいたら蕎麦屋だという。
こういう時だけ何故か行動が早い。
なんとか説得して、先に着替えてもらうことにした。

部屋には僕とじいちゃんの二人。
遺影を見ながらたくさん話した。
後悔をいくらしても時間が巻き戻るわけではないし、祖父が今、そこにいるわけでもない。それに、もしかしたら尽くせる限りの最善だったのかもしれない。
それでも、それでも、という気持ちが湧いてきて、同じことを何度も繰り返し頭の中で反芻していた。

母が帰って来て、少し時間があったので近所を散歩した。
久しぶりにあるいてみると、どんどん記憶が戻ってくるのを感じた。
その記憶も全部、ぼくの思いこみかもしれないけれど、僕はここで確かに祖父と遊んだし、可愛がってもらってたんだと思った。
同様に祖母にも、両親にも。
僕が老いて死ぬときには孫にも同じように思ってもらえたら良いなと思った。

祖父との思い出。

特に理由があるわけではないけれど、なんとなく書いておこうと思う。

母方の祖父について。

今、祖父の通夜、葬式のために地元に向かっている。 片道6時間の長い旅路。
新しい会社に入ったばかりなのに早速、慶弔休暇を取得することになった。
通夜は明日、2019/03/25、式は明後日2019/03/26。 この記事を書くことは先日から決めていた。今、思い出せることや考えていことのログを残したいと思った。
久しぶりの文章なので、まるでまとまっていないけれど、とりとめのない形でもいつか自分がまた読み返したときに、祖父のことを思いだすきっかけになればいい。


訃報を聞いたとき、仕事の上司には近日中にそういうことがあるかもしれないということを伝えた日だった。
思ったより早いなと思った。夕方だった。
どうしようと思った。帰らなきゃという思いがあるくせに仕事のことを考えたりしていた。もう少ししたら帰ろうとか、そんなことを考えていた。
2019/03/22。とりあえず何をすればいいかわからなかった。変に仕事のことを考えたり、コードを眺めたりしたが、何も頭に入ってこなかった。
前日飲んでいたせいかもしれないし、覚悟していたとはいえ、思った以上にショックを受けたのかもしれない。
帰宅可能時間なので、とりあえず帰った。帰りながら、ちゃんとパソコンをしまったかどうかがやたら気になった。


最初に容態が良くないという連絡を聞いたのは先週の土曜日だった。その日は先輩が出演するノイズイベントを見に行く予定だった。
友達との待ち合わせのときに、親から電話があり、体調がずいぶん悪いことを知った。おそらく長くないだろう、それもかなり早いはずだ、要約するとそんな内容だった。
僕は今年のGWの10連休を帰省に当てるつもりだったので、それまで持ちそうか聞いた。わからないと答えた。恐らく無理だな、と言った。


祖父との思い出は多い。幼いとき共働きの親の預け先だったこともあるし、両親と母方の実家は仲が良かったので、頻繁に遊びに行っていた。
完全におじいちゃん子だった。僕も、おそらく妹も。 母の妹の子も、祖父の家によくいた。また、それらも例外なくおじいちゃん子だったように思う。
祖母は癖が強い。癖が強いが今になってはそれが面白い。 だが、それ故に祖父への思いが募りやすかったのかもしれないが。 祖母は色んな所へ出たがった。外交的な性格だ。だけど祖父は家にずっといた。ほとんど一緒には行かなかった。
それがなぜなのか僕にはわからなかった。今こうして思い返してみると、祖父がなんの仕事をしていたのかも知らないし、実は祖父のことを何も知らなかったなと思う。

——

なんとなく、この文章を書こうと思ったのは、僕が知っている祖父の情報と、祖父との今思い出せる限りの思い出を列挙しておきたいと思ったからだ。今しなければ、思い出せなくなることも多いと思うし、僕は祖父を覚えていたい。

祖父がしらない、パソコンというものを使って、祖父のことを記録するこの作業は、少し不思議な気がするけれど、自分のために、この作業しておきたい。

そういうわけで、以下。

  • 祖父は禿げていた
    • 頭頂部から進行するタイプで、ザビエルのようだった。
    • それを気にしていたのかは知らないが、いつも帽子をかぶっていた。
      • 水色の帽子。
  • 釣りが好きだった。
    • 好きとはいっても川で釣るという感じだった。
    • 一緒に行ったことがあるような気がするが、ないような気もする
  • 移動手段は自転車だった。
    • 後ろに乗せてもらって、スーパー(近くの原信、前は違う名前のスーパーだった気がする。丸井だったか。)によく行った。
      • ただ、後に足をわるくして乗れなくなった。
      • 10年以内の出来事だ。
  • 野球が好きだった。
    • 多分。行くと僕たちがテレビを占領してしまう。
    • 夏に行くと甲子園をよく見ていた。
    • 新潟勢は以前は弱かったため、早く負けるとお金がかからなくて良いと言っていた。
  • 字がうまかった。年齢を重ねた人は、基本字がうまい。
  • 煙草を吸っていた。
  • 酒をよく飲んでいた。
    • 糖尿もやっていたが、致命的ではなかったようだ。
    • 入院して、でてきて酒を飲んで転んでまた病院に行くという事があったと思う。
    • よく兄弟だというタケオおじさんも来て、飲んでいた。
      • タケオおじさんは頭にイボがある人だった。
      • ガンでなくなった
      • なくなる少し前、酔って高校生になった久しぶりの僕をみて、でかくなったな、抱っこさせてくれと行って無理やり膝の上に座らされた。
        • その後、誰だお前は、と言われた。
  • いい音のおならをしていた
    • それが面白くて、子供の頃よく笑った。
    • 寝転んで、新聞やらテレビを見ていた。
  • 方言がかなり強かった。
    • 今では若干わからないこともある
  • 料理がうまかった。
    • エビフライや鮭の焼いたやつがいつも作られていた。
      • 子供の頃はそれに飽きていたが、今年久しぶりに食べたらすごく美味しかった。もっと食べればよかった。
    • 椎茸の煮付けを僕が好きだったのでよく作ってくれた。
    • スクランブルエッグがすごく美味しかった
      • この記憶があるのは何故か僕だけみたいなので、妄想かもしれない
    • カレイの煮つけがとにかく最高だった。
      • これを食べられなくなることは、本当に悲しいことだ。
  • 昔一緒に海に行った
    • 手指の準備運動をしていた。
    • 横泳ぎが得意だった。(イカ泳ぎと言っていた気もする)
  • 祖父の家に行くと食べ物が死ぬほど出された
    • 寿司、刺し身、うなぎと得意料理が山のようにあった。
      • うなぎのありがたみがわからなくて、当時あまり好きでなくなった。
    • 年末に帰ると狂った量の寿司が振る舞われた。それを食べると年をこすという気持ちになる。
  • 大学に入って帰ってきたくらいの頃に、一瞬政治の話になった。僕は割と当時右傾化した考えを持っていたが、祖父は共産党支持者だった。僕とそんな話ができて嬉しいと言って笑ってた。
  • 途中白内障をやったことがあった。心配した。
  • 最後までしっかりした人だった。
  • 祖母には異常に厳しかった。
    • 祖母はただ、癖がかなり強いのでわからなくもないが、厳しいなと思うことも多かった。
  • 僕たちをきちんと叱ってくれた。
  • 大きくて、どっしりとした人だった。
  • 将棋を教えてくれた。
  • 毎回お小遣いをくれた。
  • 祖父の自転車の後ろに乗ってスーパーに行く道中に、朽木があったので、クワガタの幼虫がいないか、寄らせてもらった。
  • 珍しく弥彦神社で行われた菊展かなにかに祖父もいった。その時みんなで撮った写真がカレンダーになっていて、しばらくかけてあった。
  • 高校生の頃、友達と原チャで会いにいた。
  • 小さい頃泊まったときに布団の中で聞く、台所で片付けをしながら歌う祖父の鼻歌が妙に落ち着いた。
  • ストーブの上のヤカンとお餅。
    • 朝起きると寒くて、急いでストーブの前で着替えた。
  • 近くで火事があって一緒に見に行った。
  • ゴミ収集車を祖父に抱っこされながら見た。
  • 電車を見に連れて行ってくれた。

すべて思い出。本当かどうかもわからない。 きっともっといっぱい無数にあるはずなのに、これしか今、思い浮かばない。

酒が好きだった。物心つくと祖父と親父が大量に酒を飲んで、親父が前後不覚になることが多かった。祖父が酩酊してるのはあまり記憶にない。僕が将棋を覚えた頃、酔った祖父と将棋をした記憶がある。親父ともした。
親父も祖父もすごく楽しそうだった。僕は妹や母たちとあそぶなり、絵本を読むなり、テレビを見るなりしていた。
今ならわかるが、たくさんの孫に囲まれて飲む酒は最高に美味しかったろうと思う。

僕は18で家を出た。出てから年に多くても2、3度の帰省、その度に会いに行ったということもないので、それからは、数えるほどしかあってない。
でも年末に帰ったときは必ず行っていた。そこで食べ切れない量のお寿司を食べた。だけど、なんとなく気恥ずかしくて、僕はお酒をあまり飲まなかった。その後友達と会うからとかなんとか言って、あまり飲まなかった。
それを今、一番後悔している。

小さい頃、消防車のおもちゃを買ってもらった帰りに、近くにある大きな神社によった。そこで何か大きな石(狛犬のようなもの)に僕が腰掛けて、祖父にむかってその消防車を放った。祖父は困った顔していた。

結婚することを報告できたことはよかった。ひ孫にも会ってもらえた。

嫁と二人、祖父母の家を訪ねた。その時どんな会話をするべきかわからないなと、不安になったことが悲しかった。

ひ孫が最初会いに行ったときは病院だった。その時は胃潰瘍か何かであまり良くない状態だった。ひ孫は病院が嫌いなもので大泣きして吐いた(よく吐くのだ)。祖父はすぐに慣れる。慣れれば大丈夫なんだと言った。そうだろう。僕たちのことをみんな面倒見てきたんだ。

もう、舌が変になっていて、料理もできないのではないかとも聞いた。

今年の正月、じいちゃんは家にいた。歩行が難しくなったが、それでも元気そうだった。今年3歳になる息子の機嫌があまり芳しくなかったことや、サイズの合ってない入れ歯を、はめたりとったりするばあちゃんがグイグイくるのが怖かったからなのか、とにかく泣いた。泣いて吐いた。びっくりしたの、びっくりしたの、と言って泣いた。僕は悲しかった。じいちゃんに可愛い息子を見せたかったのだ。僕の大事なじいちゃんに、僕の可愛い息子を見せたかった。
泣いて吐いても、ばあちゃんはグイグイ来た。それもあって事態が好転するのに時間がかかった。びっくりしたの、と泣くので、じいちゃんはあまり、息子を見ないようにしていた。ごめん、と思った。 結局、クレーンのようなおもちゃで気を持ち直した。
テーブルの上にエビフライが置いてあった。キレイにまっすぐ伸びたエビフライが20本近く皿に積まれている。小腹がすいていたので、何本か食べ始めた。美味しかった。
それにつられて息子も食べた。今までエビフライなんか食べようともしなかったくせに、美味しい美味しいと何本も食べた。嬉しかった。親子3代にわたって同じものを食べたんだ。
じいちゃんは嬉しそうに、毎週エビフライは揚げているんだと言った。うまいだろ、と得意そうだった。もう食べれないと思ってたじいちゃんの手料理は、全然まだまだ美味しかった。
また、回復してもっといろんな料理が食べれるんだと思った。

じいちゃんは1/13で90歳になるとその時聞いた。息子は同日生誕1000日目だ。そんなちっぽけな偶然が何故かすごく嬉しかった。


ノイズイベントは楽しかった。なんとなくふわふわとした気持ちだった。気持ちがそこにあるようなないようなそんな気持ち

ノイズイベントの最後の演者が鳴らす音を聞きながら、祖父のことを考えていた。爆音と狂ったノイズのなかで、意識が外界から遮断されるような感覚があって、目をつぶって、なんか変なのって思った。祖父が想像さえしないであろう、わけの分からない音の中で、祖父のことを考えている。


3/21。休みだったので家にいた。親からビデオ通話の着信があった。めったにビデオ通話なんかかけてこないので、何かあったかと思った。
電話の向こうには病院で、母親と祖母、祖父がいた。
祖父は酸素マスクをつけて、口を明けて眠っていた。ひどく痩せていた。頭蓋骨の形を薄っすらと浮かび上がらせているような、そんな痩せ方をしていた。近いなと思った。
息子は無邪気になぜ病院なのか、なぜ寝ているのか、何をつけているのか聞いた。祖母はビデオ通話に映る嫁を見て、可愛いと褒めた。僕は、その祖父が、かつて見てきた死の近い人達にすごくにている気がして、目を背けたくなった。
変に息子が怖がらないかということが気になった。
また、同時になんとなく、少し落ち着いているように見えて、わずかばかり安心した。


正月に祖父の家に遊びに行ったとき、こんな場所だったかと思った。

人がいなかったからかもしれない。 しばらくぶりだったからかもしれない。 足が祖父も祖母も悪いので、片付けがうまくできないからかもしれない。 祖母が家のことを得意でないからかもしれない。 荒れているということもないはずだが、生活が行われているはずなのに、生活が行われていないような雑然とし感覚があった。 二階はどうなっているのだろう。子供の頃行って以来、もうずっと見ていない。

ただ、一つわかることは、以前のあの賑やかな、おじいちゃんち、というのは二度と再現されないということだ。


僕には曾祖母の記憶がある。 あまり印象が良いものではないけれど。

僕の息子は、この祖父のことを覚えているだろうか。

僕たちの代が全部死んだときに、この世に祖父がいたということ事実が、どこにも存在しなくなるんだな、となんとなく思った。そうして、みんな忘れられていくし、忘れられたんだと思った。

それに、今、こうして文字を書いているが、父方の祖父や祖母がなくなったとき、何もしなかった。確かに物心ついてからは疎遠だったが、小さい頃従兄弟と一緒にあんなに面倒見てもらっておきながら。

だけど、そのことを思い出せないのだから残酷だと思う。


妹によると、妹が最近籍を入れた夫を連れて、祖父に紹介した二日後になくなったらしい。母親が駆けつけてすぐに息を引き取ったそうだ。
なくなる日の午前は、起きて普通に話していたりしたが、午後に突然体調が崩れてそのままということになってしまった。

紹介に行ったとき、祖父はかなり弱っていて、途中何度か息が止まって、その度にペチペチ叩いて起こしたと言って笑っていた。
もう死なせてくれといっていたという。
少し早いよ。GWまで待ってくれよ。
平成の次の元号が気になるだろう?


訃報を受けた日、よくわからない気持ちで家にとりあえず向かった。
悲しいのか。泣けるのか。パソコンはちゃんと片付けたのか?休みを取るのか?手続きは? すべて大したことない気もしたし、重要なことにも思えた。
なんとなく帰りたくなかったし、立ち読みでもしようかとさえ思った。

玄関のドアを開けるとパジャマ姿の息子が走って寄ってきた。
歌を携帯から流してほしいらしい。
テレビでは「めばえ」という息子のお気に入りの番組が流れていた。 拙い歌声で息子が歌っている

誕生日のことは
覚えていますか

番組が終わり次第、主題歌を流してやった。

ありがとう 理由は何もないんだよ あなたという人がいることでいいんだよ (熊木杏里/誕生日)

泣きそうになって、笑った

背景の中で何種類かのパターンを繰り返して表示する

背景の中で何種類かのパターンを繰り返して表示する

全然書かなくなるということになったので、たまたま業務でやったやつを残しておく。
表題がめちゃくちゃわかりにくいけど、要はこんな感じのやつ。

例えば500 * 1000のパターンを4種類繰り返して表示するみたいなこと。

実装

CSSではできないのでcanvasを背面に敷きましょう。

HTML & CSS

<div class="wrapper" id="js-wrapper">
 <canvas id="c"></canvas>
 <div class="contents">
  ここに内容を書く
 </div>
</div>
.wrapper {
  position: relative
}

canvas {
  position: absolute;
  top: 0;
  left: 0
}

.contents {
  position: relative
}

そういうわけでcanvasです。


const c = document.getElementById('c');
const ctx = c.getContext('2d');
const PATTERN_HEIGHT = 1000;

let w;
let h;

// 描画のサイズが知りたいので親要素も取得する。
const wrapper = document.getElementById('js-wrapper');

const init = () => {
  w = c.width = wrapper.offsetWidth;
  h = c.height = wrapper.offsetHeight;
}
init();

// パターン画像の種類
const PATTERN_1 = 'PATTERN_1';
const PATTERN_2 = 'PATTERN_2';
const PATTERN_3 = 'PATTERN_3';

// パターンのサイズを柔軟にしたいのでpatternObj.imgにはimgではなくcanvasを格納する
const patternSource = [
  {
    name: PATTERN_1,
    url: '/assets/img/pattern_1.png',
    img: document.createElement('canvas')
  },
  {
    name: PATTERN_2,
    url: '/assets/img/pattern_2.png',
    img: document.createElement('canvas')
  },
  {
    name: PATTERN_3,
    url: '/assets/img/pattern_3.png',
    img: document.createElement('canvas')
  },
];

// パターンの順番
const patternOrder = [
  PATTERN_2,
  PATTERN_3,
  PATTERN_2,
  PATTERN_1,
];

// イメージをロードする
const loadImage = patternObj => new Promise(resolve => {
  const img = new Image();
  img.src = patternObj.url;
  img.onload = () => {
    // canvasにimgを任意のサイズで描画する。
    const imgWidth = patternObj.img.width = img.width;
    const imgHeight = patternObj.img.height = img.height;
    const imgCtx = patternObj.img.getContext('2d');
    imgCtx.drawImage(img, 0, 0, imgWidth, imgHeight);
    resolve()
  }
});

// imageリソースを全て取得してからコールバックを実行
const loadImages = async (patternSource, callback) => {
  await Promise.all(
    patternSource.map(
      pattern => loadImage(pattern)
    )
  )

  callback();
};

const drawPattern = (
  ctx,
  startX, startY,
  width, height,
  maxY,
  patternSource,
  patternOrder
) => {
  let i = 0;
  let drawHeight = startY;
  while(drawHeight < maxY) {
    const source = patternSource.filter(source => source.name === patternOrder[i % patternOrder.length])[0].img;

    const pattern = ctx.createPattern(source, 'repeat');
    ctx.fillStyle = pattern;
    ctx.fillRect(startX, startY + height * i, width, height);
    i++;
    drawHeight += height;
  }
}

const draw = () => {
  init();
  ctx.clearRect(0, 0, w, h);
  // 左右ハーフステップで繰り返させる
  drawPattern(
    ctx,
    0, 0,
    w / 2, PATTERN_HEIGHT,
    h,
    patternSource,
    patternOrder
  )
  drawPattern(
    ctx,
    w / 2, -PATTERN_HEIGHT / 2,
    w / 2, PATTERN_HEIGHT,
    h,
    patternSource,
    patternOrder
  )
}

ctx.beginPath()
loadImages(patternSource, draw)

だるい

はい。

CSSの `pointer-events: none` が便利

CSSpointer-events: none が便利

早速書かなくなっているので、小さいことでも書いていこうという気持ちを見せてる💪

サイト作ったりしてて、ディレクターに確認出したりするとたまーに「ここなんかクリックできないんだけど」みたいなことを言われることある。ちょっとややこしいデザインのサイトとかだと割とありがち。
それを聞くと「はーん、レイヤーの順番問題だな」というふうになって、position: relativeかけたりz-indexいじったりすることになるわけなんだけど、pointer-events: noneを利用すれば解消される。

あるいはハンバーガーメニューかなんかで、クリックすると画面全体を覆うようなレイヤーが登場するような場合も使える。
opacity: 0だけだと、透明になってるだけなのでレイヤーがそこに存在し続けて、普通にクリックできる状態になってしまうため、今まではvisibility: hiddenで存在を消してやってたのだけど、アニメーションかける時にちょっとこのプロパティを気遣ってやる必要があって、まぁまぁめんどくさいなと思ってたら、それもpointer-events: noneでいける。

なんで今まで知らんかったんやろうという気持ち。

そういうわけでDEMOです。

See the Pen pointer event test by bom_phage (@bom_phage) on CodePen.

はい。

小ネタでした。

ちょいちょい触って感じたsin/cosの便利なところ

ちょいちょい触って感じたsin/cosの便利なところ

canvasとかその辺触るとだいたいsin/cosが出てきて、数学嫌いな僕みたいなのはそれだけで😇ってなりがち。だけどちょっと触ってみると全然複雑なものでもない。
ポイントは2点で

  1. sin/cosに同一の値(角度)を与え、x座表に起点+cos、y座標に起点+sinを与えると円を描く
  2. 必ず-1〜1までの値を返す(その値間を反復する)

1. 円を描く

1.については以下の記事に非常に分かりやすく載ってる。
単位円を用いた三角比の定義
正直結構理解するのに苦しんでたけど、これを読んでなるほど!!ってなった。

実際にコード(JavaScript)で示すと、

// この値をいじることでアニメーションなりなんなりさせる
let angle = 0;

// JSでは基本ラジアンという単位を使うので変換用
const radian = angle => angle * Math.PI / 180;

// 起点座標(300なのは適当)
const BASE_X = 300;
const BASE_Y = 300;

// 半径のサイズ
const SIZE_RADIUS = 200

// 起点座標を中心にしたx/y座標
let x = Math.cos(radian(angle)) * SIZE_RADIUS + BASE_X;
let y = Math.sin(radian(angle)) * SIZE_RADIUS + BASE_Y;

この座標を元に位置だったりを計算してやれば円形にものを配置したり、円形に動かしたりできる。
x座標を直線的な動きにするといわゆるsin curveになる。
それ以外にもsinやcosの値を重ねたりなんだりすると面白い動きになったりする。

See the Pen sin/cos by bom_phage (@bom_phage) on CodePen.

2. 反復する値を使う

実際円を描く機会というのもそんなにあるかと言われればないわけで(そもそもこういうtipsが役に立つ機会はない)、もう一方の-1から1の間の値を必ず返すという方が使い勝手がいい気がする。
しかも、何より素晴らしいのはsinとcosで同じ値を入れても別々の値を返してくれるということだ。要件にもよるけど、割と嬉しい。

そのまま使うのもいいし、正規化して使うとさらに使い良いこともある

-1 〜 1の範囲だとちょっと使いにくいよねという場合は0 〜 1正規化*wikipediaしてしまえばいい。
それはそんなに面倒なことでもなくコード(JavaScript)なら

const normalizeSin = angle => (Math.sin(radian(angle)) + 1) * 0.5;
const normalizeCos = angle => (Math.cos(radian(angle)) + 1) * 0.5;

0 〜 1の範囲を返すようにできる。

何に使う?

ある範囲を反復するので、繰り返すようなアニメーションの処理に使う。というかtransformのプロパティに使えば、なんかガチャガチャ動くものになるし、例えばopacityの値に使うとかhslの値に使うとか色々ある。
あと特徴としてはsin curveの形で増減するのでeasingにもつかえる。

というか色々数字いじると楽しいし、意外な形になるので触ってみて遊ぶのが一番良さそう😘

See the Pen sin/cos2 by bom_phage (@bom_phage) on CodePen.

はい。

そういうわけで、なんとなく書いておきました。

source要素のmedia属性について

source要素のmediaについて

ウェッブサイトを制作する上で、スマホ用とPC用で画像を切り替えたいみたいなことってかなりあると思う。画像はなんやかんやとファイルサイズ食うものでもあるし、PCの方ではガツンとでかいやつ使いたいけど、それさすがにスマホで読ませるのキツイよねって言う時とか、単純にそれぞれで最適化した画像を見せたいみたいなことはざらにある。

そういう時は僕は<picture>タグを使うことにしている。

それぞれの画像に対してmediaQueryで切り分けてdisplay: noneをかけるみたいなことでも実現できるけど、その場合、display: noneになってる画像のリソースも読みに行ってしまう。表示させないのに読み込ませるのはどうなの?みたいな気持ちがあるが、<picture>タグはその心配がないし、それであれば使わない理由もない。

ちなみに背景画像をmediaQueryで切り分けて読み込ませた場合は、読んでない方は読み込まれない。<picture>もコレと一緒。そういうわけでサンプルも用意してみた。開発者ツールのNetwork > imgで読んでるリソースの確認ができる。

See the Pen mediaQuery test by bom_phage (@bom_phage) on CodePen.

display: noneのものも読み込まれてるのがわかると思う。

本題​

ところで、このsourceタグのmedia要素だけど、書き方としてはCSSと一緒。僕はCSSのメディアクエリに関してはemで記述することにしていて、ほんならこの属性値もemでいったろかいって思ったけど、それがなかなかうまくいかなかった👶🏻
ちなみにメディアクエリをemで指定することに関しては下記の記事を読んで、そうかと思ったからだ 。
[CSS]Media Queriesで使う単位はpx, em, remのどれが適しているか検証 -px指定は注意が必要

とりあえずemで指定するとこんな感じ。768px未満でスマホ、以上でPCのイメージ。

<picture>
  <source media="(max-width:47.9375em)" srcset="img-sp.jpg">
  <source media="(min-width:48em)" srcset="img-pc.jpg">
  <img src="img-pc.jpg" alt=""><!-- IE用 -->
</picture>

全くダメというわけではない。なんなら普通にいけてるやんと思ってて気づかなかった。

ランドスケープの時に崩れるやんけ🧠🧠🧠

ランドスケープ(横向き)にした時、横幅は768未満のはずなのに、なぜか以上で読み込んで欲しい画像が読み込まれとる👴🏻
Safariだけでない、Chromeも、、、
この件について、明確な原因はわかってないし、調べ方がわかんなかった。エミュレータならいけるっぽい。
ランドスケープ時にはルートのフォントサイズが変わるってことなんだろうな、とか思ってた。だけど実はremは問題なく動く。これは一体、、、
まぁそういうわけで、とりあえずpxを使っとこうぜという話でした。

<picture>
  <source media="(max-width:767px)" srcset="img-sp.jpg">
  <source media="(min-width:768px)" srcset="img-pc.jpg">
  <img src="img-pc.jpg" alt=""><!-- IE用 -->
</picture>

はい。

2Dのメタボール(Metaball)理解した

2Dのメタボール(metaball)について理解した。

メタボールっつーのは何かと言うとこれです。写経したやつだけど。
(PCで見てくれよな!)

See the Pen metaball canvas by bom_phage (@bom_phage) on CodePen.

メタボールというか、こういう滑らかにくっつく表現やりたいなーと思っていて、調べてたけどどうにもよくわからないでいた。特によく出てくるのはSVG filter使うやつ。liquid みたいな言葉で検索するとよく出てくるけど、とにかくパフォーマンスが悪い。ほんでSVG filterに対する知識があんまりないので、???みたいな気持ちになってた。

ちょっと間忘れてたけど、思い出してふとやってみるかということになって写経したところ、ばっちり理解した。

原理

上述のcodepenのやつだと若干実装が違うんだけど、ポイントは

  • 不透明度の円形グラデーションを複数用意する(中心は不透明度が高く、外側に行くにつれて透明)
  • ある値(閾値)以下の不透明度の場合は不透明度を0にする(透明にする)

の2つ。これをやるとメタボールみたいに境界がぬるっとした感じの描画になる。
例えば、中心から外側にrgba(0, 0, 0, 1) => rgba(0, 0, 0, 0)というグラデを作って、描画時に不透明度0.95以下の部分は rgba(0, 0, 0, 0)にしちゃう感じ。 そうすると不透明度1 〜 0.95の部分だけの円ができる。 これが複数個集まると、重なる部分は不透明度が足し算されて、円と円の間の部分に不透明度0.95を超える部分が出てきて境界が滑らかなる。 => メタボール!という感じ:sun_with_face:

まぁそれはそうだがそれはどんな風に実装すんねんっていうのを下に書いとく。
実際触ると一目瞭然だと思うし、canvascssfilterで実装したやつを用意している。

実装

canvas

canvasの場合は、表示用と描画用の二種類のcanvasが必要になる。描画用の方にradialGradientでぼかした円を描画して、その内容を表示用のカンバスにコピーする。そのときに不透明度が閾値より低い部分は透明にすることで、メタボールが描画できる。
この実装ではTHRESHOLDという定数が閾値(初期値210※1)になってるのでここを10とかにしてもらうとボケた円がでてくる。
※1 canvasの場合透明度の範囲も0〜255

See the Pen metaball canvas2 by bom_phage (@bom_phage) on CodePen.

◆前述の実装との違い

実装見てもらったら話は早いけど、描画用のcanvasからgetImageDataで全ピクセルの情報を取得している。その時、ピクセルのデータは1pxずつrgbaという順番で配列に格納されている。
前述の実装の場合はコピー時にその全データに対して、閾値より低い場合に0を与えている。これだとrgb閾値以上でないといけなくなってしまう。それだと色に限りがでてしまって困る。
そういうわけでaの値のみ評価するようにしたのが後述の方。そっちのがforが回る回数も少なくて済むし、いろんな色がいけるぞ。

CSS filter

cssでもやってること一緒。円にblurをかけて、描画領域のcontrastを上げることで、不透明度の低い(コントラストが低い)部分を飛ばしている感じです。でもCSSだとcontrastをあげる都合上、パキパキしたのしかできないし、色の自由度が著しく低いと思う(解決方法がわからん)。
しかもcssfilterめっちゃ重い!!

See the Pen metaball by bom_phage (@bom_phage) on CodePen.


はい

そういうわけで実装するならcanvasでやりましょう!原理がわかれば無限に応用効くと思うし、いろいろできそうでワクワクするぞ!!
3Dも理解できるように頑張るぞ!

See the Pen metaball particles by bom_phage (@bom_phage) on CodePen.