Тёмный
Visual Programmer 西条
Visual Programmer 西条
Visual Programmer 西条
Подписаться
Visual Programmerの西条 信広(Saijo Nobuhiro)です。

現役ソニー社員として、デザイナ 兼 エンジニアとして働く傍ら、
外部では、Artist仲間と共にCreation活動を行っています。

この経験を活かし、このchでは、
installation/ Live演出/ Art作品、をつくりたい人達に向けて、
役立つ情報、tips、を投稿して行きます。

◆更新
不定期(隔週 目標)

◆ 言語
C/ C++/ C#

◆ framework
openframeworks、unity、Arduino、...

◆portfolio
drive.google.com/file/d/1r5tlvaacOHcvMCXlVLCE8e-eU7VJmXP-/view?usp=share_link

◆Contact
お仕事(Art作品の制作系、教育系、etcetc)の ご依頼、作品の使用・掲載 は、下記 mail address or PortfolioのContactよりご連絡ください。動画に関するお問い合わせはコメント欄までお願いします。

saijo.magic@gmail.com
Cの宣言 完全攻略
20:35
3 месяца назад
【C/C++の落し穴】#6 副作用完了点
40:07
5 месяцев назад
【C/C++の落し穴】第5弾
32:06
6 месяцев назад
DualSlider【unity】
26:02
Год назад
Комментарии
@yuhira7275
@yuhira7275 Месяц назад
4:16 付近の式の説明もう少し詳しく教えてください。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Месяц назад
見直してみて、割とsimpleな式なのですが、具体的に、「どう わからない」、とか ありますか??
@yuhira7275
@yuhira7275 Месяц назад
Outの1000ってどこの値でしょうか?
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Месяц назад
@@yuhira7275 15/1000 の所ですかね? 電流が15[mA]なので、[A]に直すのに、1000で割っています。
@yuhira7275
@yuhira7275 Месяц назад
@@VisualProgrammer_Saijo ありがとうございます。
@nthdthdyjsehsnw4ethwbt
@nthdthdyjsehsnw4ethwbt Месяц назад
良く使いますが、違いに関して特に意識してなかったので改めて勉強になりました! 若干本筋と外れますが今ってGetComponentではなくTryGetComponent一択のような記事を見たのですがどうなのでしょうか?(GetComponentはゼロアロケーションではなくTryGetComponentはゼロアロケーションだったり速度もこっちのほうが速い?)
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Месяц назад
コメントありがとうございます。 TryGetComponent、知りませんでした。確かに、調べてみると、「こちらを使うべし」と言う記事がありますね。 時間を見つけて、テストしてみます 勉強になりました!ありがとうございます。
@msgw851
@msgw851 2 месяца назад
この計算は何に使うものですか?😮
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 месяца назад
コメント、ありがとうございます。 例えば、unityやopenframeworksで、 「起動してからの経過時間」に応じて、何か、actionをするprogramを書いた場合に、 この「経過時間」はfloatの値で管理することが、まま あるのですが、 あまりに長い時間、programを走らせていると、この、「経過時間」の精度が落ちていってしまうので注意してね!! 具体的に言うと、openframeworksであれば、 ofGetElapsedTimef()でfloatの値を使って時間管理するよりも、 ofGetElapsedTimeMillis()でuint64_tの型で管理した方が良いですよ! と言うことになります。 ご回答になっていますでしょうか?
@msgw851
@msgw851 2 месяца назад
@@VisualProgrammer_Saijo 了解しました。ご回答ありがとうございます。😀
@syouru
@syouru 2 месяца назад
過去の動画含めて天才すぎる… 勉強になります
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 месяца назад
コメント、ありがとうございます! 自分自身、理解が遅いので、できるだけ分かり易く解説しておりますが、 syouru さんのようなコメント頂けると、励みになります 今後とも、よろしくお願いします!
@kuro39
@kuro39 3 месяца назад
ポインターの動きを理解することができました。ありがとうございます。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 3 месяца назад
コメント、ありがとうございます! 続きもupする予定なので、是非 checkしてみてください!
@フナバシマサアキ
@フナバシマサアキ 5 месяцев назад
そもそもなのですが、アースを通しての帰還なので閉回路が成り立っていないのではと思うのですが。。。
@takuyam8962
@takuyam8962 5 месяцев назад
とってもわかりやすかったです!ありがとうございます. ところで,動画の通りに最新版のopencvを入れて実際にopencvを用いてmacのカメラの映像をキャプチャしようとしましたが, Thread1 : signal SIGABRTいうエラーのせいで,ビルドはできますが実行できません. コードの問題ではないと考えていますが,何か解決法はありますか?
@takuyam8962
@takuyam8962 5 месяцев назад
動画と全く同じコードでもダメでした
@Gingerkanh
@Gingerkanh 5 месяцев назад
Dokdo ❤
@user-zt3tp1is7b
@user-zt3tp1is7b 5 месяцев назад
2:30 付近デジタルデバイスでパワーデバイスをドライブしたときに破損するのはインピーダンスの問題ではないので聞き手としてはとんでもない誤解をさせられることになりますね。その後の説明もなんだか困った感じに・・・今の時代は組み込み屋だからと無理にハードウェアを勉強することもないのではないか?と思いました。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 5 месяцев назад
▼︎カンマ演算子 or 区切り子 の見分け方 (19:52 -) 基本的には、「式の値を持つべき箇所かどうか」、で見分けることができますが、どちらにも解釈できる場合は 、区切り子 として解釈されます。 例えば、Func()が引数 1個、引数 2個、でオーバーロードされていた場合に、 ・Func( 10,20 ); で、 演算子として解釈されたら 引数 1個versionを、 区切り子として解釈されたら 引数 2個versionを、 それぞれ callすることになりますが、 この場合は、どちらにも解釈できるので -> 「区切り子として解釈」されて、 引数 2個 versionがcallされる。 引数を括弧でくくって、 ・Func( (10,20) ); とすると、演算子として解釈されて、引数 1個 versionがcallされる。
@nigeru1-r8v
@nigeru1-r8v 7 месяцев назад
わかりやすい。 そもそもawaitが動画向きの内容なんだろうな。
@taikosan2562
@taikosan2562 7 месяцев назад
わかりやすいです!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 7 месяцев назад
コメント、ありがとうございます!
@ayyatnnk3070
@ayyatnnk3070 8 месяцев назад
非常にわかり易い内容だったのですが、16:50までの基本をC#(.NET Framework)で書いたところ、デッドロックになってしまいMainのwhileループから抜けなくなってしまいました。。。
@cloghjordan
@cloghjordan 9 месяцев назад
もう少し文字が大きいといいです
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 9 месяцев назад
そうですね。 「文字の大きさ」と、「広い情報を一度に見れる」の間で、サイズ調整はいつも悩む所です。 try & errorで上手い所を、探してみますね。 ご指摘、ありがとうございます!
@otanoshimi4
@otanoshimi4 11 месяцев назад
前から思っていたのですが、BGSがセンスいいですね。 4:09 標準から外れてしまうかもしれませんが、VC++ではラムダ式は関数ポインタに直接代入出来たりします。 呼び出し規約はVC++が判断するようです。コールバック関数アドレスをシステムコールに渡す時は割とざっくり渡せます。 Windowsでしか使わないので、まあいいかと思って使っています。std::function、今なら使えそうな気になりました。
@otanoshimi4
@otanoshimi4 11 месяцев назад
shared_ptr分かりやすかったです。一つの構造体を複数のスレッドで使用し最後に使ったスレッドが破棄するような用途で使えそうですね。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 11 месяцев назад
ありがとうございます! 自分も頭を整理しながら、動画作成しております。 今後とも、よろしくお願いします!
@otanoshimi4
@otanoshimi4 11 месяцев назад
実は、今までshared_ptrはリファレンスではとっつきにくくて使っていませんでした。 unique_ptrのデリーターはWindowsで申し訳ないのですが例えばスレッドをロックするのに使えます。 unique_ptr<CRITICAL_SECTION, decltype(LeaveCriticalSection)*> unique_lock = { [pNode]() {EnterCriticalSection(&pNode->cs); return &pNode->cs; }() ,LeaveCriticalSection }; みたいな感じで、複数の箇所でリターンする可能性がある場合に便利です。
@上田利之
@上田利之 Год назад
すんげ~分かりやすかったです!本当にありがとうございます。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます!
@りんりん-i9m
@りんりん-i9m Год назад
細かいことで申し訳ないのですが動画内のLastUpdateはLateUpdateとは別物ですか?
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
すいません。LateUpdateの誤りでした。 ご指摘頂き、ありがとうございます!
@nthdthdyjsehsnw4ethwbt
@nthdthdyjsehsnw4ethwbt Год назад
素晴らしい動画ありがとうございます。キャンセル周りめちゃくちゃ曖昧だったのですが、理解出来ました。 キャンセルされたかどうかが分かるだけでキャンセル処理自体は自分で書かないとなんですね。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます! 今後も、わかり易い説明を心掛けて動画をupします!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
■訂正 1 18:14 誤:Func<T, TResult> 正:Func<TResult> 説明: Heavy()には引数を渡していますが、delegateは、「引数なしで戻り値あり」なので、Func<TResult>、となります。 ■訂正 2 await t; すると、await以下の処理をタスクスケジューラに追加し、この、「追加されたTask」を戻り値として、関数の呼び元に制御を返します。 次の動画で説明します。 ■訂正3 unityの説明で、 誤 : LastUpdate 正 : LateUpdate
@nthdthdyjsehsnw4ethwbt
@nthdthdyjsehsnw4ethwbt Год назад
す、凄い!今まで見てきたasync/awaitの説明の中で一番分かりやすい! awaitで待ってるもんだと思ってたら、これはすぐ返してるんですね・・・。だからTaskの戻り値無くても関数の戻り値をasync Taskにしないといけないと。voidじゃだめな理由も理解出来ました。あと、コンソールだとawait跨いだ後はスレッドは戻らずにその先で処理をするのも初めて知りました・・・。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます!
@uprobo4670
@uprobo4670 Год назад
@whilewecan
@whilewecan Год назад
有難うございました。非常に役立ちました。ところで、こういうことから、機器どうしを繋ぐコネクタの場合、信号回路(信号極)では、接触抵抗が大きくても構わない、しかし、電力伝送の回路(パワー極)では、接触抵抗値はできるだけ低く、というふうにすべきだ、と考えていいでしょうか。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
ご質問、ありがとうございます! 私自身、Programmerであって、電子回路にそれ程詳しい方ではないので、ちょっと自信がないのですが、 接触抵抗が出力インピーダンスに乗ると考えれば、そう言うことになるのだと思います。 すっきりしない回答で、申し訳ありません。
@AU2010A
@AU2010A Год назад
こういった詳しい説明は海外では多いけど、日本ではなかなかやってくれる方が居ないので助かります。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます。 今後も一緒に、勉強していきましょう!
@gentceramics
@gentceramics Год назад
おおおお 西条さん!!!! ナイスデス!! ありがとうございます!!!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
横山さん、こちらこそ! また、作品づくり できるのを楽しみにしております
@nthdthdyjsehsnw4ethwbt
@nthdthdyjsehsnw4ethwbt Год назад
めちゃくちゃ分かりやすかったです!
@user-sf3dx1iq9e
@user-sf3dx1iq9e Год назад
助かりましたー!ありがとうございます🙇‍♂️
@user-fb4mw1fg5f
@user-fb4mw1fg5f Год назад
めちゃくちゃ為になるしわかりやすかったです!解説ありがとうございます!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
ありがとうございます! 今、展示会前で更新できていないのですが、またupしていきます。 よろしければ、チャンネル登録など、お願いします!
@otanoshimi4
@otanoshimi4 Год назад
ポータビリティーを持たせるのであれば、stdライブラリでやるのがいいのでしょうが、これは大変ですね。スレッドプールに移行したくなりますね。スレッドプールなら、セマフォとキューでcoutは1スレッドのみみたいなのが、理解しやすい形でコーディング出来ます。
@trevelyan0113
@trevelyan0113 Год назад
度々すみません。色々試していく中で気づいてしまいました。 5:42 で説明されていたtransform.RotateAroundの第2引数ですが、transform.upの代わりにVector3.upを渡して transform.RotateAround(rot_center, Vector3.up, angle.y); で横方向の回転を行うとカメラが水平を保てなくなる問題は起きませんね。rot_centerの真上付近でカメラが一気に回転してしまう問題もこの方法だと起こりませんでした。これが最適解なのではと思ったのですがいかがでしょうか。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
とんでもないです。コメント ありがとうございます。 ちょっと今、2月のEventに向けて作品 制作中でして、中々時間が取れないのですが、 時間見つけて、試したり、考えたりしてみます。 検討結果をshare頂けるのは、とても嬉しいし、助かります。 ありがとうございます。
@suzilard
@suzilard Год назад
Mixedの設定でぜんぜん上手くいかない所があり頭抱えていたのですが、この動画のおかげで解決しました、動画アップしていただきありがとうございます!!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます。 お役に立てたようで、嬉しく思います
@suzilard
@suzilard Год назад
@@VisualProgrammer_Saijo ご丁寧に返信ありがとうございます! そして、すみません、ぶしつけな質問で申し訳ありませんが、1点分からない所がありまして… シェーダーによって、影がベイクできる/できないものがあると思うのですが、それを見極めるポイントはあったりするのでしょうか?(例えばインスペクタの◯◯の部分のパラメータをみればわかる、など)
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
@@suzilard shaderによって・・・と言うのは知りませんでした。不勉強ですいません。 もしpointがわかったら、ぜひ教えてください。。
@suzilard
@suzilard Год назад
@@VisualProgrammer_Saijo すみません、もしかしたら私の勘違いかもです・・・ もう少ししっかり調べた後、何か分かりましたらまたコメントさせていただきます!🙇
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
@@suzilard こちらこそ、すぐお答えできたら良かったのですが。 一緒に、勉強していければ、と思いますので、今後とも、よろしくお願いします!
@davidabel9082
@davidabel9082 Год назад
Ohayo Arigato Thank you for this video, It allowed me to operate with this sensor because it is not easy to find information on its wiring and programming. Should we just think about correcting GP2Y0E03.cpp and replace the #include arduino.h by #include Arduino.h . Sayonara
@trevelyan0113
@trevelyan0113 Год назад
8:36 辺りからの説明で、v_upの計算に4行かかっていましたが、以下のようにすると1行でスッキリ書けますね。 Vector3 v_up = Vector3.ProjectOnPlane(vector: Vector3.up, planeNormal: transform.forward);
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
Vector3.ProjectOnPlane() と言う関数は使ったことが ありませんでした。 便利な関数ですね! ありがとうございます。
@m198891
@m198891 Год назад
こんにちは、英語の翻訳者を同行させていただけますか。 どうもありがとうございました . Pozdrawiam z Polski !
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
I'm sorry that my explanation is in Japanese.
@m198891
@m198891 Год назад
@@VisualProgrammer_Saijo Thank you very much for the movie, I learn a lot from it. Thank you !
@trevelyan0113
@trevelyan0113 Год назад
カメラが水平を保てなくなる問題に今まさに直面しておりました。理屈から説明してもらってとても良い動画でした。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます。 今後も、わかり易い動画をupできるよう、心掛けます。
@kazuhiro68
@kazuhiro68 Год назад
公式チュートリアルやサンプルやリファレンスで分からなくて知りたかったところをドンピシャで教えてくれるのはありがたくて感動しました。とてつもない価値を感じました。全部見させていただきます。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo Год назад
コメント、ありがとうございます。 とても励みになります!!
@boribori88
@boribori88 2 года назад
モヤモヤしていたところだったので、非常に勉強になりました! 今後も動画楽しみにしています。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
コメント、ありがとうございます。 また是非、遊びにきてください
@user-pb7wc9fc2x
@user-pb7wc9fc2x 2 года назад
他の方の解説動画色々見ましたが、ここが一番丁寧で分かりやすい。 ブラシの回転とかどうやるの?って思っていましたし、 その他の痒いところにも手が届いていて大変助かりました!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
ありがとうございます。 今後もできるだけ丁寧に説明していこうと思います。
@nodesans603
@nodesans603 2 года назад
Wow, that's really cool!
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
Thanks for your comment!
@yuseiniwa2773
@yuseiniwa2773 2 года назад
質問なのですが、OFで動画の書き出しは可能なのでしょうか?
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
やったことはないのですが、 連番で静止画を書き出して、ffmpegで連結、と言う方法があるようです。 qiita.com/y_UM4/items/256eaa33498bef7864ef
@mujomuric446
@mujomuric446 2 года назад
すごい istANBUL から来ました
@mujomuric446
@mujomuric446 2 года назад
トルコ語
@uprobo4670
@uprobo4670 2 года назад
❤🖤
@uprobo4670
@uprobo4670 2 года назад
Thanks from Jordan :)
@kittyask90714
@kittyask90714 2 года назад
小型の AM312 にしたけど、室内での動作、工作ならいいけど玄関前の実用だと、ただの風センサって感じ。微風でも感じちゃう。内蔵プルアップ、外部プルアップ抵抗も容赦なく反応で、センサ選びを間違えた様ダス。ありがとうございます。プロッター 参考になりました。
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
コメント、ありがとうございます。 AM312と言うセンサもあるのですね。
@M1RR0R
@M1RR0R 2 года назад
ありがとうございます☺️🇹🇷🙋‍♀️
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
Thanks for your comment!
@Mail-cb3iq
@Mail-cb3iq 2 года назад
Hello ! could you help me? I have an error with Expected class name on line 33 of ofxvboset.h
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
Hi, Mail! Sorry for the late reply. Please install 2 add-ons from the link below. ---------------------------------------- ■add-on ofxVboSet github.com/SJ-magic-oF-addon/ofxVboSet ofxNoncopyable github.com/SJ-magic-oF-addon/ofxNoncopyable ---------------------------------------- Hope this fix your project.
@KURCZOKWORKS
@KURCZOKWORKS 2 года назад
Can you tell me how precise this sensor is? What is the maximum measurement frequency per second?
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
I'm not confident but, Measurement range is 4 - 50cm Measurement error is +-1 cm and because this sensor uses trigonometry, the IR light from this sensor should be almost perpendicular(maybe about +- 3 degree) to the object. about the frequency, I have no idea, sorry.
@Riisya_ch
@Riisya_ch 2 года назад
スタンダードアセットをダウンロードしてMy アセットに見てもずらっとインポートできるものの表示がありません💦どうしたら良いでしょうか💦
@VisualProgrammer_Saijo
@VisualProgrammer_Saijo 2 года назад
package managerのMy Assetsを表示したら、windowの左下に "All xx packages shown"とあると思います。 その、ちょっと右に アンダーバー付きで、数字が表示されていませんか? もしあれば、その数字は、「MyAssetにあるが、まだdownloadされていないpackageの数字」です。 このアンダーバー付きの数字をクリックすると、該当package達がdownloadされます。 確認してみてください。
@tiffanywong579
@tiffanywong579 2 года назад
helps a lot, thx!
@NobuhiroSaijo
@NobuhiroSaijo 2 года назад
Glad to be your help. Thanks for your message.