- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,我在这里使用 ARKit 和 SceneKit,我无法查看其他仅处理 SceneKit 试图在 .dae
中创建模型的问题格式化并加载各种动画以运行该模型 - 现在我们在 iOS11 中似乎有些解决方案不起作用。
这是我获取模型的方法 - 从基础 .dae
没有应用动画的场景。我正在使用 Maya 导入这些 -
var modelScene = SCNScene(named: "art.scnassets/ryderFinal3.dae")!
if let d = modelScene.rootNode.childNodes.first {
theDude.node = d
theDude.setupNode()
}
然后在 Dude 课上:
func setupNode() {
node.scale = SCNVector3(x: modifier, y: modifier, z: modifier)
center(node: node)
}
需要轴的缩放和居中,因为我的模型不在原点。那行得通。然后现在使用另一个名为“Idle.dae”的场景,我尝试加载动画以便稍后在模型上运行:
func animationFromSceneNamed(path: String) -> CAAnimation? {
let scene = SCNScene(named: path)
var animation:CAAnimation?
scene?.rootNode.enumerateChildNodes({ child, stop in
if let animKey = child.animationKeys.first {
animation = child.animation(forKey: animKey)
stop.pointee = true
}
})
return animation
}
我打算对我导入到 Xcode 中的所有动画场景执行此操作,并将所有动画存储在
var animations = [CAAnimation]()
第一个 Xcode 说
animation(forKey:
已弃用并且这似乎不起作用(据我所知)我的模型离中心并缩小到原来的巨大尺寸。它搞砸了它的位置,因为我希望让模型在动画中移动,例如,会使我的游戏中的实例化模型捕捉到相同的位置。
.dae
设置动画。我在场景中的任何地方实例化的模型 -
最佳答案
首先我应该确认CoreAnimation
框架及其一些方法,如 animation(forKey:)
实例方法在 iOS 和 macOS 中真的被弃用了。但是 CoreAnimation
的某些部分框架现在实现到 SceneKit
和其他模块。在 iOS 11+ 和 macOS 10.13+ 中,您可以使用 SCNAnimation
类(class):
let animation = CAAnimation(scnAnimation: SCNAnimation)
在这里
SCNAnimation
类具有三个有用的初始化器:
SCNAnimation(caAnimation: CAAnimation)
SCNAnimation(contentsOf: URL)
SCNAnimation(named: String)
另外我要补充一点,您不仅可以使用
.dae
中烘焙的动画。文件格式,也可以是
.abc
,
.scn
和
.usdz
.
SCNScene
的内容文件或选择性地提取场景的某些元素,而不保留整个场景及其包含的所有 Assets .
SCNSceneSource
的代码可能看起来像:
@IBOutlet var sceneView: ARSCNView!
var animations = [String: CAAnimation]()
var idle: Bool = true
override func viewDidLoad() {
super.viewDidLoad()
sceneView.delegate = self
let scene = SCNScene()
sceneView.scene = scene
loadMultipleAnimations()
}
func loadMultipleAnimations() {
let idleScene = SCNScene(named: "art.scnassets/model.dae")!
let node = SCNNode()
for child in idleScene.rootNode.childNodes {
node.addChildNode(child)
}
node.position = SCNVector3(0, 0, -5)
node.scale = SCNVector3(0.45, 0.45, 0.45)
sceneView.scene.rootNode.addChildNode(node)
loadAnimation(withKey: "walking",
sceneName: "art.scnassets/walk_straight",
animationIdentifier: "walk_version02")
}
...
func loadAnimation(withKey: String, sceneName: String, animationIdentifier: String) {
let sceneURL = Bundle.main.url(forResource: sceneName, withExtension: "dae")
let sceneSource = SCNSceneSource(url: sceneURL!, options: nil)
if let animationObj = sceneSource?.entryWithIdentifier(animationIdentifier,
withClass: CAAnimation.self) {
animationObj.repeatCount = 1
animationObj.fadeInDuration = CGFloat(1)
animationObj.fadeOutDuration = CGFloat(0.5)
animations[withKey] = animationObj
}
}
...
func playAnimation(key: String) {
sceneView.scene.rootNode.addAnimation(animations[key]!, forKey: key)
}
关于swift - SceneKit - 如何获取 .dae 模型的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46209555/
我已从 Blender 导出了 sphere.dae 文件并导入到 Xcode 中。该网格文件具有纹理和法线贴图。我已将纹理和法线贴图应用到 Scenekit 编辑器中的球体文件,并且网格文件在编辑器
我正在尝试使用 TinyXML 将网格从 .dae 文件读取到 DirectX 项目,但我很难理解 .dae 文件如何存储网格数据。 我相信我已经找到存储网格数据的位置:在标签内 有以下代码:
我用 blender 制作了 3d 模型,我想在场景套件中使用它。 var platform = SCNNode(); let dae = SCNScene(named:"platform.dae")
我正在尝试找出 Dymola 解决 Modelica 代码所需的步骤。通过阅读一些引用文献和书籍,我了解到 Dymola: 将 Modelica 代码转换为混合 DAE(扁平化)。 操纵 DAE 以将
大家好 我想在 js 中动态更改 .dae AFRAME.registerComponent('model-overrider', { init: function() {
解决方案: 感谢Rabbid76,我需要使用模型矩阵更新顶点着色器中的Normal vector 。更新了顶点着色器: #version 330 core layout (location = 0)
我需要渲染iOS中 .dae [collada] 类型的3D模型, 我搜索并找到几个链接 Wavefront Molecules openscenegraph iSGL3D 但我不确定它们是否将支持.
Collada (dae) 文件格式是否可用于内容,还是严格用于 3D 工作室之间的互惠等?例如,我创建了一个 XNA 游戏,我可以创建一个加载器并将其加载到我的游戏中使用吗?这样做是否明智且合法?或
我正在尝试在 SceneKit 场景中为我的模型制作动画: 创建一个简单的立方体模型并将其导出到 cube.dae 为立方体创建一个简单的骨架并使用骨骼制作一个简单的旋转动画并将其导出到animati
遇到一个奇怪的 scenekit Assets 问题...我有一个 Assets 文件 (catalog.scnassets) 在 Xcode 中似乎没问题。我向其中添加了一个 dae 文件,该文件也
我可以使用 collada to gltf 制作 gltf 文件转换器。 但是有没有办法扭转这种局面? 最佳答案 更新 - 2019 年 10 月 - Blender 2.80 附带完整的 glTF
我是“物理系统建模”主题的新手。我阅读了一些基础文献,并在 Modelica 和 Simulink/Simscape 中做了一些教程。我想问你,如果我对以下内容理解正确: 符号操作是将微分代数方程组(
./textures/Seats_Lvl2b_2k.jpg 在通过 ThreeJS 网站提供的 Collada 的默认
好的,我在这里使用 ARKit 和 SceneKit,我无法查看其他仅处理 SceneKit 试图在 .dae 中创建模型的问题格式化并加载各种动画以运行该模型 - 现在我们在 iOS11 中似乎有些
我检查了所有可能的解决方案,包括: 重新启动 Mac 从 get_info 窗口更改红色/写入权限。 使用“sudo chmod 命令”从终端更改读/写权限 还尝试过 this command . 通
我试图理解 collada 文件的结构。具体来说,我正在使用库 pycollada ( https://github.com/pycollada/pycollada )。我有 2 个问题。 问题 1:
在创建游戏应用程序时使用 Xcode 自动生成的代码,我设法替换了新的可用的 .dae,但是当我使用更复杂的代码时,应用程序崩溃并抛出 EXC_BREAKPOINT(),知道原因以及如何解决吗? (打
我有一个项目,我必须在其中将不同的文件导入到 blender 中。我只是 blender 的初学者,它是 python API。我正在寻找一种使用 python 脚本将 .dae 文件导入 blend
我的 ARKit 开发遇到了一些 DAE 问题。 我以 DAE 格式从 Autodesk max 中导出我的 3D 模型并将其导入 Xcode,它在 Xcode 中工作正常,但在我的应用程序中不可见。
我在 Xcode 6.1.1 上使用 iOS 游戏模板创建了一个新项目,选项是: Language: Swift Game Technology: SceneKit Device: Universal
我是一名优秀的程序员,十分优秀!