iOSDC Japan 2025に参加してきた

もはや秋(?)の風物詩ですが、今年もiOSDCに参加してきました。

今年のiOSDCはこれまでと違い、早稲田大学からビッグサイト近辺の会場に引っ越しました。会場のすぐ近くにワシントンホテルという駐車場付きのホテルがあって、しかも早期予約のおかげで平均して1泊8000円ちょっとの非常にお得な値段で泊まれて、会場で何か忘れ物しても部屋に取りに行って会場に戻るのに10分もかからなくて、しかもなんと会場からビッグサイトが眺められるので、地方組の筆者には非常に満足度が高い会場でした。ただその代わり、最寄駅がゆりかもめりんかい線なので、東京組にとっては電車代が今までより多少高くなっているかもしれません…

あの逆ピラミッドを眺められる会場でのイベントに参加する日が来るとは思わなかった。

ホテルからりんかい線国際展示場駅も見れます

ホテルに駐車場もあるので原則車移動の筆者にとって非常に嬉しいです

ちなみに会場の中というと、今回は最近のiOSDCと同じく4トラックでトークセッションを開催し、そして一番メインの会場がトラックAですが、今回のトラックAルームが非常に大きく、今までのAルームとBルームを合わせるよりも大きいかなと感じます。ただその代わり、Bルームはまだそこそこ大きいですが、CルームとDルームは割と小さく、特にDルームは今までの最小記録かもしれません。そのため、トラックCとトラックDは割と満室になることがしばしばありました。一応その解決策として、CルームとDルームの間くらいの場所にサテライトルームが用意されており、満室になったトラックの中継をそこで行われる運用になっています。もし今後も同じ会場で開催されるなら、トラックCとトラックDの部屋の大きさは引き続き今後の課題かもしれません。

会場のボードやタペストリ

またトラックセッションの部屋内は、今までの大学キャンパスと違って基本椅子だけしか用意されていないです。ただPC広げてトーク聞きながらSNSで実況したりコード書いたりする人のために、最前列にテーブル席も部屋の大きさに応じて用意されており、筆者の経験ではほとんどの場合その数は十分でした。1回だけ、最終日のトラックAで開催されるLT大会の直前の休憩時間で一回ホテルの部屋に戻ったせいで、会場に戻った時はLT大会には間に合っていますが、テーブル席は満席でした。ただ今回の場合、テーブル席についての案内が不足してるではないか疑惑も筆者の中にあって、おそらく多くの方はそもそもそのテーブル席使っていいかどうか迷ってることも多いではないかと思います(実際テーブル席空いてるのに、椅子席で頑張って膝にPC広げて使う人もちらほら見かけたので)。来年以降の開催ではテーブル席の案内や確保も課題になるかもしれません。

テーブル席から見たトラックAの部屋の様子

今年は久々のなんの仕事もないごく普通な一般参加(区分上はパンフレット記事を寄稿したのでスピーカー参加となりますが)なので、トークセッションへの参加が一番多かったです。そこでかなり印象に残ったのは、今年はまつじさんのSlideKitを利用して作られたスライドが非常に多かったことです。特にかっくんさんの発表では、iPhoneでスライドを投影しながら、そのスライドの中にリアルタイムのiPhoneのカメラファインダー映像も組み込まれているのが非常にインパクトを受けました。

また自分も、せっかくなので今年は初めてアンカンファレンスの枠を取って、布教のためにパンフレット記事のハンズオン的なものを開催しました。どうしてもリアルタイムで聞きたいセッションが多すぎてなかなか空きをつかめず、最終的にはDay1の朝イチくらいの枠にしてしまったのでなかなか参加者が集まらなかったですが、まあそれはまた来年に向けての教訓としましょう(というより来年こそトークの応募が当選されますようにw)

アンカンファレンスルームでちょっと話しました。

というわけで、今年のiOSDCでした。本当は動画素材もいっぱい撮ったのでVlog作りたかったのですが、しばらく体力的に死んでいるので、それはまたいつかにさせてください。それではまた来年のiOSDCで会いましょう!

台湾のiPlaygroundに行ってきた

先週末の土日、台北にてiOSアプリ開発をメインテーマとした開発者カンファレンス「iPlayground」が開かれたので、行ってきました。

iplayground.io

余談

日本人と違い、筆者は中国人なので台湾に行くのはそれなりに面倒な準備が必要です。ご存知の通り現在面倒な「政治関係」のせいで、通常の「入国」とは違う手続きが必要です。まあ細かい話は割愛しますが、とにかくなんだかんだでその手続きをするために、筆者は渡航する1カ月以上前から準備していたので、物理的にも近いし、漢字文化圏だし、航空券一枚で簡単に台湾行けるんだから、日本人の皆さんは本当にどんどん行くべきだと思います。行かないのは本当もったいないです。

渡航当日

往復の飛行機は台湾のEVA航空を利用しました。特に行きの便は新型機のボーイング787でしたので、エコノミーでもそこそこ快適でした。何せ最近の機材らしく(Type-Aですが)USBの充電ポートまで備えているので、乗る前からビデオカメラでたくさん動画撮ってバッテリー残量がきつい筆者にとって、機内でモバイルバッテリーの使用が禁止されているなか席のUSB充電ポートは本当に助かります。

EVA航空BR105便のボーイング787

エコノミークラスの座席の様子

福岡空港から台北桃園国際空港までの飛行時間は2時間半くらいで、感覚的には沖縄に行くのと同じくらいかと思います。ただ桃園は成田と同じく、市内までそこそこの距離があります。快速電車で都心の台北駅までおおよそ1時間くらいかかります。

桃園空港から今回泊まるホテルまでの電車案内

そして最後ホテルでのチェックインが終わり、この日の夜は汁なしワンタンメンで締めました。

日本円で約400円、安くて美味しい。

イベント中

今回のイベント会場は国立政治大学公共行政及び企業管理教育センターで行われました。非常に立派な建物の中の2階(メイン会場)と6階(初日のアフターパーティー)を借りた感じです。

入り口のiPlaygroundの看板

会場の紹介スライド

iPlaygroundはtry!Swiftと同じく、ワントラックでたくさんのセッションを2日にぎっしり詰め込んだ感じです。デメリットはもちろん情報の密度が減りますが、その代わりiOSDCみたいにどうしても聞きたいセッションが時間被ってどっちか選ぶしかないみたいなハプニングがないので、事前予習する必要があまりなく気軽に参加しやすいです。

ちなみに今回日本からは @___freddi___ さんと @d_date さんの二人も登壇者として参加しています。今後も日本や他の海外からの登壇が増えるといいですね。(厳密には @vince78178 さんも一応「日本から」の登壇者ですが、まあ本人は日本で働いてるだけで、台湾生まれ台湾育ちの台湾人なのでw)

そしてセッションはすべて2階の講堂にて行われており、段差もあるので後ろに座ってもスライドが見えやすいです。ただちゃんとした机がなく、席には収納式のサイドトレーしかないので、パソコン1台だけならそれほど問題ないですが、同時にパソコンでスマホなどを充電したい時はちょっとケーブルとかの置き場がなくてちょっと窮屈ではあります。まあほとんどの参加者はパソコンすら出しておらず、セッションを聞くことに専念しているので、机がない分椅子の座り心地がよかったり席を跨いで移動しやすいのは、こういう大人数が入る講堂にとってより大事だったと思います。

360度カメラから見た講堂の様子

「スタートするには強強になる必要はない、強強になるにはスタートする必要がある」なかなか心に刺さった言葉です

他の登壇者から同じ趣旨の言葉。Start Small, Thing Big, Do It Now

廊下にAsk the Speakerエリアも用意されています。

最終日の最後にスピーカーとスタッフの集合写真も撮られました。

ちなみにiPlaygroundのチケットには食事も含まれており、お昼は弁当でした。

1日目のお昼の弁当です。骨付き鶏ももはなかなか豪快で美味しかったです。

2日目のお弁当です。エビフライもあります。

そして1日目の夜はアフターパーティーも用意されており、食事でみんなで親睦を深められるほか、実はなんか話したい人向けにLT大会も開催されました。

アフターパーティーの会場

ちなみに実は自分もLT発表しました。

speakerdeck.com

もちろん、せっかくの海外カンファレンスなので、みんなと写真もたくさん撮りました。

360度カメラがあると、こんな感じでみんなと写真撮れます。

何より嬉しいのは、撮った後写真整理する時このような面白い出来事も実は撮られたみたいなこともよくあります;ちなみにこちらのお兄さんは @hanyu_chen_ios さんです

今回日本から参加したメンバー:@___freddi___ さん、@Tatsuz0u さん、@d_date さんと筆者 @lovee です

台北の景色

せっかくの台北の旅なので、観光しないわけには行きませんよね。

個人的な台北のいちばんのお気に入りポイントは、ちょっと言葉にするのが難しいですが、中華圏の伝統的な文化がしっかり受け継いで、それをわざとらしくない形で自然と街に溶け込んでいるところかなと思います。某赤い政権の赤いスローガンまみれなところと違い、ちゃんと「カルチャー」というか、「これまでの何千年もの歴史の積み重ね」というか、敢えて中国語で表現するなら「底蕴」を感じるところが本当に好きで、「中国もあのおかしな20年がなかったらこうなっていたのかな」と妄想したり…おっと誰かが来たようだ(ry

中心地の台北駅内の看板

同じく台北駅内の「赤壁賦」の書道

今回の写真ではないが、以前桃園第一ターミナル利用した時に見かけた文学作品です。赤いスローガンまみれな中国の空港とえらい違くてこれこそが本来の中国があるべき姿では?という感想が自分の中の台湾の第一印象でした。

台北駅からちょっと離れたところですが、看板がいつも面白おかしくて、一部界隈で有名なアダルトグッズショップですw

そして実は今回滞在したホテルの近くから、有名な台北101も見えたりします

遠くに見えるあの台北101

2日目のイベント終了後に、@___freddi___ さんと @d_date さんと、try!SwiftやLet'sVisionなどの国際カンファレンスで同時翻訳サービスを提供してくれている韓国のFlittoの皆さんと一緒に台北の夜市にもお邪魔しました。

今回お邪魔した「饶河街观光夜市」の入り口です。福岡にもこんな賑やかな夜市ほしいよね。

夜市にあるクレーンゲームでは日本のアニメグッズも人気で、個人的にすごい好きな「おにまい」の妹こと「緒山みはり」ちゃんのフィギュアも置いてあります。

終わりに

以上、2025年のiPlayground参加エントリーでした。今回の参加でたくさんの刺激をいただきました。国は違えど、みんな似たようなトレンドや悩みを持ってるなと思いました。特に自分自身の課題を解決するためにアプリ開発を始めた方も多くて、そのアプローチや解決するまでの道のりにたくさん共感を持ちました。そしていちばん思ったのは、普段日本語でしか登壇しないせいで、母国語でのLTのはずなのに逆に日本語よりも躓いてるな嘆いてる自分に嘆いています(笑)。とても楽しいイベントでしたので、また来年もぜひ参加したいです。そして今度こそちゃんとした登壇をしたいですね💪

反戦か反戦敗か、それが問題だ。

本来ならあまり重い話はしたくないですが、いいきっかけではあるので、せっかくだから長年話したかった話題を振ってみようと思います。

先日、自分のTwitterでこんなツイートを呟きました:

おかげさまで何人かの友人からいいねをもらいましたが、このツイートがどれほどの重みを持っているのか、そもそもこれ何の話かすらわからない人もいると思います(と言うか実際いました)ので、ちょっと詳しく説明したいと思います。

日本人の皆さんが原爆と言うと、真っ先に思い浮かぶのは広島と長崎に落とされた原爆で、そしてその原爆によって犠牲になった多くの民間人のことでしょう。それは間違いありません、原爆はそれほど殺傷力の強い兵器です。だから原爆の悲劇を繰り返してはならぬ、原爆をなくすべきだ、戦争をなくすべきだ、と考える人も少なくないでしょう。そのモチベーションを「反戦」と自負する人も多いでしょう。「我が国の民間人がたくさんの犠牲を払いました。だから戦争してはならない」、と考えているのではないでしょうか。だからバービーの映画がオッペンハイマーの映画と掛け合わせた茶番に怒りを覚えたのではないでしょうか。

ところが覚えていただきたいのは、犠牲を払ったのは日本の民間人だけではありません。そもそも第二次世界大戦を仕掛けて、よその国を侵略したのはドイツ、イタリア、そして日本をはじめとした枢軸国です。その中でも、特に東アジア諸国に多くの残虐で非道な行いを犯したのは旧日本軍です。中国だけでも南京大虐殺事件や、731部隊による生物兵器の人体実験や実戦投入など、民間人の被害者の人数で数えるなら余裕で広島と長崎の原爆の被害者を超えるにもかかわらず、その侵略戦争の責任者であるはずの東條英機山本五十六が未だ靖国神社に合祀され、さらに安倍や小泉元首相は終戦記念日になる度に必ず靖国参拝をしていました。自国民の被害者を考えるのは一国のトップとしては至極当然のことですが、問題は自国の侵略行為による被害国の国民の被害者のことはまるで考えていない、「反戦」と称して本当はただの「反戦敗」、つまり戦争を起こしたことに対してではなく、戦争で負けたことに対しての反省しかしていないとしか思えません。だからあなたたち日本人の首相が靖国神社参拝するとき、我々中国人があれほど怒るのです。我々の先祖があなたたちの侵略によってあれほどの犠牲を払ったのに、あなたたちはいまだにその侵略戦争の責任者の拝んでいるからです。バーベンハイマーとかの茶番以上に気持ちとして許せないです。

そしてさらに深掘りしてみると、そもそも広島と長崎に原爆を落とさせたのはぶっちゃけ旧日本軍の軍部、すなわち東條英機山本五十六らと言っても過言ではありません。当時アメリカがそもそも戦争に手を突っ込みたくなかったにもかかわらず、頭沸いて真珠湾攻撃を仕掛けてアメリカに第二次世界大戦の沼に引き摺り込んだのが日本軍の軍部だったからです。あんな愚かなことやらなかったら原爆落とされたこともなかったでしょうに。だから恨むべき相手もアメリカではなく旧日本軍の軍部です。山本五十六です。少なくとも私が日本人ならそう思います。

最後ですが、一部のネトウヨは「中韓以外の東アジア諸国は日本の戦争を感謝している、日本のおかげで独立できた」と頭おかしい主張をしていますが、本当にそう思うなら実際に現地の友達作って聞いてみてはいかがでしょうか。マレーシア人でもシンガポール人でもフィリピン人でも。

まあ散々色々話しましたが、きっかけとしてはあくまでオッペンハイマーがいまだ日本で上映未定に対する不満ですけどね。

インターホンを Amazon Ring Doorbell 4 と Echo Show 15 で置き換えてみて満足した話

※本記事はアフィリエイト記事ではありません。ただ記事の流れとしてはやったことを順番に記しただけなので退屈かもしれません。

戸建を買いましたが、残念ながら最初からついてるインターホンはありきたりな Panasonic 製のもので、別に Panasonic が悪いわけではありませんが、ただローエンド機種ゆえピンポン押されても静止画しか撮れず、タイミングによっては押した人が全然写ってないこともあるので、割とかなり前からせめて動画が取れるものが欲しいと思いました。

そしてちょうど最近庭周りのリフォームを兼ねてインターホンの取り替えも(電気工事士の資格が必要のため)業者さんにお願いしていて、最初は普通に同じ Panasonic 製のハイエンド機種にすればよかったと思いましたが、そんな中たまたま AmazonRing Doorbell 4 というインターホン(以下 Ring と呼ぶ)を出してるのを見て、動画も撮れるし、なんならピンポン押される前から動きを検知して録画できるし、うちなんだかんだ言ってアレクサちゃんにお世話になっているし良さそうと思って購入しました。

ちなみに Ring の購入にあたってレビューを結構拝見してて、「バッテリーはついてますが常時電源にしないとタイムラグが結構ある」とのことでしたので、ちょうど電気工事士がいる業者さんにお願いしたのが正解だと思いました。Ring はアメリカの会社が作ったもので、Panasonic などの製品と違って日本では当たり前の親機 100V 二芯ケーブル直結する仕様ではなく、常時電源にしたい場合は通常の電化製品と同じアダプターで電源コンセントから電源取るしかないので、そこが割と苦労しました。ちょうどたまたま玄関ドアの隣の壁の屋内側にアクティブケーブルがついてる照明のスイッチがあるので、無理やりそこの屋外側から穴開けて電源取るようにしました。これで電源が壁の中に埋め込まれたので、インターホンの部分を見ると通常の子機と同じように見えて電源が見当たらないから、悪戯にあったりして電源がとられる心配もなさそうです(まああったとしてもバッテリーで 1 ヶ月程度は持つのでそんなに心配するほどのことではなさそうですが、やはり見栄えが悪いので)。

購入した Ring を取り付けた様子です。この本体の裏に壁穴が開いて、その中に電源アダプターが埋め込まれています。そしてそのさらに裏の屋内側が玄関の照明スイッチです。

ところが運用してみたら早速ちょっとした問題点がありました。誰かがピンポン押したら一応アレクサにも通知を飛びますが、うちのリビングに置いてるアレクサは画面がかなり小さい Echo Show 5 で、しかもインターホンを受けるといった用途を想定してないから場所が微妙に離れていて非常に対応がしにくいです。もちろん Ring はスマホアプリもあり、そこにも通知が飛ばされてそこから応答することも可能ですが、やはりそもそもスマホをいちいち取り出してアプリに入るまでの流れが優雅と全く無縁です。結局ピンポン押されたら確認も通話もせず急いでドアへ向かうしかありませんでした。

というわけで、元のインターホンみたいに、壁に親機みたいなのがあってそこから対応できたらいいなと思いましたが、調べてみたらちょうど最近壁掛け想定の Echo Show 15 が出たのではないですか!というわけで早速購入しました。

ただ、ぶっちゃけ言うと私は Echo Show 15 のスペックが微妙によろしく思っておらず(画面サイズの割には解像度が低いし、縦で使うにはアスペクト比がちょっと細すぎるので)、あくまで一時凌ぎ的なデバイスだと思っているため、付属の専用壁掛けキットではなく、今後の買い替えなども考えると VESA の方がいいと思って、VESA の壁掛けマウントも一緒に買いました。

実を言うと、以前エネファームの導入の時に、やりとりのミスでモニター取り付けのために穴を空けて欲しい場所以外のところで空けられてしまって、ひとまず業者さんがそれを塞ぐパネルを取り付けてくれましたが、それをちょうど活用できるではないかと思いました。

モニター取り付けのために希望していないところで空けてしまった穴と、そのモニターの取り付けのための金具。空いてしまったものは仕方ないので専用のパネルで隠してくれましたが、これは使えると思いました。

と言うわけでその穴にある金具のネジ穴の寸法を公式資料から探してみて、どうやら距離が 101mm だったので、それに近い縦 100mm 開いてるネジ穴を用意されてる VESA マウントを購入しました。どうせその金具に使うネジはかなり細く、逆に VESA マウントの取り付け用のネジはそこそこ太いので、1mm の寸法のずれは問題ないと思いました。

そして届いてみていざ取り付けようとしたら、予想通り寸法はずれてもネジは全然取り付けられますね。

マウントの壁側の金具を元のモニター取り付け金具に当ててみたが、予想通りマウントのネジ穴が結構太くて距離が 1mm ずれても穴の太さに余裕で吸収できます。

ただもちろんこのままではネジの頭が細すぎてそもそも取り付けができません。でも問題ない、そのためのワッシャーがあるじゃないですか。と言うわけで測ってみたら取り付けに使う元のモニター取り付け用金具のネジが M4 のネジなので、マウントのネジ穴よりもはるかに大きいが構造的突起に干渉しない外径 16 のワッシャーを買ってきました。

ネジにワッシャーをかぶせてみた感じです。

ワッシャーのおかげで、細いねじで太いネジ穴を塞ぐことができて、VESA マウントを固定できました。

ちなみにこの既存の壁穴を利用する最大のメリットは、電源ケーブルをその穴に隠せることです。うちに猫もいますし、何より見栄えがかなり悪くなるので、なるべく壁に電源ケーブルとかをぶら下げたくないから、いつも配線モールを使っていますが、これで余ったケーブルをその壁穴の中に入れておけば見た目もスッキリしてとてもスマートになります。

このように配線モールから出た余分のケーブルを壁穴に隠せるので、とても便利です。

これで無事 Echo Show 15 を専用の壁掛けキットではなく、汎用の VESA マウントで壁に取り付けました。

最終的な完成図です。

そしてこれで運用してみたら Echo Show 15 と Ring の相性も結構良くて、Ring でピンポン押したら Echo Show 側で全画面でインターホンのカメラ映像が見えて、そこから画面上のボタン一つで屋外と通話もできるので、前みたいにピンポン押されたら画面探す時間が勿体無くて結局急いでドアに向かうしかない問題が解決され、これまでのインターホンとほぼほぼ同じ利用体験ができてるかと思います。強いて言えば Echo Show 15 から履歴が見れないようですが、まあそこは緊急性がなくてスマホアプリから見てもそれほど問題を感じないため、よしとします。

さらに理想を言えばこの Echo Show 15 の電源も、Ring みたいに壁の中に埋め込みたかったですが…それも流石に電気工事士の資格が必要だったり、そもそもどうやって埋め込めばいいか微妙にいまいち具体的にイメージできない(アダプターをどうやってその細い穴から通してあげるとか)ので、現状はこれで満足しています。

いかがでしたでしょうか?これで Ring Doorbell 4 や Echo Show 15 に興味を湧いたら、ちょうど今日から Amazon プライムデーセールが行われており、Amazon プライム会員なら Echo Show 15 なら 42% OFF の 17,480 円Ring Doorbell 4 も 31% OFF の 16,480 円で購入できますので、是非この機会に試してみたらいいじゃないでしょうか。

※ただし注意が必要なのは、Ring に SD カードスロット的なものがないためローカル録画機能がありません;そして履歴を確認するためにはクラウド録画機能が必要ですが、それを利用するには有料の Ring プロテクトプランに入る必要があります(他にもいくつかの機能がありますが、単純にドアベルトしてピンポン押されたらその場でリアルタイム通話をしたいだけなら追加料金は発生しない…はず)。一応 2023 年 3 月 31 日まで無料体験できますが。

※繰り返しですが本記事はアフィリエイトではありません。ただ Amazon さんもしこの記事にいいと思ったら、べ、別にギフトカードをくれても良くってよ()

iOSDC JAPAN 2021 お疲れ様でした!

実行委員会の皆様本当にお疲れ様でした!今年も iOS エンジニアの祭典である iOSDC JAPAN が無事終わって良かったです!

2 回目のオンライン開催ですが、オンラインはオンラインで、特に地方からでも参加しやすいというメリットはありますし、あとニコ生のタイムシフト機能を使えば他のトラックでやられてる別セッションも開催後にすぐ聴けますが、個人的にはやはり来年こそはオフラインで開催できたらと思いつつ…

今回もいくつか CfP を出しましたが、例によって(笑)また技術と関係ないものが当選しましたが、それがまた意外と準備が大変でした。5 分の LT 枠なので本来は大したことではないはずですが、そのまま喋っても何も面白みがないので、どうやってストーリー構成するかとか、どんな素材を集めるかとか、色々考え出したらどんどん時間が過ぎ、最終的に監修含めて原稿が完全に仕上がったのは発表3時間前でした…しかもボリュームも、最初は大したものではないはず、むしろ本当に 5 分も使い切れるの?と心配したくらいでしたが、ある程度形ができていざリハやってみたら相当に時間がかかるのがわかって、またそこから色々削りまくって…それでもやはりまだまだボリュームがあって最終的に超絶な早口が強いられることに(笑)さらに途中で猫に邪魔されたこともあって、自分でもあとでタイムシフトで振り返ってみたが、うん、半分くらい全然聞き取れてなかった!これはまた来年の課題ですね。

ちなみに弾幕で「オタク特有の早口」(意訳)とのコメントもいただきました、ありがとうございます!!!

というわけでスライドをここに貼り付けますね:

speakerdeck.com

発表といえば、今年は弊社からスポンサーセッションの登壇もあって、私ではなく同僚のガッキーが担当してましたが、「どうせスポンサーセッションなんてご飯の時間でやるので、みんなご飯食べながら見てるはずだから誰も真剣に聞いてないから、技術的な内容よりも完全に会社の宣伝に舵を切った方がみんな安心してご飯食べれる」と考えましたので、結果で言うと今回の iOSDC のスポンサーセッションで唯一の 100% 技術のこと一切しゃべってない発表になりました、いいことなのか悪いことなのか(笑)さらにいうと結果的に弊社全社がそもそもこの 2 つの発表しかなかったから、今年は弊社 iOSDC では技術的な発表が一切なかったことになりました。来年はリベンジしたいですね!

というわけで、また来年の iOSDC で会いましょう!

色彩検定 2 級合格した話

f:id:elhoshino:20201222001102j:plain

何故色彩検定を受けようとしたか

筆者はアプリエンジニア、普段の仕事はひたすらコードを書くこと1です。

そんな筆者が何故、色彩検定を受けたのかというと、建前上の理由は世の中がたくさんの色で構成されて、それが人間にとって様々な刺激をもたらすか、どうしてお洒落と感じる配色とダサいと感じる配色があるのかが気になるからです。もちろんアプリの UI にも色は必要不可欠な要素なので、色についていろいろ知っておいた方がアプリエンジニアとしてもメリットがあると思います。

しかしまあそれはあくまで建前上の理由で、もちろんそういった側面もあるにはあるのですが、本音を言うと、弊社では「資格取得報奨金制度」と言う素晴らしい制度があって、取得された資格に応じて一定のボーナスがもらえると言う仕組みです。そしてそんな中で、「色彩検定」なら、2 級なら 3 万円、1 級ならなんと 5 万円の奨励金2が出るのです。ちょうど最近家を買ったりで金欠してるから、少しでも足しになると思って検定を受ける決意をしました。

じゃあ何故一番金額の高い 1 級を受けないかと言うと、流石にゼロ知識3でいきなり最難関を挑戦するのは無謀すぎると思ったからです。それに 1 級は試験を2回受ける必要もあり、結構大変かなと思いました。

色彩検定をどうやって勉強したか

基本的には Amazon公式テキスト過去問だけ買って、それを独学で勉強しました。

中学校の物理でも一応光は電磁波だったり、その波長によって見える色が変わってきたりといった知識を教えてくれてるので、私にとってそう言った理系の話は実は全然難しくありませんでした。しかし逆に言うと、理系以外の話、例えば色相環や色立体、そして配色の話は覚えるのに結構時間がかかりました。特にファッション系の話は興味ないからかなり苦手なので、実は半分諦めてる分野です。

ただ例えば色相環や PCCS / マンセル表色系で使われる色コードの話は、意外と理解さえすれば覚えるのにそれほど難しくはないことに気付きました。もちろんある色を出して、それをすぐ正確に色コードで答えるのは無理ですが、ある程度の範囲を推理するのは理解さえあれば可能なので、選択肢の中から選ぶレベルなら意外と正解率が高いことに気付きました。何故なら色相環ってのは虹色のグラデーションに、最後の紫と最初の赤をシアンで繋ぐだけですので、カラーコードで大まかんな位置を割り出して、その大まかな色を想像するのはさほど難しくないです。それを理解できれば、配色の技法はちゃんと理由があるのが理解できますので、丸暗記せずともなんとかなります。

ちなみに、2 級の勉強をするのに、実は正味時間はそんなに長くないです。公式テキストを通算15時間程度、過去問を通算5時間程度かなと思います。過去問の本は 3 級と 2 級の問題がそれぞれ 2 回分計 4 回分ですので、テキストブックを軽く読んで、1 回分の過去問を解いてみてどこがテストに出るのかをある程度イメージできて、もう一回テキストブックを細かく読んで、まだ解いてない方の過去問を自力で解いてみて、わからなかったものがあったらそれをテキストブックで探してみて、と言う繰り返しでやりました。

でもそれもある程度の理系の知識がある上での話ですが、逆に 3 級を受けた妻はそう言った理系の知識が全くなくてほぼ全て丸暗記でやろうとしてましたので、3 級を受けるのに私以上に時間をかけてました。

色彩検定の 2 級はどんなテストが出るか

2 級に入る前にまず 3 級の話をしておきましょう。3 級では色についての最低限の仕組みの知識が求められます。例えば電磁波はどう言うものか、その中でどこからどこまでの範囲が可視光の範囲か、そしてどの周波数がどの色に対応しているのか、その色に反応するのは目の中のどの錐体細胞か、色盲が何故色の区別ができないのかとかの話が出てきます。その最低限の仕組みを把握した上で、色の三要素(色相、彩度、明度)の話や、PCCS 表色系の話が出てきて、さらにはどの色がどんな働きを持っており、それをどのようにファッションやインテリアに活用されているのかの話が出てきます。

f:id:elhoshino:20201222001149j:plain
3 級の公式テキストの目次

それに加えて、2 級では更に光と色の関係を更に踏み込んだ話をしたり、パッと見どれくらい見やすいかの視認性などの概念を導入したり、PCCS よりも更に一般的なマンセル表色系の説明をしたり、よくある配色のパターンの定義や機能を紹介したり、それらがファッションやインテリアだけでなく、ビジュアルデザインや景観などにどう活用すればいいかの話が出てきます。テストの内容も、全問選択式の 3 級と比べて、(105 問中 5 問だけですが)記述式の問題も一応出てくるようになります。

f:id:elhoshino:20201222001620j:plain
2 級の公式テキストの目次

逆に言うと、お気づきの方もいるかもしれませんが、いわゆる #FFFFFF のようなモニター上で表示される RGB カラーコードの話は(ほぼ4)出てきません。

ちなみに 2 級を受けるのに 3 級の知識が必要かと言うと、まあ全く知らないでいきなり 2 級のテキストブック買っても、解き方によっては合格は可能かもしれません。何故なら問題文だけに注目すれば PCCS 以外は 3 級の知識がなくてもなんとかなるかとは思います。ただしやはり 3 級の内容は 2 級をの知識を理解するための基礎でもあるので、ただ資格が欲しいだけではなく、ちゃんと知識が欲しいと言う方はぜひ 3 級のテキストブックも読んでおいた方がいいと思います。

色彩検定を勉強してどう思ったか

元々デザインには多少興味を持っていましたので、色の勉強ができてとてもためになったとは思います。特に表色系の話を勉強して、例えば何故安直に #00FF00#0000FF のような色でグラデーションを作るのがダサいのか、逆にどのように色相と彩度を考慮して緑と青のグラデーションを作ればオシャレに見えるのかがわかってきて、今まであまり深く考えたことがない世界がどんどん鮮明に見えてきてとても面白かったです。

そしてせっかく今 2 級合格したので、今後は 1 級の取得も目指していきたいと思います。会社からボーナスももらえるし何せやはり色の話はとても面白くて役にも立ちますしね。


  1. 正確にはコード書くだけでなく、プログラムの構造を設計したり、仕様の相談も受けたりしますが。

  2. 一番簡単な 3 級はリストに載っていませんが、それでもリストに載ってない資格として一律 1 万円の奨励金が出るルールです。

  3. でも実際勉強し始めてから気付いたのですが、実はエンジニアなら色についての最低限の知識、例えば赤と緑と青を混ぜるといろんな色ができるとかの知識はありますし;さらにそれは 3 種類の錐体細胞の働きによってできたものだと言うのもなんだかんだって知ってたので、完全にゼロ知識ではありませんでした。

  4. 一応テキストブックでは豆知識的な位置づけで RGB カラーコードや色空間のカラムが出てきますが、当然ながらテスト範囲ではありません。

これぞ最強のバ美肉 Zoom ビデオ会議 on Mac


2020-06-14 追記:

CamTwist よりも OBS の方が圧倒的に高機能で使いやすいので、OBS を使う方法に変更しました。

また、Zoom の Mac 版は 5.0.4 から再びバーチャルカメラが利用可能になったとのことですが、残念ながらそれはバーチャルカメラのホワイトリスト形式での利用可能で、OBS Mac VirtualCam Plugin はそのホワイトリストに含まれていないため、現状はこれまで通り手を加える必要があります。詳しくはやり方の 5.1. で説明します。


2021-10-11 追記:

おかげさまでこの記事も多くの方にご参考にできてとても嬉しいですが、内容が若干古くなり、いくつか手間だった処理が必要なくなりました。

必要だったものが必要なくなったものに関しては、内容を読めば多少混乱をするかもしれませんができないことはないと思って修正せずに放置してきましたが、より正確に手間を見積もれるようにするために修正したほうがいいと思い、修正することにしました。

現状では:

  • 最新の OBS の Mac 版(27.1.3)ではバーチャルカメラ出力が最初から対応しているため、プラグインの導入が必要なくなりました。
  • 最新の Zoom の Mac 版(5.8.0)では DAL 関連の修正が入っているため、自分で DAL バリデーションの無効化が必要なくなりました。

ただし上記のツールがいつからこうなったかについては残念ながら筆者がメモを取っていないため正確に判断できません。


バ美肉 #とは

Wikipedia をご参考にどうぞ。(まあ簡単にいうとバーチャルな美少女に化けること)

用意するもの

ハードウェア

  • MacWindows ならそもそも FaceRig 等の手軽なツールがあるため本記事を読まなくても簡単にできる)
  • iPhone(可能なら Face ID 対応のもの)
  • スマホスタンド等の iPhone を正面に固定できるもの(なくてもいいけど手が疲れる)
  • iPhoneMac を直接接続するケーブル

ソフトウェア

  • OBS(画面合成用)
  • OBS Mac VirtualCam plugin(OBSの画面をバーチャルカメラとして出力用)(2021-10-11 追記に書かれた通り現在は必要ありません)
  • バーチャルカメラ対応のビデオ会議ツールZoom はちょっと手を加える必要がある;詳しくは後述)(2021-10-11 追記に書かれた通り現在は手を加える必要ありません)
  • Vtuber になるための iPhone アプリ(REALITY とか)

結果プレビュー

f:id:elhoshino:20200613152911p:plain
こんな感じで可愛い美少女になってビデオ会議に参加できる

やり方

以下のやり方は上記の用意するものが全てある前提で進めますので、まだの方は是非先に準備してから続きを読んで下さい。

1. Vtuberアプリで自分のアバターを作成

先に Vtuber アプリで自分のキャラクターを設定しておくこともお勧めします。アプリによっては live2D モデル対応だったり VRoid モデル対応だったりもしくは完全に独自カスタマイズアバター設定や内蔵キャラクターしか設定できないアプリもあるので、そこら辺は自分でいろいろ試して自分に合うアプリを決めましょう。筆者は REALITY を使っています、理由は live2D モデルとかに対応していないが独自のカスタマイズキャラクターが使えてしかも結構かわいいので。かわいいは正義

またもしこの時背景を単色に設定できるなら、グリーンスクリーンとかにしとくとあとで合成がしやすいのでおすすめです。例えば筆者はこんな感じです:

f:id:elhoshino:20200613160426j:plain

ちなみに今 REALITY はなんとアバターを cluster と連携できるようになったので筆者としてめちゃくちゃおすすめです。

2. iPhoneMac に繋いでスマホスタンド等で固定

先ほど決めた Vtuber アプリを顔トラッキングモードにして、ちゃんとキャラクターが自分の動きに合わせて動いてくれてる状態にします。ちなみに筆者はこんな感じの車載スマホホルダーでモニターの前に固定しています:

f:id:elhoshino:20200613154309j:plain

3. OBS を設定

3.1. 出力サイズとキャンバスサイズなどを設定

個人的には 1280×720 の解像度で 30 fps のフレームレートをお勧めしますが、もちろん自分のパソコンのスペックに応じてこれ以上上げることも可能です。

f:id:elhoshino:20200613230420p:plain

3.2. 入力ソースとして Mac に接続した iPhone を追加

まずは OBS のソースメニューからビデオキャプチャバイスを選択

f:id:elhoshino:20200613231306p:plain

名前を適当に決めて OK です

f:id:elhoshino:20200613231549p:plain

iPhone 直接が Mac に接続されてる場合、デバイスリストから iPhone の名前が表示されてるはずなので、それを選びます(私の iPhone の名前についてのツッコミは不要ですw);またなるべく高い解像度が使えるために、プリセットは High を選びます

f:id:elhoshino:20200614122716p:plain

もちろんこのままだと携帯画面の解像度が高すぎるので実質顔が見えないことになりますが大丈夫です、まだ色々設定しますので。その前に、まずこのままだと、画面の上下のあまり出したくない領域も出てしまいます。例えば下は LIVE ボタンとか(一回画面タップすると消えてくれますが、会議の途中で誤操作で出してしまったらかっこ悪いので)を隠したいし、上は通知が表示されちゃうこともあるので消したいですね。この時は、レイヤーにクロップフィルターをかけることでできます。というわけでまず iPhone 画面のソースに右クリックしてフィルターを選びましょう

f:id:elhoshino:20200614123333p:plain

フィルター設定画面でエフェクトフィルターからクロップを選び、名前を適当に決めます

f:id:elhoshino:20200614123526p:plain

クロップ領域の設定で相対サイズを選択し、最低限下は LIVE ボタン、上は通知が完全にクロップされるくらいまでクロップします。iPhone X の場合上は 400、下は 450 になりますが、機種によって数値が変わるかと思います(通知が来るタイミングじゃないとどこまでが通知の領域がわかりにくかったりするので、例えば Slack で自分に通知を送るとかの方法で出してみるといいかもしれません);またクロップ領域によっては iPhone 側のアバターのサイズや位置を調整する必要があります、RREALITY の場合は指 2 本で操作できます

f:id:elhoshino:20200614124358p:plain

ついでにもし背景色をグリーンスクリーンのような単色に設定してある方でしたら、せっかくなので背景を透過したいですよね。というわけで同じようにフィルターを追加します、今度はクロマキーです

f:id:elhoshino:20200614124535p:plain

グリーンスクリーンなら初期設定のままで基本大丈夫かと思います;ただしもちろん衣装がそもそも緑だったりすると、背景を別の色にする必要がありますので、その時はクロマキーのキーカラーとかをその背景色に合わせて設定しましょう。設定できたらプレビューで背景が消えるはずかと思います

f:id:elhoshino:20200614124847p:plain

ここまで設定したらとりあえず iPhone の画面の取り込み自体はほぼ終了なので、あとは出力に合わせてレイアウトを調整するだけです。というわけでフィルターの時と同じ要領で、今度は iPhone 画面のソースに右クリックして変換(Transform)メニューから、画面にフィットするを選ぶと楽にできちゃいます(もちろんこだわりがある方、例えば特定な場所に置きたいとか特定の大きさにしたいとかの場合は、直接変換の編集...(Edit Transform...)を選ぶと色々詳しい設定が可能です

f:id:elhoshino:20200614130122p:plain

ここまで設定できたら、自分のアバターが画面の真ん中にくるようにくるはずです

f:id:elhoshino:20200614130222p:plain

3.3. 背景として表示したい画像とかを追加

携帯の画面は基本縦長だけど、テレビ会議の場合は基本横長の画面になるので、多くの場合は左右に余白が出てしまって見栄えが悪いですし、そもそも今回の OBS のキャンバス解像度も 720p にしています。それにグリーンスクリーンを設定した方はクロマキーでアバターの背景を抜いたから、尚更背景が欲しいですよね。まあこれはキャラの追加と比べてだいぶ楽です。まず背景として表示したい画像を探して Mac に保存しておきましょう。この時キャンバスと同じアスペクト比の画像が一番理想です。それができたら iPhone の画面ソースと同じ要領でソースから画像を追加して名前を適当に決めます

f:id:elhoshino:20200614130738p:plain

次に設定画面から先ほど保存した表示したい画像を設定します。背景画像の解像度がキャンバスの解像度と一致しない場合は、iPhone 画面の時と同じく変換メニューから画面をフィットするとか、変換を直接編集して色々弄ってあげましょう

f:id:elhoshino:20200614131109p:plain

ところがこれだとアバターが背景に隠されてしまうので、レイヤの順番を変更しましょう。フィルターとか変換とかと同じ要領で、画像背景ソースを右クリックして順序(Order)メニューから最下部に移動(Move to Bottom)を選びましょう、そうすると背景画像が一番下のレイヤに行ってキャラクターが見えるようになります

f:id:elhoshino:20200614132258p:plain

3.4. 余裕がある方向け:さらに画面表示をパワーアップ

ここまできたら、もっと画面を華やかにしたかったりしますよね、例えば筆者はこんな感じにテキストウィンドウを追加してギャルゲーの UI っぽい風にしてみました(ちなみに本当はさらにリアルタイムテキスト起こしを入れて話したことをそのままテキストウィンドウ内で表示したかったんですけどね…そこまでできたらもう本当にギャルゲーの画面になりますがw)

f:id:elhoshino:20200614135139p:plain

そしてそれだけでなく、オンライン勉強会とかの時も Keynote スライドやライブコーディングに合わせて画面を作ったりすることも可能です

f:id:elhoshino:20200614135256p:plain

4. OBS の VirtualCam を起動

OBS Mac VirtualCam plugin がすでにインストールされ済みなら、ツールメニューから Start Virtual Camera のオプションがあるはずなので、それをクリックすればバーチャルカメラが起動されます現在の OBS では、Controls パネルから Start Virtual Camera をクリックすれば、バーチャルカメラが起動されます。

f:id:elhoshino:20211011100350p:plain

5. テレビ会議ツールを設定

テレビ会議ツールを直接設定する前に、macOS 10.15 (Catalina) からアプリが明示的に DAL を許可する entitlements を組み込む必要が出たため、一部のツールは本当は機能としてバーチャルカメラに対応していますが選べない状況になっています。この場合、自分でちょっと手を加えることで封印されたバーチャルカメラの利用機能が再び復活しますので、OBS Mac VirtualCam plugin の Compatibility ページからどのツールがこの処理が必要かが確認できます。とりあえず 2020-06-14 追記に書かれた通り今話題の Zoom(現時点最新バージョン:5.0.5)はこの処理が必要です。 2021-10-11 追記に書かれた通り最新の Zoom(バージョン 5.8.0)では必要なくなりました。

5.1. 一部のツールのみ必要:DAL バリデーションを無効化する

DAL バリデーションの無効化は二通りの方法で回避できます:コードサインを削除する方法と、自分の開発者証明書で再コードサインする方法です。もし Apple Developer Program や Apple Developer Enterprise Program 等に入られていない方(そもそもこれらは何?という方は十中八九入ってないと思います)でしたらコードサインを直接削除しちゃえば一番楽です:Terminal から codesign --remove-signature "<アプリの絶対パス>" を打ち込んでください。例えば Zoom でしたらこんな感じです:

codesign --remove-signature "/Applications/zoom.us.app"

しかしこの方法ですと、ツールによってどうしてもコードサインが必要な機能の利用で支障がある可能性があります、例えば Zoom だと起動する度に毎回これが聞かされます:

f:id:elhoshino:20200615005846p:plain
「常に許可」を選んでも毎回起動する度に聞かれます;それにコードサインを無くすということは第三者がこのアプリを改竄し放題ということを意味しますので「拒否」を選んだ方が無難です

そのためもしすでに上記の ADP もしくは ADEP に契約されてる方でしたら、自分の証明書でコードサインし直した方がいいです。この場合、まずは Terminal から codesign -d --entitlements entitlements.xml "<アプリの絶対パス>" のコマンドで既存の entitlements を書き出します。例えば Zoom ならこんな感じです:

codesign -d --entitlements entitlements.xml "/Applications/zoom.us.app"

そしたら今いるところに entitlements.xml のファイルが書き出されているはずなので、これを開いて、先頭のゴミを削除し、com.apple.security.cs.disable-library-validation についての記述を追加します。例えば Zoom 5.0.5 の時点で書き出されたものなら修正後の内容はこんな感じになるはずです:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.automation.apple-events</key>
    <true/>
    <key>com.apple.security.device.audio-input</key>
    <true/>
    <key>com.apple.security.device.camera</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
</dict>
</plist>

ここまでできたら、最後は自分の証明書でコードサインし直すだけです。まず自分の証明書の名前を控えておきましょう、ADP か ADEP に契約されてる方なら Keychain から見つかるはずです:

f:id:elhoshino:20200615010758p:plain
枠に囲まれてる部分が自分の証明書の名前です

そして Terminal から codesign -f -s "<自分の証明書の名前>" --entitlements entitlements.xml "<アプリの絶対パス>" を打ち込めば終わりです。例えば上記の証明書で Zoom をコードサインするときはこんな感じになります:

$ codesign -f -s "Apple Development: XIANGXIN SHI (ExxxxxxxxD)" --entitlements entitlements.xml "/Applications/zoom.us.app"

こうすれば、きちんと署名がつくので、第三者の改竄を心配することなくかつ毎回毎回セキュリティ問題について聞かれることもないです。

5.2. ビデオ会議ツールでバーチャルカメラを利用

とりあえず今回は Zoom を例に説明します。上記のように DAL バリデーションを無効化すれば、Zoom の環境設定からビデオソースを OBS Virtual Camera に選ぶと使えるようになります。ちなみにその際は左右反転しない方がいいですね、これまで我々が画面作ってる時はそもそも反転で作っていないし、REALITY を利用してる場合は実は REALITY もフェイストラッキングの描画としては反転していますが、衣装の文字とかみてみるとわかるはずですが実は観客にもそのまま送信していてむしろ反転した方が文字が逆になっちゃいますので。

f:id:elhoshino:20200614134210p:plain

後書き

ちなみに iPhone とかを使わないで完全に Mac だけでできる方法もあります(というよりそもそも本記事はその記事を参考に作ったものです2020-06-14 版では CamTwist から OBS に変更したため違う構成になります)ので、もし iPhone とかを持っていない方でしたらこちらも試してみてもいいかもしれません。筆者が iPhone を使う方法にしたのはブラウザによる顔追跡は精度が低い&CPU使用率が高い&使いたいキャラクターがもともと REALITY で設定してたからです。

qiita.com