問題タブ [scnnode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4130 参照

swift - SCNNode でヒットを返さない hitTesting に SceneKit を使用する

XCode のドキュメントには、3D ライン セグメントのテストを計画している場合、SCNRender、SCNView、または SCNNode 自体を使用して、SceneKit でのジオメトリのヒット テストを実行できることが明確に記載されています。レンダラーやビューのないノードで SCNScene を使用しているため、SCNNode hitTesting を使用する予定です。SCNScene を作成し、そこに SCNNode を配置して、通過する単純な光線をテストしますが、常に空の hitList が返され、その理由がわかりません。

さまざまな形式のオプションを渡そうとしましたが、何も変わりません。

  1. SCNHitTestFirstFoundOnlyKey: yes または no は何も変更しません
  2. SCNHitTestSortResultsKey: yes または no は何も変更しません
  3. SCNHitTestClipToZRangeKey: SCNNode では無効
  4. SCNHitTestBackFaceCullingKey: yes または no は何も変更しません
  5. SCNHitTestBoundingBoxOnlyKey: yes または no は何も変更しません
  6. SCNHitTestRootNodeKey: シーンまたは boxNode の rootNOde は何も変更しません
  7. SCNHitTestIgnoreHiddenNodesKey: yes または no は何も変更しません

私は何を間違っていますか?

0 投票する
2 に答える
1796 参照

ios - SceneKit - 任意の縮尺で等しい線幅のスケーリング円を描画します

SceneKitで拡大縮小アニメーションの円を描きたいです。円は、半径を 1 秒で (おそらく) 100 から 200 に変更します。幅(ランダム値)5の円の輪郭だけが見えます。

SCNShape と UIBezierPath で円を描きます。円をスケーリングしても、アウトラインの幅も変化するため、役に立ちません。フレームごとに SCNNode の SCNGeometry プロパティを変更すると、非常にコストがかかり、CPU 使用率が 100% になるため、これも実際には機能しません。

最善の方法が何であるかを知っている人はいますか?

0 投票する
1 に答える
713 参照

iphone - SceneKit Physics – 摩擦多面体と凹面多面体

私はシーン キットでコーンホール ゲームに取り組んでおり、バグSCNPhysicsShapeSCNPhysicsBody摩擦に遭遇しました。ゲームのボードは.daeファイルを介してロードされ、SCNPhysicsShapeTypeConcavePolyhedron. これにより、ビーンバッグが穴から落ちますが、ボードの摩擦が無効になるようです. ビーン バッグがボードに当たると、摩擦値が 1.0 であるにもかかわらず、すぐに滑り落ちます (ビーン バッグの摩擦値も 1.0 です)。ボードを変更するとSCNPhysicsShapeTypeConvexHull、摩擦は機能しますが、ビーンバッグは穴から落ちません.

これが私のカスタムボードの初期化です:

そして、これがビーンバッグのカスタム初期化です

これらは両方とも、サブクラス化するクラスの init メソッド内にありますSCNNode

私の質問は、どうすればボードを維持ConcavePolyhedronし、同時に摩擦を機能させることができるでしょうか?

0 投票する
2 に答える
877 参照

ios - カメラの移動中に SceneKit ヒット テスト エラーが発生しました

初期化で次のようにカメラを宣言します。

この後、tapGesture ブロックでヒット テストを行います。

これは私が望むものを返し、ノードを取得しました。新しいカメラを追加してシーンの視点を変更した後

カメラの位置が変更されると、以前に使用したのと同じヒット テストで長さ 0 の配列が返され、コンソールで次のエラーが発生しました。

誰でもこれを解決するのを手伝ってくれますか? ありがとう

0 投票する
1 に答える
1010 参照

ios - SceneKit、SCNNode が完全に表示されているかどうかをテストします

2 つの SCNNode が隣り合っています (1 つの大きなボックスと 1 つの小さなボックス)。

親を回転させて、小さなボックスがカメラに表示されなくなることがありますが、大きなボックスの後ろにあるために小さなボックスが表示されなくなったことを知ることはできますか?

私の現在の構造

0 投票する
2 に答える
642 参照

ios8 - 位置を保持したまま、サブ SCNNode を rootNode に移動します

rootNodeに削除および追加されたサブノードの位置を保持するのに問題があります。親ノードとサブノードの両方にピボット変換があり、これが問題の一部だと思います。transformプロパティをworldtransformプロパティに設定してから、ノードを削除してルートに再接続しようとしました。しかし、位置がわずかに移動します。ピボット トランスフォームを削除し、ワールドトランスフォームをルート ノードに追加して、ピボットを復元しようとまし。解決したと思っても、特定のノードをルート ノードとして再接続するとジャンプすることがあります。

サブノードと親ノードのピボットがworldtransformに影響しているようです。したがって、親ノードを方程式から外すと、最終的な位置がずれるようです。

物理的な位置/回転を維持しながら、サブノードをルートノードに追加する方法はありますか?

任意のポインタをいただければ幸いです。

0 投票する
2 に答える
1098 参照

scenekit - SCNNode で SCNAction を実行すると、ノードの位置が変わりますか?

ノードで SCNAction を実行するかどうかを誰かが知っているかどうか疑問に思っていましたが、そのノードがアクションを実行している間に、シーン座標系での位置を見つける方法はありますか?

2 つの SCNNodes A と B があるとしましょう...

AのSCNActionを実行したい

A がそのアクションを実行している間、B はリアルタイムでそれをフォローしますか?

したがって、B が繰り返されるたびに、移動先の A の新しい更新された位置が与えられます。

私が得ている問題は、AのpresentationNodeを上記のSCNActionに設定しても、設定した初期入力をまだ返していますが(これは理にかなっています)、Aの更新された位置を取得するにはどうすればよいですか?

補足: A.presentationNode.position を取得すると、デフォルトの Zero Vector が取得されます

解決済みの質問

さらに調査した結果、SCNSceneRendererDelegate の使用方法を見つけ、ノード A の位置を更新する (void) メソッドを作成し、同じメソッド内で B を A の更新位置に移動する SCNAction を作成しました。

誰かが同様の問題を抱えていたり、コードを見たい場合は、私に知らせてください。投稿します!