Pc-Trace

<< 2024年11月 >>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30






Pc-Trace
PC-Trace

SketchyPhysics - 2015年4月の記事 prev >
>>このカテゴリーの記事一覧

ジョイントツールの”Controller”に「キーコード」を設定

「SketchyPhysics」の ”Controller” の設定ができるようになったところで、今度は直接キーボードの ”キー” から動かす場合をやってみた。

使える”キーコード”の範囲は、キーボード全体が対象と見られるが、これは単なる推測に過ぎず、検証する必要が有る。

個人的に良く利用するキーとして

key("up")*1
key("down")*1
key("right")*1
key("left")*1
key("space")*1

などが対象になるが、今回はオブジェクトをバット代わりに使いたいので、”key("up")*1”(上向きの↑)を使ってみた。

key("???") の書式は既定で、?の部分はSketchyPhysicsが指定する「キーコード(ワード)」を入れる。

「Servo」ジョイントを使って設定するとたったこれだけで済んでしまう。
上向き”↑”キーの嫌いな方は、色々なコードに変更して試してほしい。



実際の動作例(現段階で使い道を検討中。)


※しかし・・・いつまでも簡単な事ばかりしてて良いものか?
添付ファイル 添付ファイル


少し踏み込んで、 Wikia を覗いてみた

複雑な動作を要しない限り、SketchyPhysicsのツールバーに表示されている機能だけで殆ど事足りてしまうが、少し踏み込んで「SketchyPhysicsWiki」の中を除くと、更に便利な使い方が紹介されている。

僅か、10行にも満たないスクリプトを記述するだけで、”更に便利”な使い方ができるなら使わない手は無い。

今回は、最も身近と感じられる
「getVar」と、「setVar」の二つのスクリプトを用い、手抜きの代名詞となった、「観音扉」で試してみた。

設定は、以下の通り

扉の軸としてセットする「Servo」の「Controller」に、値を取得するため、

getVar("tobira01")

と記述する。



※通常は、軸を設定した段階で”slider('servo???')”が既定値としてセットされてくるので、これを上記に書き換える。

カッコ内の "tobira01" は、自分が識別し易い任意の名前を付けられるが、「getVar」は、「Servo」などのジョイントツールから値を取得するための決まりのスクリプト。(決まりなので、考える必要はなくただ記述するのみ。)

他の設定で、
「accel」と、「damp」の設定は割と重要で、
オブジェクトを動かす力や早さは「accel」で設定し、それに抵抗を加えるのが「damp」の役割と言ったところ。
「damp」の設定値を高くすると、扉の開閉をゆっくりと動かす事ができる。

後は、動かされる方のオブジェクトに、アクションに応じた数行のスクリプトを記述するだけ。

下は、マウスのクリックイベントを用いた一般的な記述。
(観音扉の場合、対称に動く2つの扉にどちらも同じスクリプトを記述する)

onclick{
if getVar("tobira01")==0.0
setVar("tobira01",1.0)
else
setVar("tobira01",0.0)
end
}

「Inspector」のダイアログ 最下部に表示されているスクリプトのチェックボックスにチェックを入れると、テキストボックスが現れるので、上のスクリプトをコピペして貼り付けるだけで良い。

たったこれだけで動作する。



※ヘルプや参考が必要無い場合、「SP Wiki」をクリックしなくても他の空白をクリックしてもテキストボックスは表示される

「Servo」のジョイントが邪魔な時は、レイヤの「SketchyPhysics」のチェックを外すと非表示にできる。


添付ファイル 添付ファイル


caterpillar 作ってみた Ver2

前回のキャタピラの作り込みと動作があまりにもヒドイので、Ver2を作ってみた。(ボックス形状の動作については”Cylinder”属性を持たす事で、解決済みである。)

「Motor」ジョイントのコントロール・スライダーを下記のように動作するよう、設定

中心=停止
左=逆転
右=正転

(※ Inspectorの「Controller」設定値に-0.5を加えるだけ・・・つまり、スライダーの中心が”0”になると言うこと)



添付ファイルは今回のモデルデータ
添付ファイル 添付ファイル


caterpillar 作ってみた

「SketchyPhysic」をやり始めた初心者にとって、他の人の作品は刺激の宝庫である。

と、言う訳で、鉄板が鎖のように繋がった刺激のある「caterpillar」を作り、一つ一つの繋ぎ目に「Hinge」ジョイントをセットして動かしてみた。

キャタピラが、円盤の中心にセットされていないため、少しづつ”ズレ”が生じ、やがて奈落の底へ落ちていく。



円盤をグループ化するとボックス形状で運動するため、綺麗な円運動を再現できていないが、まだ、チンプンカンプンなので、後日詰めて解決したい。
添付ファイル 添付ファイル


写真に浮かべてみた

進歩のない”浮かべてみた”の続き。

浮力設定時に表示される水面の下に、写真を敷いてボートを浮かべてみた。(写真なので、当然波はたたない。)

途中、コンテキストから指定しているのは、カメラフォローの指定。
本格的な作り込みをしたとき威力を発揮しそうである。




浮かべてみた

ボートを作ると、自ずと浮かべたくなる。
ただそれだけでやると、結果もそれだけであった。


先日作った船が「浮力の設定」を呼び出すだけで浮かぶのか、試してみたくなったのでやってみた。


浮力の設定(斜め45度に流れるよう、XとYの値を設定しただけ)


何も解らず手を出すと”こうなる!”の典型的な動画


当分後回しになりそうである。


コントローラの共有2 ボート

「Servo」ジョイントを利用して、先日の復習。

5分程度で作成した簡単なボートを利用し、ハンドルと方向舵を1つのコントローラで動かして見たもの。

前回と同じ手法を使った。



※添付ファイルはSUデータと大きいサイズのmp4動画
添付ファイル 添付ファイル


コントローラの共有・ 観音扉の作成

前回の記事に、
ジョイント「Servo」は”もれなく”スライダーのコントローラが付いてくる。
と書いたが、複数のジョイントを1つのコントローラで共有する事ができる。

実際に、振る舞いが対称になるような観音扉でも可能なのか試してみた。



※下は実際のデータと、大きいサイズのmp4動画
添付ファイル 添付ファイル


自動走行するおもちゃの制作

「Hinge」と「Motor」、「Servo」の練習が一通り済んだところで、自動走行する”おもちゃのワゴン”を制作してみた。

これもよく目にする単純なモデルだが、つい、数日前までは、とても難しく思えていた。



基本的にはこれまでの復習であるが、今回はグランドを配置し、走行用のベースが加わったくらい。

※下の添付ファイルは、mp4の大きいサイズの動画
添付ファイル 添付ファイル


SketchyPhysics:「Servo」の練習

「SketchyPhysics」を使い始めて”はや3日”。
人に追いつくのは容易で無いことをしみじみ実感する。

今日は、「Servo」だけを使った練習をしてみた。(まだ精一杯)
ジョイント「Servo」は”もれなく”スライダーのコントローラが付いてくる。

シドロモドロにオブジェクトを作成する光景は無駄な時間なので、さっさと飛ばして設定部分だけを見る事をオススメしたい。



ジョイントを設定したにも関わらず、予期しないはずれ方をする時がある。(今回の回転盤がそうだが)
再生してよく見ると「Ctrl」キーと「Shift」キーを押し間違えて設定している事が、選択されたオブジェクトの色で分かる。(青はグループ化する時の色で、関連付けは緑である。)

※今回は、アームの動作範囲を制限したり、衝突の設定をしなかったが、UIボタンを押していつでもInspectorを呼び出し、設定できる。


※下は、今回練習で作成したSketchUpのzipファイルとmp4動画
添付ファイル 添付ファイル


二枚折れ戸の作成

「SketchyPhysics」で少し分かりづらいと感じるのが下のパターン。

動画は、単純な二枚繋がりの”折れ戸”再現したものだが、「Hinge」で、ただ扉を繋ぐだけではうまく動作してくれない。

「Hinge」をオブジェクトに繋いだだけでは、ジョイントが固定されて(つまり、繋がれたオブジェクト側が動く)機能しているため、複数のオブジェクトをシリーズに繋いで使用する場合、ジョイントの間に挟まれたオブジェクトは動けなくなってしまう。

これを解消するため、支点を離れて動くジョイントは、オブジェクトと一緒にグループ化して動けるようにしてやる必要がある。



※下の添付ファイルは大きいサイズのmp4動画
添付ファイル 添付ファイル


SketchyPhysics3:ピストン運動

「SketchyPhysics」で前々からやりたかった事がある。
複数のジョイントを用いた、ピストン運動がそれで、Slider、Hinge、Motorの3つのジョイントを使って実現する。

動画で目にする事は度々あったが、「SketchyPhysics」をやり始めた初心者にとって頭を使う、非常に良い題材となった。



※今回の覚え書き(すべてに当てはまるか不明)
2つのオブジェクトが、1つのジョイントを共有する場合、ジョイントコネクタで選択する順番を、
1番目にジョイント、続いてオブジェクト1、2の順で選択していく

※添付ファイルは、大きいサイズのmp4動画
添付ファイル 添付ファイル


SketchyPhysics3:「Motor」

「SketchyPhysics」の”感”を掴み始めたついでに「Motor」ジョイントを使って回転体を作成してみた。

簡単な羽根(ピッチなし)を作って、回してみるついでに「UI」ボタンの「Inspector」を呼び出し、回転数や、回転方向なども設定してみる。

(この動画の、回転数を上げた設定では羽根が止まって見えてしまう)




UIボタンから、「Inspector」を呼び出す際、使用するジョイントのタイプにより設定する項目の数も変化する。
下の画像は、ジョイント毎(Motor、Hinge、Servoの順)の、Inspectorの設定画像

モーターのInspector


ヒンジのInspector


サーボのInspector


※下は、大きいサイズの練習動画
添付ファイル 添付ファイル


二つのオブジェクトを一つのヒンジで繋ぐ

SketchyPhysics3のヒンジ「Hinge」練習2

一つのヒンジで、二つのオブジェクトを繋ぎ、ついでに衝突の振る舞いを確認してみた。

※ここでの注意は、必ず先にヒンジを選択する事である。
(どちらかのオブジェクトを先に選択してしまうと、ヒンジしか選べなくなるので分かる)



※下の添付ファイルは、大きいサイズの「mp4」動画
添付ファイル 添付ファイル


SketchyPhysics3:「Hinge」

無事に「SketchyPhysics3」が動作するようになり、先ずは覚える事から。
練習の手始めとして、「Hinge」を設定してみた。

ドアの開閉など、頻度の高そうなジョイントツール。



これから、期待の持てるプラグインになりそうである。

※下の添付ファイルは、大きいサイズの「mp4」動画
添付ファイル 添付ファイル


prev >