Strayの良さを言語化して残したい

スゴクカワイイネコチャンゲームのStrayをやった。 ゲームをしている途中で、クリアしたくない、この世界観に浸かっていたいと思った。 こういう気持ちにさせてくれるゲームはあまり多くない。 似た感情になったゲームはICOだ。というかStrayはICOワンダと巨像を強く意識して作られているように感じた。

ごちゃっとした裏道が描かれているゲームが好きだ。 ゼルダの伝説時のオカリナハイラル城の城下町の裏道が好きだ。ムジュラの仮面は全部好きだ。 ごちゃっとした裏道は人々の営みによって必然的に形成された美しさがあると思う。 Strayではそれがうまく表現されており、しかも猫独特の身体能力で縦横無尽に歩き回ることができる。

説明されるのが嫌いだ。世界観についてぐだぐだと説明口調で話されると冷める。Strayにも少しだけ世界観の説明があるが、そのバランスが絶妙で良い。自然とわかってくる感じが好きだ。

そっとサポートしてくれる仲間がいるゲームが好きだ。ドラクエみたいにゾロゾロついてくるのではなく、主人公の冒険を脇役としてサポートしてくれる程度の仲間がいい。冒険は孤独だからいいのだ。

イキりWebサービス選球眼

なんとなく国産のWebサービスを使うのってダサいと感じていた時期があって、mixiとかLINEとかを使うのは恥ずかしいことだと思っていた時期があった。洋楽を聞いてカッコつける現象に近い気がする。

若さゆえの何かかと思ってたけど、最近はTwitterに対して似たような感情を持っている。

2008年、まだ日本語対応されていなくてエンジニアの人がいっぱい使ってるクールなWebサービスがあると思って急いでサインアップし、それからずっと熱狂的に使い続けていたのに、こんなにも急激に冷めるんだなと自分でも驚いている。

コンピューターを触る

最近、おうちハックにハマっていてラズパイでHome Assistant OSを入れてZigBeeバイスを制御しようとしている。

ラズパイはコンピューターを触っている感じがしてとてもいい。
今年はPdMとしての仕事がメインで人間と向き合ったり、イラレでデザインいじったりすることに時間を費やしてしまった。
もっとコンピューターが触りたいな。

来年はそういう年にしたい。

苦戦したけど第二種電気工事士試験に合格したよ

第二種電気工事士試験に合格した。実は、1回筆記試験で落ちていて2回目のチャレンジ。

1回目 (筆記)の挑戦の敗因

  • 試験直前にカンファレンスの登壇があって発表準備を優先した (言い訳)
  • 本だけで勉強した
    • ぜんぶ絵で見て覚える第2種電気工事士筆記試験すい~っと合格 シリーズを使っていた
  • 全部完璧に理解しようとした

特に本だけで勉強したのが良くなかった。

本で勉強することのデメリット

  • 専門用語が多くて理解するのに時間がかかる
    • 知らないワードが出てきたら毎回ググっていた
    • そもそも目から情報を得ることが苦手 1
  • 持ち歩くのが大変で家でしか読まない
    • 紙の本を開くというアクションが心理的ハードルになっていた

2回目 (筆記)の挑戦の戦略

  • 言い訳できないようにする (試験日前に予定を入れない)
  • 全体を広く浅く理解するようにする
  • iPhoneで勉強する
    • 動画で勉強する
    • アプリで勉強する
  • 過去問を何回もやって試験に慣れる

勉強に使った期間は6週間程度

言い訳できないようにする (試験日前に予定を入れない)

心が弱いのですぐに言い訳する癖がある。物理的に言い訳できないように自分を追い込んだ。

全体を広く浅く理解するようにする

試験の範囲が広いので全体を浅く理解する方針。わからないところがあってもスルーしてどんどん次の範囲を勉強する。
進捗が出やすいのでモチベが上がるし、自分の苦手な部分を把握するのにも役立った。

iPhoneで勉強する

効果的だったと思う。勉強を始める心理的ハードルをぐっと下げられて空き時間を有効に活用できた。

動画で勉強する

この動画を何週も見た。理解してなくてもどんどん次の動画を見る。全部見終わったらもう1周するというスタイル。
西山先生の「正しく理解するのではなく合格するための方法を学ぶ」という方針がとてもよかった。
広告を見る時間がもったいないのでYouTube Premiumに加入した。

やさしく学ぶ電気工事士 - YouTube

大事そうなポイントはどんどんスクショしてメモアプリに貼り付けた。
メモアプリはBearを使っていたが何でもいいと思う。

アプリで勉強する

動画で見た範囲の過去問をこのアプリでひたすら過去問を解いた。課金すると問題数が増えるので課金した。
iPhoneのホーム画面の目立つ場所にアプリアイコンをおいておいた。

apps.apple.com

過去問を何回もやって試験に慣れる

試験1週間前に5年分まとめて解いた。
同様の問題が何回も出ているので慣れた。

2回目 (筆記)の結果

自己採点で9割以上とれて合格した (合格ラインは6割)
試験問題も例年に比べてかんたんだったのでラッキーだった。

技能試験

事前に公表されている13問のうちどれかが出題され、時間内に完成させる必要がある。
とにかく13問を練習して手で覚えるしかない。
13問を複数回練習する人もいるらしいが、自分は1回だけしか練習しなかったがそれで十分だった。
(13問すべてが全然違うものというわけでもなく、似たような問題だがそれぞれに少し特徴がある程度であるため)
筆記と同様に動画で勉強した。

工具

試験でも使用する工具を自分で調達する必要がある。HOZAN DK-28 をフリマアプリでゲットした。
合格クリップ (HOZAN P-926) も別途調達した。

練習用キット

練習用キットは試験後は不要になるので、レンタルした。
使用済みの配線は返却する必要がない。被膜をはがせばお小遣い程度の値段で売れるらしいけどめんどくさいので捨てた。

レンタル電気工事士 技能試験 練習用材料セット 【公式】 電気工事士技能試験練習用材料がレンタルできます。器具や電線のバラ売りにも対応。動画解説や参考書がセットになった「準備万端シリーズ」を製作しているジェイメディアネットのショッピングサイト

動画

筆記同様、西山先生の動画をひたすら見てまねするだけ。 【令和4年度対応!】第2種電気工事士技能試験 公表問題No,1 作業解説 - YouTube

合格した

本で勉強することが自分に合っていないことがわかったのは大きな収穫だった。
一番お世話になった西山先生に1円も払ってないけどいいのかな。


  1. Kindle電子書籍を読むときはiOSアクセシビリティ機能でSiriに音読させている

高尚なペイン問題

プロダクト4階層 のターゲットとペイン・ゲインを考えているときに、ペイン・ゲインが高尚になってしまうことがよくある。
例えば、「〜について勉強したい」とか「〜ができるようになりたい」とか。
「高尚」を言い換えると「なくてもいいけどあるといいよね」、つまり芯を食ってない。
もしかしたら、ビジョンとかミッションに近いのかもしれない。

高尚なペイン問題に直面した時は、以下のアクションを取る。

Whyを掘り下げる

そのペイン・ゲインが発生する理由を掘ってみる。しかしこれが難しい。
ターゲットの属性に自分が含まれているときは、自分で考えて掘り下げることもできるが、そうじゃないときはターゲットの属性の人にインタビューするしかない。
運良くターゲットの属性の人にインタビューできたとして、インタビュイーがうまく言語化できないことも多い。
とにかく仮説をいっぱい出してみてインタビュイーに当ててみる方法を取るのがいいのかもしれない。

UXのレイヤーでがんばる

ペイン・ゲインが高尚な場合、ユーザーにアクションを取らせることが難しい。
どうにかユーザーにアクションをとらせるために、成功体験を得られるまでのハードルを下げて、小さく連続的に成功させてあげることが必要。

違うペイン・ゲインにする

そもそも芯を食っていない問題に付き合うのは無謀なので設計を見直す。
やっぱりこれがいちばんおすすめ。

感想を持つには熱量が必要

人が感想をもつには熱量が必要。
高いお金を払って高級フランス料理を食べているときは「これは美味しいな」ということを考えながら食べるけれど、家で昨日の作り置きを食べているときは作業として口にものを運んでいて感想というものがない。 ネットにかかれているレビューは熱量がある人たちによって書かれているので、実際のユーザーの総意とはずれてるんじゃないかな。

以上、ここで話した内容の備忘録。

SlackbotカスタムレスポンスでNKODICEする

TL;DR

Slackの標準機能のSlackbotカスタムレスポンスで、話題のゲームNKODICEができるようにしてみた。

f:id:haranicle:20210620074830p:plain
顧客が求めていたもの

設定方法だけ知りたい人はここだけ読めばOK

Slackbotカスタムレスポンスへの設定方法

NKODICEとは

ksymさんが開発した「チンチロ」をベースとしたゲーム。

store.steampowered.com

(今回この記事の公開についてksymさんにご快諾いただきました。ありがとうございます🙏)

Slackbotカスタムレスポンスとは

slack.com

Slackにデフォルトに入っている機能*1で、Slackで任意のキーワードが発言された時にSlackbotに事前に設定した返答をさせることができる。

返答の内容は、改行で区切ることよって複数の候補の中からランダムに選択させることができる。

f:id:haranicle:20210620070350p:plain
Add Slackbotカスタムレスポンス

f:id:haranicle:20210620070430p:plain
Slackbotカスタムレスポンスの例

返答の最大文字数

ドキュメントなどには書かれていないが、調査したところ返答に設定できる文字数は

最大で4000 (改行も1文字としてカウント)だった。

返答をPythonで作る

すべての返答を手作業で作ると大変なので、Pythonで作る。 サイコロが3つのときは、こんな感じのコードでできそうだ。

dice = ['お', 'ち', 'ま', 'う', 'ん', 'こ']
for i in dice:
    for j in dice:
        for k in dice:
            print(f'{i}{j}{k}')

NKODICEに必要な返答の文字数

サイコロがn個の時、返答をすべて書き出すのに必要な文字数(改行込み)は以下の数式によって求められる。

6n*(n+1)-1

この解をまとめるとこう

サイコロの個数 返答をすべて書き出すのに必要な文字数
1 11
2 107
3 863
4 6479
5 46655
6 326591
7 2239487

返答に登録できる最大文字数は4000なので、サイコロは3つが限界だった。

サイコロが3つだと、最強の役であるOCHINCHINが成立しない。悲しい。どうにかしてOCHINCHINしたい。

文字数を節約してサイコロの個数を増やす方法を考える

同じ出目は削除する

赤青緑の3つのサイコロを投げた時、 が出ることがあるが、NKODICEは順不同なのでどちらも同じ出目として扱う。

出目の表現に必要な文字数を節約するために、同じ組み合わせの出目を削除した。

同じ組み合わせの出目の削除は目のソート結果をsetに代入するで実装した。

dice = ['お', 'ち', 'ま', 'う', 'ん', 'こ']
all_rolls = set()
for i in range(6):
    for j in range(6):
        for k in range(6):
            sorted_roll = sorted([i]+[j]+[k])
            a = ''
            for r in sorted_roll:
                a += str(dice[r])
            all_rolls.add(a)
for r in all_rolls:
    print(r)

ただし、この手を使うと役が出る確率が代わってしまう。

例えば、赤と青のコインを投げたときの結果を書き出すと以下のようになる。

本来は 表裏 の組み合わせが出る確率は50%だが、同じ組み合わせの出目を削除する処理をすると、 表裏 の組み合わせが出る確率は33.3%になってしまう。

今回はどうしてもOCHINCHINしたかったので、この問題を許容することにした。

役はCustom Emojiで表現

役ができた時に派手な表現をしたかったのでCustom Emojiを使った。 Custom Emojiの作成にはMEGAMOJIを使わせていただいた。

zk-phi.github.io

f:id:haranicle:20210620080853g:plainf:id:haranicle:20210620080858p:plainf:id:haranicle:20210620080901p:plainf:id:haranicle:20210620080904p:plainf:id:haranicle:20210620080908p:plainf:id:haranicle:20210620080911p:plainf:id:haranicle:20210620080914p:plain

返答も含めて出力するコードはここ。サイコロ5個が限界だった。

github.com

サイコロ5個あればOCHINCHINを出すことができる。良かった。

Slackbotカスタムレスポンスへの設定方法

Slackbotカスタムレスポンス

slack.com

  • When someone says に んこ,nko を入力
  • Slackbot respondsに以下を入力

Slackbot respondsに書く内容

Custom Emojiの登録

ワークスペースにカスタム絵文字を追加する | Slack

登録するファイルは以下の好きな方からダウンロード。(zipでダウンロードがおすすめ)

*1:プラグインなどの導入が不要なのでどんな環境でも利用しやすいのが良いところ