Infinito Nirone 7

白羽の矢を刺すスタイル

沼の三種盛り合わせレシピ - 自転車、カメラ、キャンプ

この記事は沼 Advent Calendar の 15日目の記事です。

アドベントカレンダーの説明にあるとおり、沼とは

"あるジャンルが好きになり過ぎてハマってしまい抜け出せなくなること。沼落ち。"

のことを指します。ざっくり言うと、趣味にハマりすぎて抜け出せなくなることを指して沼と言っているのでしょう。つまり、人の趣味の数だけ沼があることになります。 私はこの内「自転車」「カメラ」「キャンプ」の三種類の沼に同時につかっています。

はじめての沼「カメラ」

いわゆる一眼レフカメラというものに初めて触れたのは大学3年次のときです。カリキュラムにある授業のなかで、芸術系に属しグラフィックデザインの基礎素養を学ぶことができる授業を取っていたところ、先生が全員に初級者向けの一眼レフカメラを配布し、「なんでも好きなものを撮影してくること」という課題を与えられました。構図の作り方の基礎知識やカメラの扱い方のレクチャーを受け、いざ実際に外に出て写真を撮ってみると、これがめちゃくちゃ楽しいわけです。それまでもコンデジで写真をとるということはしていましたが、美しい写真を撮るということについて初めて実践できたのはまさにこのタイミングで、それまでとは全然違う写真が撮れること(機材としても、知識・技術としても)に楽しさを見出したのでした。

その授業がおわるやいなや、授業でつかった機種と同じメーカーの初級者向けカメラを購入(Canon EOS Kiss X3)し、あちこち撮影にでかけたのをよく覚えています。

こういう初級者向けカメラは、多くの場合キットレンズと一緒に売られていて、広角から望遠まで一通り体験できるような組み合わせになっています。かつ広角側と望遠側では別のレンズが用意されていて、用途に合わせて付け替えられるよう別のレンズになっている、いわゆる「ダブルズームレンズキット」というものを買いました。最初は特に気にもしないのですが、使い慣れてくると気になるのが「レンズ交換の手間」と「マクロ欲しい」の2点。大学を卒業してから、レンズ交換の手間を省くため便利ズームと呼ばれる広角から望遠まで幅広く一本でカバーできるレンズと、マクロ用にパンケーキレンズを買いました。

便利ズームは本当に名前の通り便利で、たいていのシチュエーションでレンズ交換無しでスッと写真が撮影できるのがよいです。ただし欠点もあり、どうしても構造上「暗く」なるため、シャッタースピードを遅くしたり、ISO感度を無理に上げたりしないと、光量が少ない場面では十分に明るく撮影できません。室内で望遠をきかせた撮影では特に暗くなりがちで、シャッタースピードを遅くすればブレるし、ISO感度を上げたら写真にザラザラとノイズがのってしまうしで、そういった状況では「明るいレンズ」が欲しくなります。が、そういう明るいレンズはとても高価。数十万円〜数百万円と、軽く桁がかわってきます。

そう、カメラ沼の最たる沼要素はまずレンズにあります。望遠も広角もこなしたいとなると、一本で済ませられる便利ズームは便利ではあるものの、どうしても写真の美しさにデメリットがある。そして便利ズームではこなせない望遠レベルも存在し、逆に便利ズームではこなせない広角レベルも存在する。さらにそれぞれに、レンズの持つ明るさも異なる。そしてもしカメラ本体を複数もったとき、レンズを接続する「マウント」にも種類があるため、マウントごとにも対応するレンズが必要になる。これがレンズ沼です。

一方で、最近はミラーレス一眼カメラも人気ですね。特にSony製のαシリーズの評判がとてもよく、追随する他社も次々に新製品を出しています。また自分が最初に購入した初級者向け一眼レフカメラAPS-C と呼ばれる規格のもので、カメラのセンサーが小さいために本体・レンズともに小型化が容易です。これ以外に、カメラのセンサーが APS-C よりも大きいフルサイズカメラがあり、ハイアマチュアからプロ向けまで幅広くラインナップがあります。どれもそれぞれに長所・短所があり、カメラ沼のもうひとつの沼です。

自分の場合、最初に買ったEOS Kiss X3はしこたま使い込んで天寿を全うしたため、現在はEOS 6D MarkIIというフルサイズ一眼レフカメラをつかっています。便利ズームは APS-C タイプのみ対応のため、同等のレンズをEOS 6D MarkII用に探しています。しかしやはり便利ズームは暗いんだよな……

手段が目的化した沼「自転車」

4年ほど前、自分の体重増と運動不足が気になってなにか気軽に運動できるものをと思って始めた趣味に自転車があります。最初は通勤を自転車ですることで運動時間が確保できていいな程度に思っていたものが、気がついたらかなりのお金をつぎ込んでいた沼になります。

自転車沼に入るきっかけは、休日も自転車で出かけられる点にあったなとおもいます。最初は奥多摩、次に秩父…などなど、自転車で行ってみると、きれいな景色を見たり、おいしいランチを食べたりと、自転車に乗る以外にも楽しいことが見つけられます。最初はストイックに運動して体力つけて痩せるぞ!と思っていたはずなのに、気がつけば「あそこのランチが美味しいらしい」とか「あそこに行くときれいな景色が見られるらしい」といった具合に考えがシフトしていきました。自転車で運動したからカロリーをとっても大丈夫という免罪符まで使い始めたころで、ああ沼にハマったなと自覚しました。

自転車であちこち旅行気分を味わえる楽しみを覚えるとはつまり、旅先である程度お金を使うということです。そして自転車は定期的なメンテナンスが必要な乗り物。例えばタイヤやブレーキ、変速パーツは使うほどに消耗していくものですし、車体もあちこち出かければその分だけ汚れます。これらの消耗品は早ければ数ヶ月、長くても1年に1回は交換することになります。どういうものを使うかにもよりますが、タイヤにしてもブレーキにしても、2〜3千円に収まるものもあれば、1万円ちかくまでするものまであります。多くの場合消耗品の価格はおおよそ1万円以内に収まるはずですが、交換頻度が高くなるとその分だけお金がかかってきます。

さて、しばらく自転車を楽しんでいると、消耗品以外にも変えたい部品というものが出てきます。最もわかりやすい部品としては車輪があり、車輪の素材(アルミあるいはカーボン)や太さ、スポークのつくり、フリーハブ(車輪の中心にある部品)のつくりなどいくつかの選択肢があります。おおよそ軽くてよく回転する車輪は高くなりますが、人によって好みがいろいろあり、軽いだけが正義ではないこともあるので、用途に合わせて買い集めていたらすごい額のお金を費やしていた…というホイール沼がそこにあります。

また車体に関しても、アルミ・チタン・スカンジウム・カーボン・クロモリなど様々な素材をつかって各社が製造しています。概ねアルミとクロモリが最も安価で、チタン・スカンジウムなどの希少な金属をつかった車体やカーボンの車体は非常に高価になりがちです。素材以外にも、どういう用途に向けて作られたのか(とにかく軽くして山を登るのに有利にしたもの、空力性能を最大限引き出せる作りにして平地を速く駆け抜けるために作られたもの、体にかかる負担を軽減して長距離を楽に走れるように作られたもの)によっても価格帯がそれぞれにあります。好みをかけ合わせると、一概にカーボンの軽い車体がよいとは限らず、アルミの硬さが好きな人もいるので、まさに車体沼ですね。

自分はこの沼にはハマったことはないのですが、人によってズブズブと泥沼化しやすい沼のひとつに「サドル沼」があります。自転車に乗るなかでもかなりの長い時間腰を落ち着けることになるサドルには、車体や車輪以上に体との相性があります。相性が悪いと、股関節に痛みを感じやすく、自転車に乗るのが苦痛になります。そのため、自分の体に合うサドルを探す旅に出たまま帰ってこない人もいるくらいには深い沼です。

この他、より遠くへ自転車で出かけるために「輪行」をすれば交通費や宿泊費がかかり、レースやイベントに参加すればエントリー費もかかり、細々したパーツをあれこれ変えたらその分だけお金がかかるのが自転車沼です。

とにかく楽しい沼「キャンプ」

もともとアウトドアの経験はあったものの、自分でテントを設営して寝袋にくるまって寝るということをし始めたのは今年に入ってからです。「ゆるキャン△」がテレビ放映され、知人と気軽にやってみるかという感じで始まったのがキャンプ沼です。

実を言うと自分はまだそこまで沼の住人ではありません(と言い張っている体にしている可能性はありますが)。キャンプ道具の大半はレンタルでまかなえてしまうため、たまにキャンプをしにいく程度であれば、テントや寝袋を買う必要はありません。ただし、レンタルをする場合お店がどれだけの道具を取り揃えているか、またどれだけのキャパシティがあるかによって借りられる道具も変わってくるので、買って持っておきたい気持ちもわかります。

キャンプ道具にも種類があり、概ね自転車と同じく軽くて性能がよいほど価格帯が上がります。例えば寝袋でいうと、軽さ以外に対応している気温の範囲があり、低い気温(一桁あるいは氷点下)に対応していくほど高価になります。

キャンプの楽しみ方は様々で、河原キャンプであれば川遊びができますし、臨海キャンプであれば海遊びができます。また、登山×キャンプという組み合わせもあります。

最近はオートキャンプ場(車で乗り入れることができるキャンプ場)もたくさんあるので、必ずしも高い買い物をする必要もないのですが、ある程度自分で持っておくと便利なものもいくつかあります。例えば、コッヘル(キャンプ用の鍋みたいなもの)とレギュレーター(携帯できるガスコンロみたいなもの)があればお湯が沸かせるのでいろいろな料理が作れ、寝袋があればどこでも寝られるので、震災などがあったときに生き延びるすべを得られるという点でキャンプ用品を持っていると実用的で便利です。

キャンプ用品も様々あり、スキレットなど料理の道具を極める沼もあれば、テントの居住性を高めるために道具を揃える沼、寝袋の快適性を高める沼など様々な道具の沼があります。

ちなみに今年は3回キャンプへ行きました。この他、コテージ泊のグランピングも1回やっています。アウトドアは本当に様々な楽しみがあり、バーベキューをしたり、星空や日の出を拝んだり、平原でバドミントンをしたりと、多種多様な楽しみ方を組み合わせることができます。

AND沼

実を言うと、これまで取り上げた3種類の沼はANDをとって組み合わせることが可能です。つまり、自転車で旅をし、訪れた場所で写真をとりつつ、宿泊はテントで、ということができてしまいます。なんならキャンプ場の夜で星空を撮るとか、キャンプ場での楽しいことも写真に収められちゃいます。

最近はキャンプ用品をレンタルできるキャンプ場もあるため、キャンプをするのに必要最低限の荷物とカメラを担いで自転車に乗れば、キャンプ用品を運ぶことはないという楽しみ方もあります。

もしキャンプ用品も自転車で運ぶ場合、カーボンの車体は不向きですが、アルミやクロモリなどの金属製であれば、荷物を運ぶためにつくられた車体もあります。そして実際、この3つの組み合わせを実践している人もいます。こんなに簡単に組み合わせを作れる趣味(もとい沼)というのもなかなか無さそうです。いつか自分もこの AND 沼に……浸かってみたいものです。

SHIROBAKO で語られる各キャラたちのはじまり

この記事は SHIROBAKO Advent Calendar 2018 10日目の記事です。

adventar.org

SHIROBAKO Advent Calendar 2015 から数えて 4 回目となる今年の記事は、SHIROBAKO に登場するキャラクターたちがどういうきっかけでアニメーション業界をこころざしていたかを振り返ってみようと思います。

アニメーション同好会の5人

言わずもがな、一話冒頭で制作した神仏混淆七福神から始まる 5 人のキャリアですが、全員役割は異なるものの「アニメーションを作ることが楽しい」というところに原体験があって業界に入ってきています。一方でどういうところに楽しさを見出しているかはそれぞれに違っていて、絵を描くのが好きな絵麻ちゃん、脚本という形で物語を表現したいりーちゃん、CGという形で絵をつくりたいみーちゃん、声の演技を磨きたいずかちゃんなどなんらかの技術に楽しみを感じている4人に対して、純粋に5人でアニメーションを作る工程が楽しくその思い出の延長上で業界に飛び込んだみゃーもりという構図があるように思います。

ところで、三女を機に設定制作に関わることになり初めてムサニに来たときのスーツでシュッとしたりーちゃん可愛すぎませんか。

遠藤さんと下柳さん

タローの雑な伝言ゲームで険悪なムードになってしまった遠藤さんと下柳さん。しかし実はふたりとも、アニメーション業界に入ろうとおもったきっかけはイデポンという同じアニメに心を打たれたから。 イデポン展で思いがけずふたりがそろい、展示を見て適当な感想を述べてしまうタローに突っ込むうちにアツくなり、次第に意気投合しはじめるシーンは涙なしには語れません。 「ハードボイルドっすよねぇ…生きるのがむなしくなるような」とタローがドヤ顔で言ったところにふたりで「違う!!」と全否定したあたりからはもう止まりません。「俺はまだ絶望してないんだ!」をこのときの遠藤さんが言うのは、徐々に3DCGが自分の得意とする仕事を奪っているように感じ苛立っていたところから立ち直る最高の瞬間ですよね。

大倉さんと河野さん

大倉さんは美術、河野さんは音響効果として、三女とえくそだす!に関わっていますね。それぞれ関わった作品も仕事も全然別ですが、もともとはふたりとも映画の仕事をしたかった過去があります。そこから知り合いづてにアニメーションの仕事をすることになり、気がつけば何十年もの間アニメーションに関わり続けています。そしてさらに共通するのは、最初に目指した業界ではないものの、アニメーションの仕事が楽しくなって、それを続けているということ。アニメーション同好会の 5 人や遠藤さん、下柳さんとちがって当初の業界ではないところで仕事をしているものの「でも続けないと、仕事って面白くならないからさ。」と河野さんが言うところに、長いキャリアのなかで見出したモチベーションの源泉があるように思います。

安藤さん

三女が始まる前に入社した制作の安藤さん。以前から同人誌をつくることに情熱を燃やしており、根っからのアニメファンであることが描かれています。そしてその好きがモチベーションとなって制作に関わることになりました。採用面接でもそのなりゆきが語られていますよね。仕事という難しいことを抜きにしてひたすらアニメが好きだからというところに始まりがあるのがとても素敵です。

ところで、なぜアニメ業界で仕事をしているのかを問われた佐藤さんが「好きだから」と言ったときに目を輝かせて「何もえですか!!」と訪ねたときの安藤さん、可愛すぎませんか。

丸川社長

杉江さんや大倉さんなどと一緒に武蔵野動画のころから仕事を続けてきた社長。過去の回想時には、アンデスチャッキーの制作現場でデスクとして働いているところが描かれました。このころからずっとご飯を作り続けているんですよね。デスクだったころは、美術やキャラクターデザインにもすばっと意見を述べていくという型破りな仕事スタイルだったようですが、それだけアニメーション制作にかける思いが強かったことが伺えます。「ただがむしゃらに、ひたすら前に進んでた。やりたい事をやり続けていた。そして気が付くとこの年になってた。それだけさ。」と言っていますが、そのそれだけの中にもたくさんのエネルギーがこもっているはずです。個人的には、丸川社長の若い頃の声と平岡の声が同じ人というところにも、なにかメッセージのようなものがあるんではないかと感じています。

ふりかえり

入社してからしばらくは雑に仕事をこなすだけだった平岡が、これまでに見てきたようなトラブルに再度会って沈んでいたところ、みゃーもりのフォローとタローのいい意味のゴリ押しで救われ、再び制作の仕事に向き合いはじめた話がありますが、彼もまたアニメーション制作にのめり込んでいた過去があり、それがあるからこそどんなにやさぐれていても仕事を続けてきたのでした。こういう「初心」てつい忘れがちですが、思い出してみると新しい発見があったり、気持ちのリセットになったりするので、大事なときに思い出せるようにしておきたいものです。

今年楽しんだビール振り返り

Beer Advent Calendar 2018 3日目です。

今年楽しんだビールを振り返ります。

adventar.org

僕ビール君ビール流星レイディオ

10月末に発売になった僕ビール君ビールの新種。強めの苦味が逆に好み。

f:id:KeithYokoma:20181117213716j:plain
中村航氏の小説のタイトルみたいなネーミング

OLD ENGINE OIL

濃いめ。学芸大学のAIMSというお店で飲みました。

f:id:KeithYokoma:20181027203812j:plain
スタウトが好きならきっと気に入る

白濁り

缶が逆さまになっているのが特徴的。甘さがあってスッキリ飲みやすいのでついグビグビいってしまうので注意。

f:id:KeithYokoma:20181023204922j:plain
スッキリ飲みやすい

KAWABA BEER WEIZEN AND AMBER ALE

苦かったなぁ…

f:id:KeithYokoma:20180922175516j:plain
キャンプ場で飲む最高のビール

INDEPENDENCE STOUT

ベトナムにもたくさん美味しいビールがあり、ドラフトビールからスタウトまで色とりどりです。ベトナムでスタウトが飲めると思ってなかったので最高でした。

f:id:KeithYokoma:20180428181012j:plain
ベトナムで出会った最高のスタウト

ヴァイツェン

控えめに言って飲みすぎましたよね。

f:id:KeithYokoma:20181124190329j:plain
しこたま飲んだ

以上です。

RxJava において Observable#hide() とは何者か

Observable#hide() の Javadoc にある説明は次の通り。

Hides the identity of this Observable and its Disposable.

Allows hiding extra features such as Subject's Observer methods or preventing certain identity-based optimizations (fusion). ... 中略 ... Returns: the new Observable instance

ぱっと見た限りは「いつ使うのか分からんな…」という感じなのですが、この文で例示されているSubject がもつ Observer インタフェースのメソッドを隠蔽するという部分と、hide() が新しい Observable を返すという部分がミソで、次の StackOverflow にある回答がまさにこの Javadoc の言いたいことになります。

stackoverflow.com

Subject は Observable のサブタイプなので、Subject を Observable として外部に公開するときはそのまま Observable にキャストして公開できます。

class Something {

  private val subject: Subject<Something> = PublishSubject.create()

  fun observeSomething(): Observable<Something> = subject

}

しかしその実体は Subject のままなので、公開 API で受け取った Observable を Subject に明示的にキャストして使えます。

class Client(val something: Something) {

  fun doSomething() {
    val observable = something.observeSomething() // this observable is actually a subject
    val subject = observable as Subject // no failure
  }
}

およそ Subject を Observable として公開する場合、それを使う側であえて Subject にキャストし直して使われることは意図しない使い方になると思います。特に Subject の場合、このままでは onNext や onError など Observer インタフェースのメソッドが外部から呼べてしまいます。

これを防ぐため、あえて新しい Observable を作って元の Subject の正体(identity)を隠すのがObservable#hide()です。次のようにすると、

class Something {

  private val subject: Subject<Something> = PublishSubject.create()

  fun observeSomething(): Observable<Something> = subject.hide() // hide() で新しい Observable に変換する

}

API を使う側で、受け取った Observable を Subject にキャストできなくなります。

class Client(val something: Something) {

  fun doSomething() {
    val observable = something.observeSomething() // this observable is a new observable created from a subject
    val subject = observable as Subject // ClassCastException!
  }
}

Observable#hide()はもともと、Observable#asObservable()というメソッドでした。これが 2.x へのバージョンアップにおいて名前を変えた、という経緯もあります。

ホッ転トリ

TL;DR

実を言うと私はDrivemode, Inc.を退職します。 突然こんなこと言ってごめんね。 でも本当です。

本日が Drivemode, Inc. に籍がある最後の日になります。お疲れさまでした。 次も変わらず Android アプリのエンジニアで、明日からメルペイで働き始めます。六本木界隈の皆様よろしくおねがいします。

近況について

実のところ、10月中旬からずっと有給消化をしていて、引っ越しをやったり、ジャパンカップクリテリウムツール・ド・フランスさいたまクリテリウムの観戦をしたり、ジャパンカップのあと LottoNL Jumbo チームのアフターパーティーで選手たちとセルフィーを撮ったり、あとは吉祥寺ニワカを脱するためにハモニカ横丁やらなんやらでランチを楽しんだり、自転車でロングライドをちょくちょくやったりしました。Cafe Kiki という飯能にあるサイクリスト御用達のカフェへド平日に行ってしまい、開いてない悲しみを味わったりもしましたが、私は元気です。その近くにある古民家レストランぽれぽれというオシャレなところでランチを食べたところ、将来古民家で暮らしたい欲が湧きました。

有給消化している間、ほとんどの時間を一人でモクモクとでかけるなり作業するなりしていましたが、その中で自分にはリモートワークはあまり向かないなという気持ちを得ました。もしかするとやり方が違えばまた感想も変わるのかもしれませんが、自分にとっては物理的なオフィスに足を運んで仕事をするスタイルのほうが性に合っている気がします(もちろん、必要に応じてフレキシブルにできるのもも大事なんですが)。

Drivemode での日々について

Drivemode にはアメリカで会社が立ち上がってすぐのタイミングでジョインしたので、日本で仕事をするときは渋谷のコワーキングスペースを借りてやっていました。そのあと表参道にうつり単独でオフィスを構え、そこからさらに東新宿のマンションにうつって現在に至ります。

4年と4ヶ月くらい在籍しましたが、その間アメリカだけではなくルクセンブルクに行ったり、そのついでにイギリスを旅行したり、帰りにパリの空港(CDG)の乗り継ぎで迷子になったり、その当時のアプリがA3というアワードを受賞したときに有名なグラビアアイドルと写真を撮ってもらったり、東新宿にうつって日本のメンバーが増えてからは、オフィスで様々な国の料理が振る舞われたり、急にネットミームが飛び交い始めたり、あと最近はあまりできていなかったけど、DriveKaigi という名前からしパクリオマージュなイベントもやったりしました。

全く英語をしゃべれないところから、同僚たちにサポートしてもらって徐々に喋れるようになってきて、気がつけば一人でロンドンやらルクセンブルクにいくまでになりました。駅前留学やら語学サポートやら、そういったものも特に使いませんでしたが、とにかく仕事をする上で英語が使えなければどうにもならない環境で少しずつでもしゃべることを覚えていった感じです。

エンジニアとしては、プロダクト初期のカオスのなかで、実現したいことのためにその方法を調べては考え、PoCを組んでうまくいくか試すプロセスはとても興奮する体験です。失敗もたくさんありますが、最終的にうまく動いてくれたときの達成感はこのタイミングだからこそ感じられると思います。

このあたりの話の体系だったまとめが最近ツイッターの連続ツイートでまとめられたので貼っておきます。

そういえば、DroidKaigi の運営スタッフ業も Drivemode に入社して以後関わっています。気がつけば最古参のひとりになっていて、ここまであっという間だったなと振り返ってみると思います。

次のチャレンジについて

会社規模としてはこれまでと比べて圧倒的に大きくなるのですが、プロダクトのフェーズとしては初期段階のカオスの中を駆け抜けるチャレンジングな時期だと思います。すごい人たちがめちゃくちゃたくさん集まった環境で、それでも自分の存在感や価値を見失わず磨きをかけていける場所での仕事でもあると思っています。

そういえば、Drivemode にいるころから「どこで仕事しているのか」とよく聞かれてきましたが、これまでと変わらずこれからも日本で仕事をします。海外に行く機会は減ってしまうでしょうが……場所はご存知六本木になります。今までは渋谷や表参道、新宿など山手線に近いエリアで仕事をしてきましたが、ついに一歩踏み込んで六本木になります。入社を決意するまで自分が六本木で働くというイメージは全くもっていませんでしたが、引っ越しやら何やらでこれまでよりもアクセスのいい場所を選んでみたらなんとなく実感が湧いてきました。

干芋

http://amzn.asia/8gORgFr

さよなら吉祥寺

大学を卒業してからずっと住み続けた吉祥寺(正確には吉祥寺から北に離れた練馬区のエリア)からついに離れることにした。今の家は広くて設備も整っていて家賃もお手頃なので、およそ考えうる限り通勤時間の短縮以外に引っ越す理由は見当たらないのだけれど、もう7年以上も住み続けてきて、不便に思ったこともないわけではないし、ちょうど世間的には引っ越しが落ち着く時期でもあるので、重い腰を上げて引っ越すことにした。

もともとは渋谷にアクセスの良いところでお手頃に住める場所ということと、住みたい街ランキング上位の常連であること、漫画の影響でなんとなくのんびりできてよさそうな街であることという基準で吉祥寺に住むことにした。その思惑通り、吉祥寺にはだいたいなんでもあって電車で渋谷や新宿に出なくても大抵のことは済んだし、井の頭公園にいけばのんびりもできた。これは後付けではあるけど、ロードバイクを趣味にしているので奥多摩方面へのアクセスがよいのも助かる。ただ一方で、家が吉祥寺の中心からは離れていて、むしろ西武新宿線のエリアといったほうがよいくらいだったので、そこは家選びをしくったなとは思っている。実際電車も西武新宿線はそれほど便利とは言えないし……その分で家賃がお手頃だったのは間違いない。

それでもやはり吉祥寺は気に入っていて、行きつけのつけ麺屋や油そばのお店があったり、松亭があったり、あの雰囲気の中で過ごす機会が減ってしまうのは寂しい。そう思う程度には長居をしすぎたとも言えるけど、とにかく今は新居での生活を楽しみにしようと思う。なんせ前回の引っ越しが7年以上も前だったのもあって、引越の手続きなどの勝手を完全に忘れ去っていていろいろてんやわんやしてしまったためにちょっとストレスを溜めてしまったけれども、この引っ越しのタイミングの一時的なものだし、引っ越しが終わったあとの生活にも楽しみなことがたくさんあるので、やっていこうな。

MotionLayout 内にある RecyclerView のスクロールを制御する

Note

この記事はcom.android.support.constraint:constraint-layout:2.0.0-alpha2時点のMotionLayoutについての記述です。 まだアルファ版なので将来的に挙動が大きく変わる可能性があります。

MotionLayout 内にある RecyclerView をスクロール可能にする

MotionScene内の<OnSwipe>moveWhenScrollAtTopというプロパティがあり、これがtrueのときにRecyclerViewがスクロール可能になります。これがfalseになると、アニメーションが動くべき方向にドラッグしたときにアニメーションが始まってしまいます。

たとえば、MotionScene で定義した動きとして縦にスクロールするRecyclerView を下にドラッグするとアニメーションするような場合、moveWhenScrollAtToptrueの場合は RecylerView のもつ 0 番目のアイテムが一番上にきたときにアニメーションを開始し、falseのときはスクロールせずにアニメーションを開始します。

RecylerView のスクロールと MotionLayout のアニメーション開始を別に扱いたい

moveWhenScrollAtToptrueのとき、RecyclerView を勢いよくフリングすると、0 番目のアイテムが一番上に来た直後に MotionLayout へMotionEventが流れてアニメーションが動いてしまいます。この動きは RecyclerView の定義にあるもので、自分がこれ以上スクロールできない位置まで来ると、NestedScroll できる親にMotionEventが流れるようになっています。

もし RecyclerView のスクロールに続いて MotionLayout のアニメーションを動かしたくない(RecyclerView のスクロールジェスチャと MotionLayout のスワイプジェスチャを別にする)場合は、RecyclerView のnestedScrollingEnabledfalseにします。 ただし、RecyclerView の ViewPort が一番端にないときに MotionLayout のアニメーションを動かすと、つぎに RecyclerView でスクロールジェスチャをしようとすると RecyclerView はスクロールせず MotionLayout のアニメーションが始まってしまうバグが起きる可能性があります。