頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Macで一太郎のjtdファイルを見る

町内会関連で引き継いだUSBメモリ内に拡張子がjtdのファイルがあってなんだ?と思ったら一太郎のファイルらしい。
なんとかMacで見られないものか(編集はできなくてもいいから)と調べるとこんな記事が↓

Mac上でWindowsのアプリを動かしてみよう!(Boot Campは使いたくない人必見!) | アップル大好きmaroのブログ

これを参考にPlay on Macをダウンロード(妙に時間がかかった)。
XQuartzもインストール。他にもいろいろあったが指示通り。
一太郎ビューアも公式からダウンロード。

すんなりとインストールできたわけじゃないけど、もがいてたらやっと起動した。

Play on Mac
↑ここで一太郎ビューア2014を選択し、実行すると、、、

Wineエクスプローラ

↑Wine エクスプローラなるものが起動し、目当てのjtdファイルを選択すれば見ることができた!



(備考)
High Sierra 10.13.4
Play on Mac 4.2.12
一太郎ビューア 24.0.1.0


SCNPhysicsHingeJointで謎の誤差

SceneKitで作る振り子

↑SceneKitでこういう振り子を作るのに、振り子のオブジェクト(ここでは直方体)を空間にSCNPhysicsHingeJointで固定している(横の支柱は今回は物理演算には関係のない飾り)。

この時のコードはこんな感じ↓
{
        SCNVector3 xAxis = SCNVector3Make(1.0 , 0.0 , 0.0);
        SCNVector3 anchor = SCNVector3Make(0.0, pendulumHeight/2.0, 0.0);
        SCNPhysicsHingeJoint *hingeJoint = [SCNPhysicsHingeJoint jointWithBody:pendulumNode.physicsBody axis:xAxis anchor:anchor];
        [mainScene.physicsWorld addBehavior:hingeJoint];
}
これでx軸方向のベクトルを中心に回転するjointが設定できる。振り子にトルクをかければちゃんと振り子のように動く。
ここまではいいんだけど、この時振り子の位置を確認すると、なんだかよくわからない誤差がある。

SCNNodeオブジェクトの位置・姿勢が取得できない
なおこういう場合、位置は↑のように pendulumNode.presentationNode から得る。

上のコードで pendulumHeight=2.0 、回転軸の高さがy=0なら初期の静止した状態の高さyは-1.0のはずが -1.014 とかになってしまう???

なんや、その誤差は?

振り子の付け根部分のずれ

↑本来なら棒の端と板の端は同じのはずが、確かにずれてる。

以前使ってたBulletという物理エンジンのことを思い出すと、まあこういうジョイント部分もオブジェクト同士(今回はオブジェクトと空間だけど)がかっちりくっついてるかというとそうでもなく、力をかければちょっとは離れる、といった計算になることも多分ある気がする。
もしかしてSCNPhysicsHingeJointに”固さ”というかそういうパラメータがあるのかな、と思ったけどリファレンスを見る限りなさそう。
オブジェクトの重さで重力方向に下がってしまっているのか?と思い質量を変えてみたけど、この値に変化はなし。
うーん、なんだろうなと思って重力加速度をゼロにしたら誤差はなくなった!
よくわからないけど、なんかそういう仕様になっているようだ。

深く考えるのはよそう、だってSceneKitだもの(みつを)。


SCNNodeオブジェクトの位置・姿勢が取得できない

倒立振子

↑強化学習やってみようかな、と思ってSceneKitでこういう振り子を作ったんだ。いわゆる倒立振子をやろうとしてる。”とうりつしんし”と読むとかどこかで見た気がするが真偽不明。

最初はクリックなりを検出して振り子にトルクを与えて、、、てな感じで動作確認してたんだけど、動いている振り子の位置、姿勢が取得できない、という状況にはまった。
SCNNodeオブジェクトをnodeとすればその位置、姿勢は
node.position
node.orientation
で取得できるやん?
それが振り子をいくら動かしても値が変化しないのよ。

scenekit - Getting an SCNPhysicsVehicle's Position - Stack Overflow

↑いろいろ調べてようやくたどり着いたのがこちら。
確かに presentationNode を使うといけた。
物理エンジンを使った場合にはそういうことらしい。


  TopPage  



Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad