投稿日:

結論から言うと、最高にエモい。エモいって言葉で片付けられるレベルじゃないほどにエモい。それほどまでにエモさを詰め込んだ作品だった。ネットミームを始めとした様々な概念が非常に多く詰め込まれた作品で、恐らく2000年代前後にネットの世を生き、オタク活動に浸っていた世代に全方面から刺さる内容になっている。なんというか、ネタのショットガンみたいな感じで、守備範囲が広ければ広いほど刺さって致命傷になる感じ。

しかも本作はスタジオコロリドの制作だが、スタジオコロリドの作風がやや苦手な自分でも、とても良く観られた。これは恐らくツインエンジンとの共同制作であることが理由として大きいと思う。ビジュアル的にはツインエンジンの風が強く、キャラクター性に所々コロリドみが出ている印象で、完成度が非常に高い。予告放送で見ていた通り、コロリドとツインエンジンのタッグによる未知の化学反応を得られた形だ。

作品のベースは竹取物語そのもので、つまり本作は2000年~2020年代にかけてのネットミームを竹取物語にミックスした作品だと言える。筋書きとしては、鉄腕アルバイターである主人公いろはのもとに突如として、七色に光るゲーミング電柱が現れ、その中からかぐや姫が誕生し、主人公は激務と学業とMMORPGと推し活の合間を何とか縫ってかぐや姫を育て、やがてかぐや姫はVTuberとなり人気を博し、多くのプレイヤーから求婚され、最後にはVR世界で最高峰に立つプロゲーマー集団のブラックオニキスのリーダーであり、いろはの兄でもある、帝アキラから求婚され、最後は月に帰ってしまうが、最後には地球に帰ってきて、富士山に登るというのが、大きな流れだ。

これは大まかにWikipediaにある竹取物語のストーリーに一致する。これからは昔話を現代化したアニメが流行るかもしれない、本作はそんなポテンシャルを持った作品だと思った。しかも内容を咀嚼すると、かなりの解像度で竹取物語が組み込まれていることも判るので、非常に面白い。

主人公は、酒寄彩葉、作中では「いろは」と呼ばれ、「いろはと呼ぶべし」とされるキャラクターだ。毒親と縁を切り自分の力で生きることを選び、映えないボロアパートに住み、鉄腕アルバイターとして東大進学を目指している才色兼備の学生だ。日々アルバイトをこなし、予習・復習・模試をこなし、更にMMORPGでプロゲーマー級の腕を振るいながら、推し活に興じる、過労死しそうな若者である。ぶっちゃけ、最高すぎる設定だ。

ヒロインとなるのはかぐや姫である「かぐや」で、先述した通り七色に光るゲーミング電柱から生まれた女の子だ。かぐやは赤ちゃんから始まり、一週間くらいで高校生の体形と知能を手に入れるというすさまじい速度で成長していく。原作の竹取物語では三ヶ月ほどで妙齢の娘になる設定だが、、本作では「何もかもすべてが早えー」ので一週間で妙齢になる。性格は破綻気味で、完全なるトラブルメーカーである。最初は泣きわめくだけ、駄々をこねるだけ、いろはの稼いだ貴重な金を溶かすだけ、部屋を荒らすだけ。もう最悪だ、最悪なのだが、これがいい。ちなみに本人に自覚があるのも最高だ。

しかし成長に伴い、かぐやは自分で料理ができるようになり、片づけをし、金銭管理を身につけ、周囲への配慮も覚えていく。そしてライバーとして圧倒的パワーで稼ぎ始める。これは原作における「かぐや姫の神異によって竹取の翁が富み栄えたという」設定に一致し、かぐやのライバー収益でいろはがタワマンに住めるようになるという形で再現されている。いろはのバイトがどうなったかの描写はないが、既にバイトに行っている雰囲気がないので、辞めたのではないだろうか。そもそもいろはは最初タワマンに住むことに対し「あぶく銭」「人としておかしくなる」とか言っていたのに、結局住み着いてる辺りがいい。

二人の関係は親子のようでもあり、姉妹のようでもあり、相棒のようでもある。いろはにとっては迷惑な存在だったかぐやが、いつしかかけがえのない存在に変わっていく過程が、この作品の情緒の核だと思う。ドタバタギャグコメディーの皮をかぶりつつ、その温度感はシリアスでもあり、個人的にはゾンビランドサガ ゆめぎんがパラダイスに通じるものを感じた。この関係性はエモさの一つだ。

作品の世界観としてはVR世界を非常に意識しており、SAOやVRChatは間違いなく意識されている作品だと感じた。SAOで周囲を取り巻くエラー画面みたいなやつも出てくる。恐らくMMORPGプレイヤー、特にSAOが好きだった層には刺さるのではないだろうか?少なくとも私は刺さった。正直、この題材で新作が出てくるとは夢にも思っていなかった。今ならeSportsなのでVALORANTやFortniteだろうが、本作ではMMORPGに寄っていた。一応ちょこっとだけFPS的なシーンも出ては来るが…。また、かつて社会問題になった子供部屋おじさん的なMMORPG廃人もシーンとして出てくる。

ただSAOのようなヘッドマウントディスプレイはなく、作中のVRデバイスはディスプレイがコンタクトレンズ式で、コントローラーはリングのないOculus Rift Sみたいな感じだった。ただ後半はコントローラーがないように見えたので、SAO的に脳波でも操作できたのかもしれない。謎。

VRの世界観としてはツクヨミという世界が設定されており、月見ヤチヨというAIによって管理されている設定がある。ツクヨミの中では「ふじゅう」という通貨が流通しており、これは現実でも使える、RMTとしても機能しているようで、プロゲーマーやライバーなど一部の人間はこれで生計を立てているようだった。主人公であるいろはも、かぐやの圧倒的な稼ぎでタワマンに住めるようになる。

作品の時間軸としては月の満ち欠けも重要で、一回目の満月でかぐやが月に引き戻されそうになるが、これはヤチヨによって阻止される。そしてかぐやは次の満月で月へ帰ることを決意する。いろはや、その仲間たちは結託し、これを阻止しようと月の使者に対して抵抗するが、抵抗むなしく、かぐやは卒業ライブを敢行し、最後には羽衣を着せられ、意思を失い、月へ帰ってしまう。この流れは現在のVTuberそのもので、とてもいい。

原作であればここで終わりだし、本作でも終わる。ここで安っぽいエンドロールが流れはじめ、作品は終わりを迎える…かのように見えて、エンドロールは即座に消え、「この物語には続きがある」という天の声とともに、物語が原作を逸脱し強制進行する。安っぽいエンドロールの時点で察しはつくが、ここまで大胆な演出をする作品は過去にみたことがなく、非常に感銘を受けた。

後日、いろはがかぐやの残したブレスレットに歌を吹き込む。この歌声が月へ届き、かぐやは地球へ戻ることを決意する。しかし、かぐやが地球に来れるようになったときには、あまりにも時間が経過しており、かぐやは時間操作で元の時空へ戻ろうとするが、地球へ戻る航行中に不慮の事故で8000年前の地球に戻ってしまう。ここで出てくるピクセルムービーも非常にエモエモで、見ものだ。

地球についたときにかぐやは本体を具現化する能力を失い、ウミウシの体で活動するようになり、世界各地で神として運命を左右しながら、現代に戻り、VR世界ツクヨミを創造し、自身は月見ヤチヨと名乗り、いろはを待ち受けるようになる。そう、この時点でいろはとかぐやの居た世界線と、ヤチヨの世界線は競合関係にある状態になってしまっているわけだ。得体のしれない神として世界を旅するウミウシも神秘的でよい。

そして何よりエモいのが、作中ではかぐやの曲はいろはが過去に作った曲なのだが、かぐやの卒業ライブの時にいろはが過去に父親と一緒に途中まで作ってそのまま放置されていた曲をベースに作り直すことになる。そしてこの曲のメロがヤチヨのレビュー曲であるRememberと同じであったことだ。作中でいろはがヤチヨに対してRememberを歌わないのか?と聞き「あれはもう使命を終えた」のように語るシーンがあったが、恐らくいろはに伝えられたから役目を終えたということなのだろう。そしてRememberというタイトルも、いろはに思い出して欲しかったのだ。そして、いろはは思い出した。そして卒業ライブの曲はできた。8000年の時を超えていろはは思い出したのだ。

本作のエモさはこれだけにとどまらない、こんなのは氷山の一角で、作中には様々なネットミームや懐かし要素が散りばめられている。

そこで、以下に私が感じ取った様々な概念を列挙してみた。

  • VRChatのような世界感
    • VRの仮想世界、作中ではツクヨミと呼ばれている
  • VRMMORPG
    • VRChatのような世界観の中にMMORPGがコンテンツとして組み込まれているような感じ
  • Vocaloid
    • 本作の劇中歌にはボカロ楽曲が多く用いられている
  • AI
    • 主要キャラクターの一人であるヤチヨはAIであると説明されている
  • VTuber
    • 作中ではVTuberが非常によく出てくる
  • 推し
    • VTuberがいれば推しの概念も当然ある
  • リアルライブ(ホログラム?)
    • ホログラムを使ったVTuberのリアルライブらしきものが出てくる
  • VTuberのファンカード
    • VTuberがいればファンカードもある
  • ねこみみメイド女装子(男声、一人称オレ、ぴえん、舌出しのあざとい表情)
    • 性癖破壊モンスター。長くなるので後述する
  • プロゲーマー・プロゲーマーユニット
    • コンビニなどで見かけるプロゲーマーのユニットが存在する
  • 双剣
    • みんな大好き、MMORPG最強武器、双剣。もちろん主人公の装備だ
  • ジョブロールによる行動制限(スキル)
    • MMORPGに存在するジョブロールのようなものが存在し、それぞれのロールによって隠密行動の可・不可などが設定されているようだった
  • 関西弁
    • 主人公一家の状況前のシーンで関西弁が出てくる
  • 和風
    • 雑に言うとシロガネを大規模化して電子感を強めた感じ。千と千尋の神隠し的な光景に見えなくもない
  • 西松屋
    • 関西弁と関係あるかは不明だが、西松屋が出てくる
  • 立川市
    • 舞台は立川市らしい
  • ガールミーツガール
    • 本作はボーイミーツガールならぬ、ガールミーツガールだと思う
  • 卒業(概念)
    • VTuberによくある卒業の概念があった
  • 卒業ライブ
    • 卒業があれば卒業ライブもある
  • 転生の概念
    • 卒業があれば転生もする。これはかぐや→ヤチヨを転生として扱った場合の概念であるため、人によって解釈が分かれるかもしれないが、概念的にはあると言えるだろう
  • ビートセイバー
    • あからさまにビートセイバーをしている光景が出てくる
  • タイムリープ
    • 作品的にタイムリープの場面があるわけではないが、設定的にはカグヤが同じ世界線で永遠に同じ時系列のループをしていることについての言及があったため
  • 並行世界
    • 恐らくカグヤがタイムリープを続ける時空と、そこからいろはが抜け出した時空の二つがあると思われる
  • たまごっち
    • たまごっちのようなものが出てくる
  • サカバンバスピス
    • サカバンバスピスのドローン花火が見える
  • ドローン花火
    • いろいろ形を変えるドローン花火が見える
  • マイクラ
    • 鳥居の明かりが明らかにマイクラの顔のアレに見えるシーンがある
  • FXで有り金全部溶かす人の顔
  • スマホの防水ケース
    • スマホが出てくる作品は数多くあれど、防水ケースが出てくるケースはあまり多くないと思う
  • ギャルファッション
    • 平成のギャルファッション
  • ルーズソックス
    • 平成のギャルファッションがあればルーズソックスも出てくる
  • スーパーマリオ(ファミコン世代)
    • ファミコン世代のスーパーマリオを意識したゲーム画面のようなシーンが出てくる
  • 太陽の公園にあるっぽい城
    • ノイシュヴァンシュタイン城の可能性もあるが、西松屋繋がりで太陽の公園の写真をモチーフにしているような気がした
  • 毒親気味の面倒な家族
    • 身体的虐待まではいかないが精神支配をしてくるタイプの厄介な毒親が登場する
  • 両国国技館
    • VR世界のライブステージが両国国技館の下層の床を抜いたような感じの構造
  • JR東日本E233系電車
    • 立川市が舞台なので立川市を走る鉄道車両が登場する
  • 富士山
    • かぐや姫なので富士山が出てくる
  • 富士山本宮浅間大社
    • 浅間大社らしきものも出てくる
  • タイムカプセル
    • 富士山の地面を掘ってタイムカプセルらしきものを取り出すシーンがある
  • ピクセルアート
    • ドット絵というよりピクセルアートというべき要素が所々で出てきてとても良かった
  • ET(映画)
    • ETの満月を背景に自転車を漕いで空をかけていくアレが出てくる
  • おぱんちゅうさぎ
    • おぱんちゅうさぎのオマージュの様なものが出てくる
  • ナナヲアカリのMV
    • っぽいものが出てくる
  • SAO
    • を彷彿とさせる要素が出てくる

ねこみみメイド女装子(男声、一人称オレ、ぴえん、舌出しのあざとい表情)については書ききれなかったのでこちらで書く、正直性癖破壊モンスターなのは間違いないし、間違いなくこの作品の裏主人公であることは想像に難くない。

キャラクターとしては駒沢乃依、基本的に乃依と呼ばれているキャラクターだ。Black onyXのメンバーで弓使いとされ、容姿は色白の肌に、黒とピンクを基調とした地雷系ツインテールで、服装は和風テイストの生足むき出しミニスカメイド服という、最強属性全部盛みたいなえげつない出で立ちをしている。アバターは男性らしく胸はツルペタで、体つきもがっしり目で男性を意識したキャラデザになっているように見えた。また腰に巨大なチャクラムを装備することがあり、投げて武器にするのはもちろん、やけに扇情的にフラフープのように回したりしたり、とにかく狙っている。しかも鑑賞者を堕とす方向で、確実に、精密に狙ってきているのだ。

それだけに?乃依の射撃は精密で、ヤチヨに「げに恐ろしき狙撃能力」と言わしめるほど高精度な遠距離攻撃を行える能力もある。

ぶっちゃけ、ねこみみメイド女装子アバターの男性プレイヤーが男声の一人称オレで始まる時点で、オスむき出しのネカマがキマりすぎてて脳がおかしくなりそうだが、更に舌出しのあざとい表情をしたり、ぴえんとか言ってきたりするのも破壊力があるし、何より極めつけは「オレって今日も作画良すぎでしょ」(バチコーン)なんてシーンまであり、余りにも破壊力がありすぎて死んでしまう。死んだ。

他にも一番最後にある、いろはが科学者になり、リアルアバター(アンドロイド)として、かぐやを降臨させるシーンでは、ツクヨミ内のアバターをリアルでも欲しがっており、こいつ…!となるので面白い。

正直、ここまで盛られていると乃依によって情緒と性癖を破壊される人が続出しないか私は心配で心配で夜も寝られてしまうほどだ。

Wikipediaの超かぐや姫!でも乃依のところだけ異様に書き込み濃度が高くおかしなことになっていることから、乃依の異質さがうかがえる。

他にもLive2Dによる配信シーンがあったり(劇中には実際にLive2Dが使われているようでクレジットされている)、劇中のライブシーンや戦闘シーンが手書きアニメーションだったりして、全体的にクオリティが高い。ツクヨミの背景には3Dが多用されていたが、キャラクターの3Dモデルはかなり少なかったように思う。その関係か、動きの激しいシーンはカットが目立ち、例えばライブの躍動的なダンスシーンは非常に尺が短かった。

主人公の座席配置が教室の最前列中央であることも珍しく、絵作りやキャラの言い回しなども、どこか懐かしさを感じる演出から、目新しいものまで幅広く、セリフ面でも「クソマヂー」「いや、あぢー」といったお淑やかさの欠片もない発言があるのも本作のエモさを際立てていると感じたし、各キャラごとに異なる特徴的なアイシャドウなど、もうエモさを挙げていけばきりがないほどだ。

他にも現実パートとツクヨミパートでキャラデザが異なるのも面白いところだ。複数作監がかかわる作品で作業分担の都合上、作画が激変する作品はトラペジウムやSAOPなどであったが、明確な意図をもって画風が変わるのは非常に新鮮だと感じた。それもそのはず、現実の人間とゲーム内のアバターでは見た目が違うことは必然なのだから、これは当然のことだが、ここまでこだわっている作品は中々ないと思う。

それとラストシーンでBlack onyXのメンバーのリアルが全員腐女子向け作品の男性キャラ風に描かれていたのも感銘を受けた。いったいどこまで属性を盛れば気が済むのかと…!

何より最後に出てくる「あなたの物語」という言葉で、私は崩御してしまった。そう、この物語はいろはとかぐやの成長と、それを見守っていた作品の外にいる私たちにさえ語り掛けてきたのだ。つまり次は私たちの番ということだ。これこそが「この物語には続きがある」の本懐であるといえよう。

あとがき

私は普段封切日に映画を見ることにしているのだが、本作はそこから遅れること三週間、2026年2月20日公開を3月13日に観てきたので、作品によっては上映終了になっていても不思議がないほど間隔が空いていたが、幸い上映があったので干渉することができた。鑑賞体験としては非常に満足のいくもので、封切一週間目に席が全部埋まっていたのも納得の内容だった。

理由としては転職活動が忙しくそれどころではなかったというのが言い訳だ。そもそも本作はネトフリ映画の上、一週間限定だったので、本来観れないはずだったが、延長上映していた関係で観ることができた。不幸中の幸いというやつだ。

アースシネマズ姫路
三宮まで戻れる電車は消えていた。あと5分早ければ乗れたので惜しかった…
やむ無く姫路泊をした時のホテル。安定のダイワロイネットホテル

しかもOSシネマズ神戸ハーバーランドは三週間目も満席が続き見れなかったため、アースシネマズ姫路まで足を運んで観たほどだ。しかも尺が非常に長い作品だったことが災いし、現在時刻を深く考えず、のんびり目に動いていたら終電に間に合わず、姫路に宿泊して翌日も観たとかいう、まぁまぁおかしい体験をした作品になってしまった。

また本作はOSシネマズ神戸ハーバーランドでグッズが一度完売していたのだが、再入荷されるという異例の状況にもなっていた。私は映画グッズの再販は珍しいと考えていて、バルト新宿など、東京の超大手館での事例は知っていたが、まさか神戸で再販があるとは思わなかったので、非常に驚いた。

またネトフリ映画が延長上映されるのもネトフリでやらんでいいのか?と思うので面白いなと思っている。

本作はWikipediaによると、予約開始と同時に全国各地の劇場にアクセス集中し、サーバーがダウン。わずか数時間でほぼ全ての上映館で公開初日の上映が満席となる事態となり、作中の舞台にもなった立川シネマシティでは急遽、公開2日目の2月21日にオールナイト上映を実施。23:40回と26:45回が追加される形となり、会員・一般同時で公開前日の19日24時より予約受付を開始したが、わずか数時間で全回満席となったなど、異例の超動員を記録し、全国19館での公開だったにもかかわらず、動員14万8067人、興行収入2億9122万2700円を記録し、興行通信社の調査による全国映画動員ランキングで初登場5位、ミニシアターランキングで初登場1位にランクインしたとされる。特に初日は着席率が96%に達し、上映20館以下での全国映画動員ランキング入りは2018年の『カメラを止めるな!』以来約8年ぶりとなるとのことで、かなりの快挙だったようだ。

更にこの反響を受け、公開4日目の2月23日には上映館が8館追加されることが発表され計19館になり、更に3月5日になると100館以上に拡大することが発表された。この勢いであれば封切上映終了後のセカンド上映も十二分に期待できそうだ。3月15日までの公開24日で、興行収入は11億1638万円となり、Netflix発のオリジナル映画としては史上初となる興行収入10億円突破の快挙となったそうで、本作のすさまじさがよくわかる。

ただ流石に3月18日現在では盛況具合は落ち着いてきており、現在では満席とまではいかない程度には落ち着いているようだが、それでも平日の昼間でアースシネマズでは8割の席が埋まっているようで、一体どこから人が湧いてくるのか、大変興味深い作品でもある。とはいえ、本作はそれだけのポテンシャルを持った超大作なのはわからなくもない。まさに作中でヤチヨが言う「感謝!感激!雨アラモード」あふれる勢いだといえよう。

また、以前最近見かけた面白いサービスやホームページで「ヤチヨの部屋 - Yachiyo's Room」というホームページを紹介したときにヤチヨって誰だ?と思ったが、恐らくこれは月見ヤチヨが2003年時点の設定でファンが作ったファンサイトだと思われる。劇中ではトップページしか出ていないが、このホームページは中までよく作りこまれており、非常に素晴らしい。しかも日々更新されていて、地味にコンテンツが増えているほか、ちょっとした交流コンテンツもあるという神ホームページだ。何より凄いのは作者が韓国人であろう点だ。つまり、超かぐや姫!は日本を飛び越え、韓国まで行ったのだ。嗚呼なんということだ…!

あとOSシネマズみたいな狭い箱で見るより、アースシネマズ姫路のようなデカい箱で観るのがいいと思う。なぜなら劇中歌のシーンは非常に躍動的だし、ライブ感が味わえるので、音がよく、大画面の方が没入感が味わえると思うからだ。

個人的に超かぐや姫!は今年の最高作になるのではないかと思っている。例年であれば最高作は年の後半に来がちだが、去年のメイクアガールといい、前半にシフトしてきている感じもしていて、読めなくなってきている。また、私は普段興行収入が振るわないニッチ作品を好きになる傾向が強いのだが、超かぐや姫!は例外中の例外といった感じで、そちらにも衝撃を受けている。見る作品を選んでいるため、別に6000人アニメ映画族[1]と言う訳ではないが、一翼を担っている自覚はある。

これだけ書いても全然足りないくらい本作はメタい要素が多く、非常にエモく、言語化しようにも情報量が多すぎる作品なので、間違いなく劇場で観る価値のある作品だと思う。非常に情報量と熱量がある作品だし、これだけの要素をきれいにまとめ上げ、終わりもすっきりしている作品は中々ないと思う。本当に後味が非常に良かった。

最後に個人的に最も刺さったシーンであるワールドイズマインの劇中シーンと、終盤のMVの二つを置いておく。もうこの二つだけでも最高だ…。


  1. どれだけ売れないアニメ映画でも初週観客動員数が約6000人程度あると言われており、逆説的にどんな作品でも観る固定層のこと
投稿日:

デスクチェア探しに一区切りがついたで、やや心残りな結果になったを何とかした話。

いい感じのオフィスチェアが欲しいオフィスチェア(EX338 GTS129 BK)が座高が低いことと、後ろに倒れていることを問題にしていたが、もしかしたら座高が上がれば使えるのではないかということに気が付いた。

ということで、LIFELEX ゆったりレザー調チェア ニネヴェの座面をシリンダーから抜き取り、オフィスチェア(EX338 GTS129 BK)の座面と交換したところ、ぼちぼちハマった。

元々使っていたNシールドカルカと並べてみたところ。座高はばっちりだ。

比較すると、やはり背もたれがやや後ろに倒れているし、座面も前が盛り上がり、後ろに流れているが、深く腰掛けなければなくはない感じ。

どうしても元の椅子とは違うので百点満点とはいかないが、LIFELEX ゆったりレザー調チェア ニネヴェと比べると大分マシだし、最悪元の椅子が修理不能だった場合でも使っていける感じはするので満足だ。

更新日:
投稿日:

一般的な日本の名刺(縦向き)を作った時の作業ログ。

確認環境

Windows 11 Pro環境下の、以下のバージョンで確認。

  • Inkscape 1.3.2 (091e20e, 2023-11-25, custom)
  • Inkscape 1.4.3 (0d15f75, 2025-12-25)

手順

1. Inkscapeを起動し、テンプレートから名刺を選ぶ

印刷→名刺を選択。

サイズ選択ダイアログが出るので91x55mm (日本)を選ぶ。

2. 制作画面に遷移し、基本設定を行う

制作画面に遷移したら、ファイル→ドキュメントのプロパティを開く。

枠→影を表示をOFFにし、方向を縦にする。

3. 外枠を作る

矩形ツールで用紙ぴったりの矩形を作る。

矩形を選択したままメニューからオブジェクトを開き、オブジェクトをガイドにする。

これによって外枠に背景などを吸着できる状態になる。

4. 余白を作る

一般的に紙の縁スレスレまで文字を入れないので余白を作る。

矩形ツールで矩形を書き、外周5mmを余白にするため、上部のバーから矩形のサイズを50x86mmにし、右の整列と配置からページ基準で上下左右中央寄せに配置する。

外枠を作った時と同様に、矩形を選択したままメニューからオブジェクトを開き、オブジェクトをガイドにする。

ここまですると作業ベースができる。

5. 名刺本体を作る

ここまで出来たら後は名刺本体を作るだけなのでいい感じに作っていけばよい。

6. 名刺を印刷できる状態にする

右パネルのエクスポートタブを開き、PDFに設定する。

歯車ボタンをクリックし、テキストをパスに変換にチェックを入れる。

エクスポートボタンを押すとPDFが出てくるので、これを印刷するなり、名刺屋に持っていけばよい。

7. 作業ファイルの保存

作業ファイルはInkscape SVGとして保存できるが、一般的にブラウザが扱うSVGとの互換性はないため、ブラウザで開くと崩れることがある。

またInkspace上のレイヤーデータなどが保持されていて極めて冗長であるため、Web用に使う場合、中身を適当にいじってゴミを消したほうが良い。

トラブルシュート

絵文字に色がつかない

Inkscapeでは絵文字の色はサポートされていないようなので、SVGの絵文字を入手する必要がある。

絵文字が化けてもいいならパスに変換せずにPDFとして出せば色が付くが、この場合は絵文字の図柄は環境依存になるため、例えば名刺屋がmacの場合、見た目が変わってしまう。

Windowsの絵文字を使う方法

Windows標準の絵文字を使う場合、Character Map UWPというツールを使うことで取り出すことができる。

まずはインストールし、起動したら、フォント一覧からSegoe UI Emojiを選び文字コードで検索するなどし、絵文字を見つける。

次に右下の保存ボタンから「Save as SVG Image」の「Colored Glyph」を選ぶとSVGで出力される。

Googleの絵文字を使う方法

noto-emojiから文字コードでSVGを当てて拾ってくれば取得できる。

SVGの拾い方としてはLet's EMOJI辺りで使いたい絵文字を探してきて、文字コードで引っ掛けたら簡単に見つかる。

この二つの絵文字はライセンス上、ノークレジットで印刷利用が可能

フォントなのでライセンスが心配だが、noto-emojiであれば特に何も考えなくてよい。これは、noto-emojiがSIL Open Font License, version 1.1を採用しているため、クレジットの表記が不要であるためだ。

Segoe UI Emojiの場合も印刷に使う分には問題なさそうに見えるので大丈夫だろう。Claude Opus 4.6も大丈夫だと言っていたので、きっと大丈夫なはずだ。(まさかMSのライセンス条項でハルシネーションは起こさないだろう)

Microsoft supplied font. You may use this font to create, display and print content as permitted by the license terms, or terms of use, of the Microsoft product, service or content in which this font was included. You may only (i) embed this font in content as permitted by the embedding restrictions included in this font; and (ii) temporarily download this font to a printer or other output device to help print content. Any other use is prohibited.

openmojitwemojiはCC BY-SA 4.0やMIT、LGPL v3.0なので、クレジット表記が必須であり、名刺には向かないと思う。少なくともopenmojiにはクレジットの記載が明確に求められている

macOSでPDFを開いたときに絵文字の見た目が変わる

絵文字を文字ではなく、SVGとして入れれば解決する。

文字として絵文字を入れている場合に、Windows環境ではフォント埋め込みでPDF出力すると色付きの絵文字が出るので、一見これでよさそうに見えるが、macOSで開くと絵文字の形が変わってしまうので、SVGで埋め込む必要がある。

文字としての絵文字を「テキストをパスに変換」で出力すると白黒になるため、絵文字を本来の形かつ、色付きにしたい場合はSVGファイルを埋め込むのが最も無難と思われる。

どうしてもWindowsの絵文字を使いたい場合、グリフを抜いて自分で着色するか、模写するかになると思う。手軽な手段では超拡大したスクショを撮って縮小してごまかすのが無難だとは思うが、印刷時の品質は微妙になると思う。

ラスタイメージに角丸を付けたい

Inkscapeでオブジェクトをクリッピングする(角丸を付けたり、切り抜く)を参照のこと。

あとがき

今回はこれまでHTMLで作っていた名刺を、ある程度ちゃんとした環境で作ってみようということでInkscapeを使った挑戦をしてみたが、結果としてまぁまぁよかった気はする。まだ入稿してないのでアレだが…。

内容としては、今使っている個人用の名刺にはXやGitHubのこと、自分のスキルを書いているのだが、Xを使わなくなったことや、個人事業主でもないのにスキルを書いてもなぁ…?という部分や、名前やアイコンをもう少し大きくして目立たせたいなどがあり、今回作り直すことにした。

結果として、前よりは何が言いたいのかがわかる内容になったと思うし、名前とアイコンの主張度も上げられたと思う。そして今回はQRコードの変更もしたため、こないだ作ったQRコードジェネレーターも早速活躍してくれてよかった。というか、こいつはそのために作った部分が大きい。

これまでの名刺 今回作った名刺
今までの名刺
今回作った名刺

没にした名刺

おまけで、絵文字選定で最初Windowsの絵文字を使う方法が見つけられず、noto-emojiで作った時の名刺も没案として残しておく。

投稿日:

この記事ではラスタ画像に角丸を付ける方法について説明するが、切り抜くということであれば、その他も多分同じ要領でできる。

確認環境

Windows 11 Pro環境下の、以下のバージョンで確認。

  • Inkscape 1.3.2 (091e20e, 2023-11-25, custom)
  • Inkscape 1.4.3 (0d15f75, 2025-12-25)

やり方

  1. 切り抜きたい画像を配置する
  2. 切り抜きたい画像と同一サイズの矩形オブジェクトを重ねて配置する
  3. 矩形ツール状態で矩形オブジェクトを選択し、垂直半径を入力して角丸を付ける
  4. メニューからオブジェクト→クリップを設定
  5. 画像がクリッピングされる

元に戻す場合は、クリップを解除すれば元に戻る。

関連記事

最近二つほどツールを作り、Webツール置き場に配置したので、そこで得た学びや、作る時に意識したことについても書いてゆく。

ENV Checker

まずENV Checkerを作った話。

端的に言うとCyberSyndrome : ENV Checker - 環境変数チェッカーのパクリである。但しJSがないと動かない。

違いとしてはCyberSyndrome側で見れる情報のうち、ユーザー環境に起因しない情報を大幅に削り、ユーザー環境をメインに出せるようにしているほか、IPv4とIPv6の表示にも対応している。

作りとしては必要な情報を返すAPIを3つ用意し、ページを表示したときにJSがそれぞれを叩きに行き、その結果を表示している。

Get Enviroment APIはIPアドレス以外の環境変数を返却するもので、Get IPv4 APIはIPv4アドレスとホスト名、Get IPv6 APIはIPv6アドレスを返すように作ってある。

なぜこの様な分け方にしたかというと、Get Enviroment APIはIPのバージョンを問わない情報しか返さないが、IPアドレスまで返すようにするとIPv4に付随する情報やIPv6アドレスを返すことになるため処理が煩雑になる。

これは実装としてはCGIの環境変数をそのまま返しているのでREMOTE_ADDRに:が含まれているかどうかを見てIPv4か、IPv6かを振り分ける処理が必要になるからだ。

一方でGet Enviroment APIが環境変数だけを返すことに専念できるのならば、IPv4に付随する情報はGet IPv4 APIを叩けば取れるし、IPv6はGet IPv6 APIを叩けば取れるため、分岐処理が不要になる。

これによって各APIは単一の責務だけを持つことになり、コードの複雑化を回避できるといった寸法だ。この程度のシンプルな実装に求めることではないし、現状では無価値ではあるのだが、常日頃から意識することで、より複雑なものを作る時にも生かせるだろうし、将来何か改修するときにも作りが単純なほうが理解しやすいと思うので、こうしている。

IPv4とIPv6のAPIをどう分けているかというと、これはDNSレベルで解決している。Get IPv4 APIのエンドポイントにはAレコードのみを、Get IPv6 APIのエンドポイントにはAAAAレコードのみを設定することで、クライアントが接続する際に使用するIPバージョンを強制している。

こうすることで、各APIは単純にREMOTE_ADDRをそのまま返すだけでよくなり、IPバージョンの判定ロジックを一切持たなくて済むのが利点だ。欠点としてはAPIの数が一つ増えるため、管理コストは増えているといえるだろう。しかし分岐ロジックというのは往々にしてバグを生む存在であり、ないに越したことはないと思い、こういう設計にした。

また画面の描画をJavaScriptにさせているのも、こういったいわゆる関心の分離の思想によるところが大きい。やろうと思えばIPアドレス以外はCGIで表示して、IPアドレスのところだけをJSで書き換えることも、当然できる。出来るのだが、責務を分けるにはデータを返すだけのエンドポイントと、それを受けてJSで書き換える手法のほうが、より責務がはっきりしていて、わかりやすいのでこうしている。疎結合ということでもある。

項目値をダブルクリック・タップすることで値をコピーできるようにしているのも、地味だがこだわりポイントだ。

余談だが、先日Value-DomainでcertbotのDNS Challengeをやるスクリプトを書き直したのは、このドメインにTLS証明書を付与したり、DDNSできるようにする目的があったのが大きい。

というのも、このENV Checkerの開発にはipv4.lycolia.infoipv6.lycolia.infoというドメインが関係しており、私の自宅サーバーの環境はIPv4がコロコロ変わるためDDNSが必須だった。

私が利用しているDNSレジストラであるValue-DomainはDDNS用のエンドポイントがあるのだが、1回1ドメインしか更新できず、60秒に1度しか叩けないという制約があり、これを回避するためには、Value-DomainのDNS APIに対して、一回で複数ドメインのAレコードを書き換える必要があった。

また同時に、以前使っていた、TLS証明書更新ツールである、value-domain-dns-cert-register (vddcr)はNode.jsのアップデートなどに伴う頻繁なメンテナンスが必要だったり、動作検証不足があったり、様々な面倒ごとがあり、これ以上触りたくなかった

そんなこんなの流れがあり、ENV Checkerを作る中でOpenWrtからValue-Domainに複数サブドメインのDDNSを行うツールを作ったり、新たなTLS証明書更新ツールを作り、その検証をしたりしたのだ。

QRコードジェネレーター

もう一つはQRコードジェネレーターを作った話。

QRコードジェネレーターなどググれば無数に出てくるわけだが、意外と読み取り可能な最小サイズかつ、それをSVGで出力できるものを見つけることができなかった。そこで作ることにした。

とはいえ、作ったのはフロントエンドだけで、QRコードの生成自体はqrcode-svgを使わせてもらっている。これはこのライブラリのデモサイトで、理想の要件のものが作れることが分かったからだ。

なぜデモサイトで使えるのに、わざわざ作ったかだが、まずこのデモサイトでは最小サイズのQRコードを簡単に得ることが困難だったほか、256px以下のサイズにすることが想定されていないように見えたからだ。少なくともUIをクリックしてDIMENSIONを256px未満にしようとしても出来なかった。

また、デモサイトはいつか消える可能性もあるし、ブックマークするのも面倒なので、自分でホスティング出来るなら、それをするに越したことはなかったというのもある。

これを作っている中で得た学びとしては、カラーパレットの入力UIがWeb標準で可能になっていたことだ。そこら中で見かけるし標準であるんちゃうか?と調べたらあったので採用した。こういう複雑なものは昔であれば恐らく何かしらのライブラリを使うか、気合で作る必要があったと思うが、全く世の中は便利になったものだ。

また、こちらの実装方法については、HTMLの標準機能でカラーパレットを使ったカラーコード入力UIを作る方法の記事で紹介している。

他にもQRコードの周りには余白が必要ということも知れた。QRコードの開発元であるデンソーウェーブでは余白の求め方の計算式が解説されている。仕様上は適切な余白がない場合、読み込めない可能性があるようだ。これは恐らく周囲の図形とQRコード本体を光学的に分けて認識させるために必要なのだと思う。

なお、今回作成したQRコードジェネレーターには余白の自動調整機能は実装していない。理由は単純でサイズを自由に変えられる仕様上、帳尻をつけるのが面倒だからだ。要は手抜きである。

ついでにWebツール置き場の保守性や解りやすさを少し上げたりした

Webツール置き場のドメイン配下は元々全てペラのHTMLで実装していたのだが、ページが増えるごとに共通部分のhead要素の管理が煩雑になっていた。そこで、PHPに置き換えることにした。

結果として、以下のように、head要素の中身を共通化することができた。

まぁやっていることとしては高校時代にPHPで静的HTMLの内容を共通化していたのと何ら変わらないので、何故今更そんなことを…という感じだが、元々は静的HTMLで済むものは静的HTMLのほうが表示速度が速くシンプルでよいよなという意図で、静的HTMLにしていたのだが、数が増えてくるとそうも言ってられないということで対応した形だ。こういうのは事前に考慮しすぎると、早すぎる共通化やKISSの法則的なリスクを孕むと思っていて、定期的に振り返り、都度対応するほうが良いと感じている。いや、この程度の内容でそこまで考える必要はないと思うが…w

 <!DOCTYPE html>
 <html lang="ja">
 <head>
-  <meta charset='utf-8'>
-  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
-  <title>Slackのリマインダーコマンドを作るやつ</title>
-  <meta name="referrer" content="no-referrer-when-downgrade"/>
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta name="author" content="Lycolia Rizzim">
-  <meta property="og:image" content="https://tool.lycolia.info/slack-remider-creator/OGP.png">
-  <meta property="og:site_name" content="Lycolia">
-  <meta property="og:title" content="Slackのリマインダーコマンドを作るやつ">
-  <meta property="og:description" content="必要事項を埋めることでSlackの/remindコマンドを生成するやつ">
-  <meta property="og:type" content="website">
-  <meta property="og:image" content="https://tool.lycolia.info/slack-remider-creator/OGP.png">
-  <link rel="stylesheet" href="style.css">
-  <script src="check.js"></script>
-  <!-- Matomo -->
-  <script>
-    var _paq = window._paq = window._paq || [];
-    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-    _paq.push(['trackPageView']);
-    _paq.push(['enableLinkTracking']);
-    (function() {
-      var u="https://analytics.lycolia.info/";
-      _paq.push(['setTrackerUrl', u+'matomo.php']);
-      _paq.push(['setSiteId', '3']);
-      _paq.push(['enableHeartBeatTimer', 10]);
-      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-    })();
-  </script>
-  <!-- End Matomo Code -->
+<?php
+require_once('../template.php');
+
+renderCommonHead(
+  thumbnail: 'https://tool.lycolia.info/slack-remider-creator/OGP.png',
+  title: 'Slackのリマインダーコマンドを作るやつ',
+  description: '必要事項を埋めることでSlackの/remindコマンドを生成するやつ'
+);
+?>
 </head>

template.phpの中身

関心ごとに関数を切り分け、呼び出される側は呼び出す側に依存するように設計することで、親が子の変更に引きずられないように保守性を意識した設計にしている。他にもほとんど固定値であるものについては運用を平易にする観点からOptional化して、初期値を設定している。

<?php

function buildMatomo() {
    return <<<END
  <script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="https://analytics.lycolia.info/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '3']);
      _paq.push(['enableHeartBeatTimer', 10]);
      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>

END;
}

function buildCommonMeta(string $title, string $thumbnail) {
    return <<<END
  <meta charset='utf-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <title>$title</title>
  <meta name="referrer" content="no-referrer-when-downgrade"/>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="author" content="Lycolia Rizzim">
  <meta name="thumbnail" content="$thumbnail">
  <link rel="icon" href="https://lycolia.info/assets/brands/lycolia-32x32.png" sizes="32x32">
  <link rel="icon" href="https://lycolia.info/assets/brands/lycolia-192x192.png" sizes="192x192">
  <link rel="apple-touch-icon" href="https://lycolia.info/assets/brands/lycolia-180x180.png">

END;
}

function buildOG(
    ?string $thumbnail,
    ?string $site_name,
    ?string $title,
    ?string $description,
    ?string $type
) {
    $tags = "  <meta property=\"og:type\" content=\"$type\">\n";
    $tags .= "  <meta property=\"og:site_name\" content=\"$site_name\">\n";

    if ($thumbnail !== null) {
        $tags .= "  <meta property=\"og:image\" content=\"$thumbnail\">\n";
    }
    if ($title !== null) {
        $tags .= "  <meta property=\"og:title\" content=\"$title\">\n";
    }
    if ($description !== null) {
        $tags .= "  <meta property=\"og:description\" content=\"$description\">\n";
    }

    return $tags;
}



function renderCommonHead(
    ?string $thumbnail = 'https://lycolia.info/assets/brands/lycolia-OGP.png',
    ?string $site_name = 'Lycolia.info',
    ?string $title = null,
    ?string $description = null,
    ?string $type = 'website'
) {
  $head = buildCommonMeta($title, $thumbnail);
  $head .= buildOG(
    thumbnail: $thumbnail,
    site_name: $site_name,
    title: $title,
    description: $description,
    type: $type
  );
  $head .= buildMatomo();

  echo $head;
}

また他にも、ドメイン直下にあるページの構造を見直した。

具体的にはulとliでリストにしていた部分をdl dt ddに直し、各ツールの内容を少し解りやすくした。ただ余りにも見た目が殺風景すぎるので、liに戻してカードUIをはめ込むようにするかもしれない。

変更前 変更後