ArFragmentで3Dオブジェクトを表示します。そこで、sampledataフォルダーに.objファイルと.mtlファイルを配置しました。 objファイルを右クリックし、[シーンフォームアセットのインポート]を選択して.sfa/.sfbファイルを追加します。
画像にマークを付けると3Dオブジェクトを表示できますが、オブジェクトが大きすぎます。
これは私の.sfaファイルの詳細です
{
bound_relative_root: {
x: 0.5,
y: 0,
z: 0.5,
},
materials: [
{
name: "Material.001",
parameters: [
{
baseColor: null,
},
{
baseColorTint: [
0.80000000000000004,
0.80000000000000004,
0.80000000000000004,
1,
],
},
{
metallic: 1,
},
{
roughness: 0.120695,
},
{
opacity: null,
},
],
source: "build/sceneform_sdk/default_materials/obj_material.sfm",
},
],
model: {
attributes: [
"Position",
"TexCoord",
"Orientation",
],
collision: {},
file: "sampledata/dongbaek.obj",
name: "dongbaek",
recenter: "root",
scale: 0.200000
},
version: "0.52:1",
}
目盛り部分でリサイズできると思いますが、値を変えても変わらないです。同じサイズ
では、3Dオブジェクトのサイズを変更するにはどうすればよいですか?
3Dオブジェクトファイルを追加して.sfa/.sfbファイルを作成するときに問題はありますか?(シーンフォームアセットのインポート)
それについて知っているなら、私を助けてください。
オブジェクトのスケーリングは、スケールコントローラによって変更されます。 minScaleとmaxScaleの値を設定する。親-アンカーノードを設定する前。以下の例を参照してください。
// Create the Anchor.
Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());
// Create the transformable andy and add it to the anchor.
TransformableNode node = new TransformableNode(arFragment.getTransformationSystem());
node.getScaleController().setMaxScale(0.01f);
node.getScaleController().setMinScale(0.01f);
node.setParent(anchorNode);
node.setRenderable(renderable);
node.select();
プロジェクトによって異なるアプローチ:
ARCoreでモデルのサイズを変更するには、次のコードを使用します:
TransformationSystem transSys;
transSys = MainActivity.getArFragment().getTransformationSystem();
TransformableNode myNode = new TransformableNode(transSys);
myNode.setLocalScale(new Vector3(0.25f, 0.25f, 0.25f));
myNode.setParent(anchorNode);
//myNode.setParent(sceneView.getScene());
myNode.setRenderable(myModelRenderable);
sceneView.getScene().addChild(node);
myNode.select();