サブルーチン駅前4時29分集合

プログラミングと散歩と数学に興味のある男のブログです。基本的に知識は浅いです。

SambaNova Cloud APIをOpen WebUIで使うときの(些細な)注意

SambaNova Cloud APIはLlama-3.1 405BのAPIを(少なくとも2024年12月8日時点では)無料で使える貴重なAPIです。私はAPIと使って言語モデルを使うときにはOpen WebUIをフロントエンドとして用いているのですが、Sambanova Cloud APIを使おうとしたら本当に少しだけハマったので対処法を書いておきます。

環境
OS : Windows 10 Home
ブラウザ : Firefox
Pythonバージョン : 3.11.9

SambaNova Cloud APIはOpenAIのAPI仕様に準拠しているので、Open WebUIの 管理者パネル->設定->接続からOpenAI APIにbase urlとAPI KEYを入力することによって使うことができます。しかし、私の環境で素直にこの2つを入力して使おうとしたところ、エラーが出ていました。
Open WebUIは起動時に{base url}/models エンドポイントにリクエストを出してモデル一覧を取得しようとするのですが、SambaNova Cloud APIは/modelsエンドポイントを実装していないようです。そのためモデル一覧を取得することができず、SambaNovaのAPIにあるモデルが選択できないという状況になっていました。
しかし、Open WebUIには「/modelsエンドポイントをもたないAPIに対しては明示的にモデルをユーザ側が指定できるようにする」機能があります。これを用いればこの問題を回避することができます。管理者パネル->設定->接続において、API設定にある歯車マークをクリックします。

すると、Model IDsを入力する部分があります。ここにモデル名を入力します。

モデル名はSambaNova Cloud APIのページに載っています。

使いたいモデル名をすべて入力し、保存ボタンを押せばモデルが使えるようになります。

【Blender】男顔進捗

Blenderで顔(一応若めの男性想定)で作っているのですが、なかなかうまくいきません。イラストを重ねてそれと合うように作っているのですが、何となく頭が長いような気がします。多分、アニメ風のイラストではかなり頭が長めに描かれているか、髪の毛に相当のボリュームをもたせているような気がします。髪の毛抜きの状態でモデリングすると、笑っちゃうくらい頭が長くなるので、なんか直感と違って調整が難しいんですよね。コーンヘッドみたいになって違和感が出てしまいます。f:id:zenkashiki011:20220125022207p:plain ↑今時点での進捗です。なんか頭長くない?…何回も見てるとわからないですが

進歩と「顕」

おはようございます。たねろうです。

1年くらい前からBlenderで人体を作っています。Youtubeにある英語の動画を見ながらちまちまと作っているのですが、最初の1体は非常に時間がかかりました。僕が飽き性なこともあり、本当に少しずつしかやっていなかったので半年ぐらいリアルでかかりました。「これは、大学卒業までにまともにアニメを作るのは厳しいかなあ…」と思うくらい果てしない時間がかかったのですが、2体目は1週間で作ることができました。そして、今3体目を作っているのですが、胴体部を一晩で作ることができるようになっていました。

Blenderで勉強してるときは、「こんなん覚えられるかよ…」とか「こんな手順多くて時間かかって無理ぽ…」とか思うのですが、何回も繰り返していくと短い時間でできるようになっていくので楽しいですね。

親指のウェイトの塗り方とボーンの曲げ方がわかりません、だれか助けてください

おはようございます。たねろうです。今日はBlenderの話です。

最近手のモデリングだけを集中的にやっているのですが、悩みが一つ。

親指のウェイトの塗り方がわかりません。正確に言うと、親指の一番付け根のところのボーンに関わるウェイトの塗り方がよくわからないのです。当然ここが塗れないと握りこぶしが作れなかったり剣を持たせたりすることができないので、非常に大切な部分なのですが…。

f:id:zenkashiki011:20211218144417p:plain

今は↑のように塗っています。一見そこそこ上手に動きそうな気がしますが、曲げると…

f:id:zenkashiki011:20211218144538p:plain

f:id:zenkashiki011:20211218144830p:plain

はい、あぼんです。↑の画像では、親指のボーンをグローバルのy軸(緑線)に沿って左側にくるように曲げていますが、ウェイトが乗っている部分が手の平より下に沈み込んでしまっています。当然親指を曲げたからと言って親指の付け根が陥没することは現実世界ではありません。何かが間違っているはずです。

そこで、ボーンの曲げ方を変えてみました。自分の親指を観察してみると、握りこぶしを作るように親指を曲げる際に親指は上から見ると小指側に、側面から見ると手のひら側に移動しています。よって、グローバル座標のZ軸とX軸をその方向に曲げてみると…

f:id:zenkashiki011:20211218150014p:plain

親指の付け根の膨らんだ部分はよさそうです。しかし

f:id:zenkashiki011:20211218150107p:plain

なんか人差し指側の手の側面のあたりがキモい感じになってしまいます。

実は、最初にやったやり方だとこの問題は発生しないんですね。

f:id:zenkashiki011:20211218150743p:plain

y軸のみに沿って曲げた場合上のようにいい感じになります。

したがって、①親指のつけ根を犠牲に側面が整う か ②側面を犠牲に親指の付け根が整う この二律背反が存在していることになります。現実世界では両方とも実現しているので、何か違う方法があるはずなのですが…。

そして、この分野に関しては何故か情報があまりありません。YoutubeGoogleで英語で検索しても、核心に迫るような情報はあまり出てきません。親指以外の4本の指に関してはたくさん情報が出てくるんですけどね…。みんなにとっては何でもない作業なのでしょうか?

自分の中の理屈として、「親指のボーンを現実世界の骨の動きにエミュレートすればうまくはずである。上二つはそのような動きを実現するような回転を行っているが、うまくいっていない。ということは、上二つ以外に望むような位置に移動するような回転の組(x,y,z)が存在するはずだろう」という考えを今持っています。ただ、理想の回転を実現するような回転の解(x,y,z)が何通りあるのかが知識不足がわからないのでモヤモヤしています。クオータニオンとかに詳しかったらもうちょっとわかるんでしょうけどね…。

とりあえず今は解剖学の動画とかで親指の回転の方向とかを調べています。

自分の中で解決策が見つかったら改めてご報告しようと思います。 キャー!

ウェイトペイントは青くても油断するな

 こんにちは。蚊に刺されやすすぎて、夏にはいつも周囲の人に感謝されているたねろうです。

 

 今回はBlenderの話を少しします。

 この前ウェイトペイントを使って作業をしていたのですが、何故か青い(=ウェイトがないはずの)部分がボーンに追従していました。それも、わずかにではなく、割とちゃんと動いていました。あれ?と思い、Nボタンで右上に出てくるところ→[Item]→[Vertex Weight]を見ると、0.03ぐらいの値になっていました。

 

 この値でそんなに動くかねと思ったのですが、きちんと0にしたら直りました。びっくり。遠いボーンにうっかり追従している場合は、思ったより動きが大きくなることもあるのですね…。Blenderのせいにするところでした。

初人体モデリング、完成(出来はひどい)

 こんにちは。関東は雨がザァザァ降っています。雨が降っても降らなくても家からは出ないたねろうです。

 

 今回はBlenderの記事です。やっと、やっと人体モデリングの一体目が完成いたしました。英語のYoutubeを見ながら、えっちらおっちらやりました。マジで1年以上かかりました。

 だけど、なんか違う。いろいろと形がおかしい。モデリング初心者の私として、どこから手をつければよいかすらわかりません。なんか見れば見るほど、どこもおかしいような気がしてきます。

 まあ、解剖学の勉強をしながら、ゆっくりやります。早くアニメーションに移りたい…

 

f:id:zenkashiki011:20210703032447p:plain

(致命的にひどいわけではないが、なんか足りない)

Solar2D(Corona SDK)は、日本語の面を除けばとっつきやすい!

 こんにちは。虫の羽音が苦手なので、夏の到来が憂鬱なたねろうです。今日は、久しぶりにCoronaSDKについて書こうかと思います。過去にブログで取り上げたことはあるのですが、正直言ってあんま勉強できておりません。XamarinとかJavascriptのほうに興味が移っていたもので…。

 その上で、CoronaSDKをほんの少し(マジでほんの少しです)触ってみた上での好きなところとかいろいろ書こうと思います。

 

 まず、プログラミング素人からするとLuaがカンタンで助かります。文法がC#とかに比べると単純なのでとりあえず書くのは楽です。型の指定もしなくてよく、なんと整数型と浮動小数点型の区別もないです。おそらくC言語とかJavaとかをやってる人からしたら適当過ぎて頭が痛くなるでしょうが、「とりあえず動かす」のには便利な感じがします。大規模の開発とかになってくるとちょっと大変そうですが…。

 

 あとは、画面の概念も絶対位置をピクセル指定するだけでとりあえず物を置けたり図形を描画できたりするので簡単です。Xamarinの場合StackLayoutとかGridとかいろいろあって最初は困りますが、CoronaSDKはめちゃめちゃシンプルです。知っている人向けに言うと、「プチコン」とかの単純なBASICでの開発環境に近いです。座標でピクセル打ったりして気軽に遊べます。

 

 ただ、欠点もあります。とりあえず一番困ったのが日本語の情報が少ないこと。英語がイマイチな僕としては大打撃です。具体的に言うと、「Corona SDK」とGoogleで検索したときの検索結果、4ページ目で日本語のページが尽きます。日本語で丁寧に発信をされている方もいらっしゃるのですが、数が少ない…。したがって謎のエラーが出たときは英語で情報を得なければなりません。これはなかなかタフです。僕も「Android Sdkでこれをインストールしろ!」とかいろいろエラーが出て、英語を読みながらなんとか対処しましたが、そのたびごとに「日本語が欲しい…(泣)」と思ったものです。

 

 あとは、Xamarinなどと違いネイティブのコントロールはフルには使えないみたいです。シンプルなボタンの設置とかは簡単なのですが、いろいろやりたいなら大変になってくるかもしれません。

 

 いろいろといい面と不便な面とありますが、僕的にはかなり面白そうな環境だなと思います。やはりLuaというカンタンな言語で、直感的に図形とかを動かしてゲームを作れるのは楽しいです。

 Unityとかも中学生の時に少し挑戦したことがあるんですけど、Unityの操作とc#を同時を覚えるのが非常につらく、難しかった記憶があります。Coronaはそれに比べ、「テキストエディタだけあればいいぞ!display.newTextで文字が表示できるぞ!display.newLineで線が引けるぞ!」って感じでマジでわかりやすいです。特にあんまりプログラミングをやったことのない人とかもとっつきやすいと思います。Lua自体もすごい初心者向けな言語ですし。

 

 もう少し詳しくなったら情報とか発信したいですね…。初めてのパソコンでのプログラミングがLuaだった者としては、Luaももっと有名になってほしいですし。Pythonが花形だけど、Luaも面白いよってね。