Blender2.9.3、粘土のような髪、先を細くするAlTとSキー

Blenderのモデリングで、髪の毛のような細いオブジェクトを作る。Blenderメニュ

作り方は、パスやベジェの線と、Circle円を用意する。

線のGeometryのBevelにCircleを指定すると、線に沿って円が適用されて、円柱になる。このとき

円側の設定はしない。

そして、線のポイントを選択して、AlT+Sキーで幅を広げたり狭めたりできる。

Blender2.9.3、ボーンアーマチュアによる歩行アニメ設定作業履歴

Blenderメニュ Blender2.9.3、ボーン、アーマチュアによるアニメ設定作業履歴、アーマチュアの設定はこちら

かっかりした雰囲気でとぼとぼと足踏みをする歩行アニメーション。両腕をだらんと下げた状態で動かさない。動くのは、肩、腰、足

設定した順は、腰左右、肩、腰上下、尻Rigの順で動かしながら設定した。

個人データファイルパス
/Documents/blender/model/テスト、研究モデル/boxMan2021

実際の動きはこちら、足踏状態

調整するなら頭と両腕、手を少し揺らしたほうがよかったかもしれない。

前から 横から

設定の表、手書き

blender2.93、アニメ、ボーン人体meta-rig設定手順メモ、備忘録

アーマチュアarmature,meta,rigの設定、手順メモ、備忘録

環境:Mac、Blender2.93 標準搭載のアーマチュアのBasicを使用

人体キャラクターにボーン、アーマチュアを入れたいけど動かない。注意点を記載

設定の注意点

・注意点
Blender標準のアーマチュアでBasicボーンを設定し
「Generate Rig」ボタンを押した後で、いくつかボーンやRig(矢印、円、ボックスとか)が自動で作成される。
そしてポリゴンに連携させるとき、どのボーンを選択して人体ポリゴンと連携させればよいかわからずらい。
ちなみに、Blender標準のアーマチュアで設定したボーンではない。ボーンを動かせばポリゴンは動くかもしれないが、Rigを動かしても人体ポリゴンが機能しない。>ここではまる

対応

「Generate Rig」ボタンを押した後バックグラウンドレイヤーの一番右端のレイヤーのボーンを使用する。
このボーンを使ってコマンドキー+pでオートマチックウェイト設定ができる。
なお、Blender標準のアーマチュアで設定したBasicボーンは、各パーツの位置を決めるために使用しており「Generate Rig」ボタンを押した後は、不用のようだから隠(Hキー)しておく。

アーマチュアの設定手順

・Human meta rig 人体リグの設定手順

1.人体ポリゴンを作るまたはどこかからサンプルをダウンロードしてBlenderに取り込む。DXF,obj等。人体ポリゴンは関節等が曲がったときに破綻しなければ、ローポリでも問題ない。

2.Shift+cキーを押してカーソルを原点に移動させる。
Blender標準搭載Add>armatureアーマチュア>Basic>Basic Human(Meta-rig)を選択
人体ボーンが表示されるので、人体ポリゴンにサイズを合わせる。(顔の表情とか指の動きを制御したいときは、Add>armatureアーマチュア>Human(Meta-Rig)を選ぶほうが良いけど、ボーンの数が増えるので設定がさらに面倒になる)


Editモードにして、ボーンの大きさを変更する。上左右から視点を変えてポリゴンとボーンの位置が正しくなるように調整する

3.ボーンの調整が終わったら、Objectモードにて人体ボーンを選択して、command(アップルキー)+a、Apply>Scaleを選択する。見た目は何も起きないがこれによってボーンのスケールが調整される。
このScaleをしておかないと「Generate Rig」ボタンを押したあとで作成されるRigのサイズが初期のサイズになって、人体ポリゴンとサイズが合わない。

4.「Generate Rig」ボタンを押す。いくつかボーンやRig(矢印、円、ボックスとか)が自動で作成される。

5.重要 バックグラウンドレイヤーの一番右端の下のレイヤーのボーンを使用する。Shift+左クリックで選択する
このボーンを使ってコマンドキー+pでオートマチックウェイト設定ができる。
なお、最初に使ったボーンはいらないので隠しておく

GenerateRigボタンを押して生成されたらInFrontチェックを入れるとボーンが前面に表示される

最初に設定したボーン、Metarigは不用なので、Hキーで隠す。ALt+Hで再表示できる

6.人体ポリゴン、人体ボーン(バックグラウンドレイヤーの一番右端のボーン)の順に選択して
コマンドキー+pを押してAutomatic weightsウェイトを選択する

7.PoseモードでRigを動かせば人体ポリゴンが動く。
もし、人体ポリゴンが動かない場合は、どこか間違っている。おそらくバックグラウンドレイヤーの右端を選択していないでオートマティックウェイトしたかもしれないので、再度そこからやり直す

pythonの引数は原則参照渡しだが、実際は限定的で注意

pythonの引数は、ミュータブル(変更が可能)とイミュータブル(変更ができない)ものが存在する。
つまり参照渡しをしてもイミュータブルの型(int,str,floatなど)は値が変わらないから値渡しと同じになる。ミュータブル型(list,setなど)を使えば参照渡しになる。
引数の値を変えたい場合はミュータブル型にするか、メソッドの返り値として変更した値を受け取るほうが理解しやすい。

参考URL

Python♪次は理屈で覚えよう「参照渡し」「浅いコピー」「深いコピー」
https://snowtree-injune.com/2019/09/16/shallow-copy/#toc7

 

【Python】参照渡しと値渡しの違い

https://algorithm.joho.info/programming/python/call-by-reference/

Blender2.93、フォトショップを使ってMPEG4からGIF変換手順例

動画ファイル形式をGIF出力する場合、ネット上からでも出力が可能だが

色々と制約が生じるので、フォトショップでGIF変換

制約とは、会員登録が必要、サイズの変更ができない。色の変換が変わってしまう、容量が大きくなりすぎ等

>>最近は、変換手順を忘れやすくどのような手順で作業したかわからなくなるので備忘録として残す。

手順例(環境、MacOS、Blender2.93)

1.Blender2.93から動画MPEG4出力したとする。出力プロパティを開く。そして「File Format」からFFmpeg Videoを選択する。次にEncodingからContainerで「MPEG-4」を選択する。MacならQucikTime形式もある

(Blenderはここまで)

2.フォトショップでMPEG4ファイルを開く(以下は全部フォトショップでの作業)

3.修正、切り抜き等処理を行う。任意

4.ファイルメニューから「ファイル書き出し」、「Web用に保存(従来) 」を選択する

 >注意:「書き出し形式…」でGIFの出力も可能だが、リサイズでエラーになる

 フォトショップ2021 Ver2251

5.設定で、表示サイズ等を変更(50%)

6.保存

確認するときは、GIFファイルをブラウザにドラッグアンドドロップするとGIFが再生される。

再生されないときは、GIFアニメでなくてGIF単一ファイルかもしれないので、動画かGIF出力の設定を確認すること

Blender2.93 python A点からB点へ移動するアニメーションスクリプトサンプル

Blenderを使ってpythonでA点からB点へ移動するアニメーションスクリプトサンプル

参考
[Blender×Python] アニメーションのつくりかた
https://qiita.com/masterkeaton12/items/a6dcfa160f2bb6bc2851

[Blender×Python] アニメーションの作り方
https://mrt-blog.com/155/

(1)シンプル

オブジェクト名はCandle1(文字列と数字なので、複数あればループで対応できる)
現在の位置Bを24フレームのキーフレームに設定して、0フレームで別の場所Aを設定する。
これでAからB(元の位置)に移動するアニメーションが設定できる。

inbetween設定が必要かと思ったけど、いらんかった。
オブジェクトの移動をすると瞬間移動するかと思ってた。
ちゃんとフレーム間を補間してくれるようだ。

2個のオブジェクトがあって1個だけアニメーション設定した状態

スクリプト実行後に、ドープシートにキーが打たれた


#python_anime_20210919_01.blend

(2)複数のボックスが下に移動するアニメーションを作成するスクリプト(ボックスはすでに作成済とする)

実行するとZ軸マイナスの方向に1個ずつずれて移動するアニメーションが作成できる

 

 

Mac Blender2.93 pipインストール、pandas_datareaderモジュールインストール手順

Mac Blender2.93 pipインストール、pandas_datareaderモジュールインストール手順

環境:MacOS、Blender2.93の場合

ターミナルを起動する。
blenderのバージョンは2.93、バージョンが変わるたびに似たような数字を変える
BlenderのPythonのディレクトリ構成、Pythonのバージョンも変わるので数字を変える
/Applications/blender.app/Contents/Resources/2.93/python/bin/

・(1)get-pip.pyをダウンロード
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py /Applications/blender.app/Contents/Resources/2.93/python/bin/python3.9 get-pip.py

もしエラーになってダウンロードできないときは、
cd /Applications/blender.app/Contents/Resources/2.93/python/bin/
python/binディレクトリに移動して実行する
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

・(2)python3.9でget-pip.pyを実行してpipをインストール
$ /Applications/blender.app/Contents/Resources/2.93/python/bin/python3.9 /Applications/Blender.app/Contents/Resources/2.93/python/bin/get-pip.py

(3)pipでpandas_datareaderを実行する
$ /Applications/Blender.app/Contents/Resources/2.93/python/bin/pip install pandas_datareader

ローソク足をBlenderの記事

エクセルVBA、楽天証券マーケットスピードのRSSを使用して株価情報取得

マーケットスピードの株価チャートを見ていて、株価や板をずっと見ていると目が疲れてくる。
株価の変動が大きいときは我慢できるが、商いが薄いときは株価が動かず眠くなる。
そこで、楽天証券マーケットスピードのRSSを使用して株価情報を取得して必要な値になったら色の変化で表示させたら便利かもと思った。
このRSSを使用して株価情報をエクセルのシードに表示させるとどうなるか試してみた。
なお、エクセルを使用するために、毎月約1300円くらい支払う。年払いのほうが安いが毎回数ヶ月くらいしかエクセルを使わないので今回も月極にした。

マーケットスピード2のRSSのマクロはこちら

・RSS(リアルタイムスプレッドシート)
「RSSとは、マーケットスピード投資情報ページ「市況情報(先物OP市況情報)」に表示される値(注)を特殊な関数(RSS関数)を用いて市販表計算ソフト『Microsoft Excel』に取り込み、セル上に表示させるツールです。」
https://www.rakuten-sec.co.jp/MarketSpeed/onLineHelp/msman1_11_1.html

マーケットスピードの機能でも株価情報を表示させることは可能だが、RSSとエクセルを使用することにヨテ自分だけの必要な情報のみを表示させるシートを作成することができる。

・VBAの注意点
IF文のelse if は[elseif](他の言語は、大抵[else if]のようにスペースを入れる)
等価はイコール1つ(他の言語は大抵イコールが2つ必要)
ちなみにVBAとマクロは厳密に仕様が異なることがあるので確認するとよい

・使用環境:Windows10、エクセル Office365 マーケットスピード、RSS.exe
なお、RSSを登録するにはエクセルのマクロを有効にするなど、いくつか設定が必要である。
またRSSが実行できるようにセキュリティソフトの設定も必要。
これらの設定は楽天証券のホームページとグーグル先生が教えてくれる。
(数年経過すると、サイトが閉鎖されているのでネットの情報も永遠ではない)

・エクエルシート構成、マクロ仕様

‘VBAはシングルクォーテーションがコメントになる
‘Ctr+spaceで入力途中でコマンドの候補が表示される。簡易的な入力支援みたい

・動作環境:Windows,マーケットスピード、RSSを起動しマーケットスピードにログインしておく
‘Windowsのみ、RSSが対応しているのはWindowsのみでMacは動作しない
・目的
‘RSSで取得した情報を一定時間間隔で別セルにコピーする、時刻、比率等を記載
‘株価の動きを予測する資料とする
・動作手順
‘マーケットスピードにログインして、RSSを起動する「接続中」となる。「接続処理中」は接続できていないので接続中になるように調整すること
‘エクセルを起動して該当のファイルを開く
‘取得したい銘柄コードを入力する。この作業は手作業
‘マクロを実行させる。その後は、自動でセルのコピーが始まる
‘市場が開いていない時間帯はコピー処理は行わない。
‘2021・04・26

 

皮膚アレルギーは厄介、ダニ、ハウスダスト、ビール酵母アレルギー検査結果

先日、皮膚科で血液検査をした。ここ数年、汗をかくと肌が赤くなり痒くなる体の部位があった。
頭、腕、腹、背中、股間等。

そこで、皮膚科に問診に行って血液検査でどの項目にアレルギー反応があるのか調べてもらった。Hは高い数値を表す。ダニの数値が以上に高い。ダニの数値が高い理由は、毎週実家に帰るたびに、刺されていたから。(このときはどこで刺されていたか知らなかった)検査成績報告書

アトピー
検査については、ある程度疑いのある項目をメインに検査することになる。どの項目に反応するかは指定しないと検査してもらえない。つまり、「血液検査してどれに反応があるか」ではなくて、「検査してほしい項目を患者が選んだ」項目について検査して、アレルギー反応があるかを調べてくれる。なので、検査希望の項目に含まれない項目について、仮にアレルギー反応があっても検査してもらえない。
検査するときは、アレルギーの疑いがあると思われるものについて推測しておく必要がある。

ちなみに保険が適用されるのは13項目までらしいので全部は受けられない。
検査結果は約一週ほどかかる。翌週問診するのは面倒だったので、薬を貰う予定の翌月に結果を聞いた

・状況

月1回皮膚科に通院し、アレルギーを抑える薬2種類をもらっている。
飲んでいる間、汗をかいてもほとんど症状はでない
薬の服用によって、少し眠気をもよおすので、車の運転、仕事、試験中は注意が必要

・血液結果

ダニ(スケヒョウダニ、)
ビール酵母>ビールを飲むと2,3時間後に腹痛が起きた
小麦
に大きなアレルギー反応があった。
他に多少アレルギー反応があったがそれほどではないようだった
ビール酵母については、ビールを飲まなければよいのでそれほど大きな問題ではない。
問題はダニだ。

・ダニをどう退治するか?

現在試していること

ダニ駆除用のシートを置く
布団をできるだけ天日干し
部屋の掃除、掃除機でホコリチリを吸い取る
キンチョール

ダニがいた場所

畳、布団、麦わら帽子
麦わら帽子にダニがいたことに気づかずに、約5年もかぶっていた。
気づかない理由は、週末に家庭菜園のために実家にかえって実家に置いてある麦わら帽子を使っていた。炎天下で作業するためにダニは逃げるだろうと思いこんでいた。
実際は、ダニが逃げる前に頭皮、横顔を刺されていたようだ。
麦わら帽子をかぶらずにいたら刺されなかった。その後、帽子はキンチョールで殺虫して、太陽光線消毒した。その後は刺されていない。

楽天証券のマーケットスピード2、エクセル、別のブックのセルからコピーする案

作業はこれからで、アイデアだけをまとめておく

楽天証券の「マーケットスピード2」(2)のRSSと「マーケットスピード」(1)のRSSは構成が異なる。
「マーケットスピード」(1)(以下(1)とする)のRSSは実行形式であり、(1)を起動してRSS.exeを起動する必要があった。
一方「マーケットスピード2」(以下(2)とする)のRSSは、(2)を起動すれば使用できる。(2)用のRSS.exeは存在しない。
なお、エクセルのアドイン登録がどちらの場合も済んでいるものとする。
(1),(2)は同時に実行が可能である。

やってみたこと

(1)の場合VBAでループ処理により、株価の取得からいくつかの処理を行っていた。
(2)で(1)の同様な機能を実行しようとしても、動作しなかった。
具体的には(1)を別名保存して、(2)用の関数名に置換した。大まかに置換することで実行可能。
必要な関数の変更を行ったが、(2)では実行できなかった。エラー等の発生はないが、マクロとVBAの組み合わせの相性が悪いようだった。

改良

よって、
(2)で(1)と同様な機能を実行する場合、(2)で取得したデータをブックのシートのセルに貼り付け、その貼り付けたデータを別のブック(VBAコードあり)へコピーすることにした。
つまり、(2)のブックで株価等のデータを集め、別の処理をするブック(B)を作成し、ブック(B)にループ処理を行うVBAコードを記述することにした。

ブックA(マーケットスピード2のRSS):株価等の情報をセルに確保

ブックB(VBAコード):株価等の情報をもとに適宜必要な処理を行う。

VBA,マクロ

ブックAのマクロ
(これから)

ブックBのVBAコード
(これから)

以前のRSSを利用したマクロ