22_Yanagi
PythonとかProcessingとかを使ったいろいろ†
研究の内容とずれてる感じがしたのでこっちに移行させました
- エージェント((仮))を作ってみた[+合成音声に挑戦してみたけど無理だった](2022春課題)
〇立ち絵を作ってアニメーションを作る
kritaでpsdを作成→Anime Effectで取り込んでコマ打ちして作成
コマ打ちは全て手動で設定。自身なりに生きているような表現を頑張ってみた
大まかな動きは移動・回転・拡縮で、髪や腕の細かい動きはボーンとメッシュを組み込んで表現
Anime Effectはボーンの設定が大雑把すぎて細かい表現(手先とか関節とか)ができない
L2Dのようなメッシュ自体を動かしてアニメーションを制作するか
プログラム側で自動的に動かす方法を用いるほうがいいかも
△プログラム上でアニメーションを再生してあるアクションを条件に切り替える
アクションがない場合はneutralを、何らかのアクションが実行された場合はsmileを表示しようとした
neutralを連番pngにして配列に放り込んで表示することはできたが
アクションによる分岐をどのように組み込めばいいかわからなかったので後回し中…
(matplotlibでこういったイラストgifを動かすのが間違っている気がしなくもない…)
tkinterを用いてGUI内にmatplotlibのグラフを表示する手段はあるのでそれを応用できるかもしれない
pythonの実行方法はメモの方にだらだら書いていたUbuntu(Linux)経由のやつ
合成音声+言語処理を使わない限りpythonにこだわる必要もないのでprocessingで再挑戦する
・視点の転換とか活用シーンの想定とか(適当に理屈づけしただけ)
モザイク=情報を遮断する壁→情報を取捨選択するフィルターに
匿名性を維持しながらもその人の感情や個性を表現する
→話しやすい環境を生み出すことで
コミュニケーションを円滑にし、その人の個性もより引き出せる(?)
- モザイクを使う側の利点
社交不安症(ex.対人恐怖症)や自分の顔にコンプレックスがある人
エージェントやボードによって性格・個性を表現しながらもコンプレックスを隠すことができる
エージェントがいることで上側に視点が誘導される→目を合わせることが苦手な人でも話しやすい
- モザイクを使われる側の利点
自閉症・HSP(感受性が極端に強い人)
与える情報を制限(基本喜怒哀楽だけを表出)することで負荷が軽減される
※keeponというエージェントを用いた実験においての仮説を参考にしてます
自閉症や知的障害のある子たちがコミュニケーションが上手にできないのは
健常児が持っているフィルターがないため(情報の取捨選択ができずパンクする)
keeponとのインタラクションでは与えられる情報量が限られているため
フィルターがなくても情報を咀嚼することができ、コミュニケーションができた
・仕組み
・草案(いろいろ仕様変更してます)
WSL環境の構築†
windows10でcondaを使って冬の課題とかテキストマイニング実習の課題をしようと思っていたのに、Mecab-ipadic-neologdが使えないしnumpy,scipyあたりでなんか競合エラー起きているし、偶然出会った「シロワニさんのつくよみちゃんトークソフト」がwindowsでは使えないと書かれていて(゚Д゚)ハァ?となったので、Mecab-ipadic-neologdのGithubに書かれているようなWSL環境を構築しようとしたら沼ったので備忘録的な感じで残しておきます。これが私の冬の課題…
使い道はたぶんないです。普通にMacやLinuxのPC使うなりcondaのエラーを修正したほうが楽…
いろいろなサイトを見て数日かけてやっと形になったので初めての方はどうやったかあやふやです
また、簡単な動作確認をしただけなのできちんと導入できているかはまだ未知数です
- WSLを有効にする
WSLとWSL2があるらしいですが、WSL2のほうがよさそうなのでそっちで導入しました
- 1.コントロールパネルからWSLを有効にする
コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化を選択し
『Linux用Windowsサブシステム』と『仮想マシン プラットフォーム』にチェック
OKを押すと再起動を要求されるのでそれに従う
- 2.Powershellを管理者権限で開いてwsl2の起動?とかとか
windowsマークを右クリック>windows PowerShell(管理者)を起動
[wsl --install]を実行する(※[]は無視してください)
ただこの更新にはカーネル更新プログラムパッケージが必要
入ってないとこのURLからダウンロードしてって言われるのでそれに従う
Microsoftのページにはディストリビューション(後述)も一緒にインストールされるって書いていますが手動でした気がします。
wsl2への変更も手動でしましたし、なんか間違えてそうですね…どうやったか覚えてない…
- 2-1.Linuxを動かすやつ(ディストリビューション)をダウンロードして簡単な設定とか
Ubuntuっていうのを使いました。Microsoft storeから検索して入手できます
開くとインストール作業があった後Linuxで用いるユーザ名とパスワードの設定・再確認が求められるのでそれに従う。このユーザ名とパスワードは今後の作業で使います。
なお、パスワードを打っても表示はされません。でもきちんと入力されてはいます
- 2-2.ディストリビューションがきちんとwsl2で動作してるかPowershellから確認
windows Powershellを開いて[wsl -l -v]を実行すると
NAME STATE VERSION
Ubuntu Stopped 2 …みたいなのが表示されるはずです
VERSIONが2になっていたら大丈夫。もしVERSIONが1の場合は以下のコマンドを実行
[wsl -set-version Ubuntu 2]
参考:https://docs.microsoft.com/ja-jp/windows/wsl/install
https://www.pc-koubou.jp/magazine/40465
- Ubuntuでpython3を使えるようにする
参考ページの仮想環境の有効化までを順にしていけば大丈夫です
sudoでpython環境インストールをした後はテキストマイニング実習でやった方法と同じなので割愛します。以下では個人的に詰まった点をピックアップします
参考:https://qiita.com/sireline/items/3c97a0c266431ac5b2ea
- ディレクトリにどうやってアクセスすればいいかわからない
→CIFSを利用して共有フォルダを作ってwindow側のファイルをLinux側でも扱えるように
- 1,windows側で共有フォルダを作る
ただ作るだけだと共有相手がEveryoneになってるので
プロパティ>詳細な共有から変更>このフォルダを共有するにチェック
>アクセス許可>ユーザーを追加しフルコントロールにする
- 3.CIFSをインストールしてフォルダ同士をつなげる
[sudo apt install cifs-utils]を実行しCIFSをインストールして以下のコマンドを実行
sudo mount -t cifs -o username=[winのユーザ名],password=[winのパスワード],uid=[linuxのユーザ名] //[コンピュータ名orIPアドレス]/[win側の共有ファイル] [Linux側の共有ファイル]
例)sudo mount -t cifs -o username=winUser,password=PassWord,uid=linUser //192.160.1.5/mount ./winmount
※上記は手動マウントの方法。起動時に毎回しないとダメ。自動的にしてほしい場合はfstebファイルを編集する
自動化させる場合はIPアドレスを固定しないとダメかも。WSLのIPアドレス使えばいけるのかな…?
参考:https://codeaid.jp/blog/linux-windows-share/
- Matplotlibのshow()が使えない
→LinuxのGUIにwindows側が対応していないのが原因
VcXsrvをインストールしUbuntuのDISPLAY設定を変えることで表示ができた
- 1.VcXsrvのインストールと設定
公式ページからダウンロードしてインストールして実行。基本的に設定を変える必要はない
ただExtra settingのAdditional parameters for VcXsrvに[-ac]って入れておくと良き
※ネットワークを使う(?)のでファイアウォールでパブリックの通信を許可しておかないと動いてくれない
- python3でMecab-ipadic-neologdが使えない
→辞書のパスを修正することで対応
- 1.mecab-ipadic-neologd辞書のインストール
下記の参考URLに日本語で説明してくださっているのでそれに沿って進めれば大丈夫です
ちなみに辞書はUbuntu環境では特に設定を変えない限り以下のパスにDLされると思います
/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
現状これらをすることでwin側で.py作成→Linux上で実行→win側で実行結果を確認できています
どうせ今後エラーとか出てくると思うのでそのたびに加筆するかもです