スナップショットに合わせに行く業務ゲーミフィケーション

ゴースト

コグニティブデザイン
スナップショットに合わせに行く業務ゲーミフィケーション

  • 前提(Premise)
    • 業務は繰り返しが多い
    • 繰り返しの業務はそもそも自動化すべきだが、時にはその繰り返しそのものを無意識に書き込むほどに繰り返さなければならないことがある
  • 状況(Situation)
  • 目的(Purpose)
    • 元のスピードから2倍スピードを10日で達成
  • 動機(Motive)
    • 繰り返しをライン作業のように楽しくすることで、スキル獲得の際に汎用的に役立たせる
    • そのために繰り返し行動の一つ一つにある程度のゴールを持たせたい
      • ゴールにより、それへ向かう無数の道筋のどれを辿るのかの決断を考えさせる
      • 危機感を持たせるため、デッドラインを設ける
      • デッドラインを超えた際に負のフィードバックを与え、そのデッドラインを守る責任を再確認させる
  • 制約(Constraint)
  • 実装
    • wails、部分デバッグモード
    • 実装計画時点でスレッド分割を考慮する
    • 一回目作業時、外部OBSなどで画面録画を行う
    • 録画ファイルを読み込みスクショを作成、これをスナップショットとする
    • 二回目作業時、適宜画面をスナップショットと比較して評価する。これがメインループ
    • 評価から数十秒前までの画面のみを比較
      • ここネック、10秒60fpsでも600枚比較することになる
        • 10fpsに減らして比較を軽量化
          • SRTストリーム出力側の設定と関係なく減らす
          • 減らす数値は設定可能
        • 軽量な比較アルゴリズムを使用する
      • 比較方法はユーザーが選べるようにする
      • まずaHashのみ実装
    • 画面の比較評価にはOBS連携を使用
      • 二回目作業時、SRTストリームをOBSから出力
        • SRTストリームをwails側で取得、スナップショットと比較する
    • go-srtで受け、goavでフレームを減らす

Gemini - WailsでのWebRTC, RTMP, SRT比較

具体的な数値目標がパッと出ない。
Star10個とかなら出せるが、それ満たしたからって良いソフトウェアになるわけじゃないし。500万の承認を得るとかあるわけでもない。元のスピードから2倍スピードを10日で達成とかにするか。それでやり方が身に付くわけでもない気がするが。よそ見をしながらできる、やりながら小説のネタ出しが出来るとかもあるが流石にマウスを手癖操作は無理。

というか、目的を達成する動機じゃないのか。

エラーや手戻り率を 30日以内に半減
30日間連続でスナップショットを記録
プロダクトが算出する「習熟度スコア」を 30日以内に20%以上向上
「チャレンジ」や「バッジ」を 1週間に3つ以上達成

経過日数、平均処理時間、手戻り率、継続日数、チャレンジ
この辺の値だけちゃんと算出し、自前で成功目標を作る
動機を書かせてデフォセットから選ぶ

失敗した場合、ライン宜しく時間で修正する
次までに修正できればOK
小さいライン画面と、ノーツっぽい評価画面を常に表示しておく

ラインとの違いとして、一つのノーツに対する評価基準が異なることが挙げられる
一番困るのは、今までのラインで培った技術を使えばリカバリーできるというものではないこと
なんとか思い出しながら無理矢理リカバリすることになる

ゲームではダクソの経験値回収
チェックポイント
学習
スムーズな再挑戦フロー

どれも時間、戻し作業が必要なので
ラインとしては難しい

マッチ放棄ペナルティ

比較と評価を非同期に
ラインを考えると、あるスナップショットの○秒前から操作可能にして同じ画面を表示出来たらOKにする

FS実装例(NDI,没)

ChatGPT - 非同期比較対策
NDIが繋がらない!NDIを別セグメント間でつなぐ2つの方法 - MBS Tech Nexus Blog
NDIはローカルで使用する前提の映像伝送。
RTMPより機能が多く低遅延。

OBS側でNDIを出力するにはDistroAVプラグインが必要
1. Installation
Create NDI Stream Output with OBS Studio

  • フロントエンド実装
    • 面倒なのでカスタマイズ可能とするが、デフォルトは設定しておく
    • 情報を表示コンポーネントとして扱うため、必要な情報をバックエンドから取得できるようにする
    • タスクバー型
      • Obsidianのタスクバー型を想定。コンポーネントを連ねて表示。
    • フローティング型
      • Androidのフローティングウィンドウを想定。コンポーネントを重ねて表示。
    • svelte、daisyUIを使用

MUI vs Chakra UI vs shadcn/ui vs daisy UI

FS情報コンポーネント

FSフレーム減らし

FS実装例

FS画面遷移

同一画像を判定するためのハッシュ化アルゴリズム - Qiita

FSプレイ詰め

名称
focussnap,snapflow

Blenderでモデル作成法を学ぶ

  • 前提(Premise)
    • 3Dで
  • 状況(Situation)
    • スキルが無いため、動画を制作することが出来ない
  • 目的(Purpose)
  • 動機(Motive)
  • 制約(Constraint)