chromedriverをインストール
> brew install chromedriver Error: No available formula with the name "chromedriver" It was migrated from homebrew/core to homebrew/cask. You can access it again by running: brew tap homebrew/cask And then you can install it by running: brew cask install chromedriver > brew cask install chromedriver Linking Binary 'chromedriver' to '/usr/local/bin/chromedriver'.
定額で全国住み放題
新宿/渋谷あたりに30分でアクセスできる物件が増えたら使いたい。
途中参加のプロジェクト
中途半端な年齢でプロジェクトに途中参加するのは、とても辛い。
どうしてこうなった。
給料よりもユニークな仕事がしたい心境。
npm run buildでビルド済みのindex.htmlが見つからない時
config/index.js
にある下記を確認しましょう。
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
コサイン類似度の計算
これをGoで書いてみたテスト。
【レコメンド】内容ベースと協調フィルタリングの長所と短所・実装方法まとめ - Qiita
ベクトルにできれば内積でどのくらい類似しているか分かるのは便利。
package main import ( "fmt" "math" ) type Comedian struct { Name string Values map[string]float64 } //デバッグ用. func (comedian Comedian) Dump() { fmt.Println(comedian.Name) fmt.Println(comedian.Values) } func Dot(m, n map[string]float64) (ret float64) { for mkey, mvalue := range m { nvalue, ok := n[mkey] if ok { ret += mvalue * nvalue } } return } func Length(m map[string]float64) (ret float64) { for _, mvalue := range m { ret += mvalue * mvalue } ret = math.Sqrt(ret) return } func CosineSimilarity(values1, values2 map[string]float64) (ret float64) { dot := Dot(values1, values2) length := Length(values1) * Length(values2) ret = dot / length return } func main() { m := map[string]float64{ "京都": 0.131578947369, "漫才": 0.122807017544, "お笑い": 0.122807017544, "ラジオ": 0.105263157894, "吉本興業": 0.09649122807, "芸人": 0.09649122807, "いくよ": 0.0701754385966, "コンビ": 0.0701754385966, "大阪": 0.0526315789474, "名人": 0.0438596491229, "上方": 0.0438596491229, "花王": 0.0438596491229, } var ikuyo_kuruyo Comedian = Comedian{Name: "今いくよ・くるよ", Values: m} m = map[string]float64{ "お笑い": 0.169014084507, "西野": 0.12676056338, "大阪": 0.112676056338, "ナダル": 0.0845070422536, "コンビ": 0.0845070422536, "優勝": 0.0704225352114, "コロコロチキチキペッパーズ": 0.0704225352114, "ネタ": 0.0704225352114, "芸人": 0.056338028169, "吉本興業": 0.056338028169, "漫才": 0.056338028169, "キングオブコント": 0.0422535211267, } var korochiki Comedian = Comedian{Name: "コロコロチキチキペッパーズ", Values: m} var similarity = CosineSimilarity(ikuyo_kuruyo.Values, korochiki.Values) fmt.Println(similarity) }
macOS環境でMagicaVoxel -> blender -> Unityの流れでモデルとモーション再生
完全にメモ
参考
環境
- macbook pro 2017 (macOS Mojave ver 10.14.1)
- MagicaVoxel ver 0.98
- blender Version 2.78 (2.78 2017-02-27, Blender Foundation)
- Unity 2018.2.16f1
フロー
- MagicaVoxelでTポーズモデルを作成してobjを出力
- https://github.dev7.jp/b/2015/12/15/precureadv20151213/にあるリンクからBaseArmature.blendをDLする
- blenderにBaseArmature.blendをドラック&ドロップする
- blenderに出力したobjをインポートして、モデルのサイズをBaseAmatureに合わせる
- meshを整理して、モデルのサイズをBaseAmatureを親子にする
- fbxで出力して、Unityにインポートする
- Unityのインポートオプションを変更する
- モデルの不要なデータのインポートをしない
- Rigはhumanoidにする
Astor Piazzolla
昔に知ったWaking Lifeという映画からnuevo tangoというジャンルを知り、Astor Piazzollaに行き着いた。
Libertangoがかっこいい。
ちなみにWaking LifeのサウンドはTosca Tango Orchestra