ios 현실 촬영 된 실제 물체에서 360도 회전 가능한 물체



유튜브 360 도 (1)

360도 사진을 찍은 물체를 회전시킬 수있는 기능을 만들고 싶습니다.

  • 그것은 "플릭"속도에 따라 끝없이 회전합니다.
  • 물체를 왼쪽이나 오른쪽으로 가볍게 치거나 왼쪽이나 오른쪽으로 돌립니다.
  • 돌리면 멈추도록 터치하면 스핀을 멈 춥니 다.

Theodore Gray의 앱 The Elements와 유사합니다.

다음은 내가 재창조하려는 앱의 동영상입니다. (즉, 3D 스피너)

https://youtu.be/6T0hE0jGiYY

여기에 손가락으로 작용하는 비디오가 있습니다.

https://youtu.be/qjzeewpVN9o

Swift와 가능성이있는 SpriteKit을 사용하려고합니다.

  1. 실생활 객체에서 고품질의 기능까지 어떻게 얻을 수 있습니까? 나는 Mac, Nikon D810 및 녹색 스크린으로 무장하고 있습니다.

    즉 일련의 정지 사진이 길로가는 것 같아요.하지만 충분히 유동적이지는 않을 것 같아요.

    이 질문의 목적을 위해 나는 프로그램하기에 가장 합리적인 것이 무엇인지 알아 내려고합니다. 예를 들어 명령이나 스톱 모션 프레임 등의 텍스쳐 아틀라스에서 되감기 및 빨리 감기중인 비디오

    참고 : 소프트웨어 및 사진 기술을 캡처하면 해당 부서에서 우둔한 것처럼 유용한 정보가됩니다. 하지만 https://photo.stackexchange.com/에서 요청할 수 있습니다.

  1. 이 객체에 대한 내 코드의 기본 논리는 무엇입니까? 측면에서 :

A. 개체의 애니메이션이나 비디오 또는 내 코드에서 사용할 수 있도록 이미지를 준비하는 가장 좋은 방법을 설정하는 기능입니다.

B. spin () 함수와

C. stopSpin () 함수.

전체 프로젝트 견본은 필요하지 않습니다 (비록 좋을 것 같지만). 그러나 그 3 가지 기능은 나를 끌어 들이기에 충분합니다.

  1. SpriteKit이 현명한 선택입니까?

다음은 간단한 스프라이트 애니메이션의 기본 기능을 보여주는 제 2 초안입니다.

class GameScene: SKScene {

  // Left spin is ascending indices, right spin is descending indices.
  var initialTextures = [SKTexture]()

  // Reset then reload this from 0-6 with the correct image sequences from initialTextures:
  var nextTextures = [SKTexture]()

  var sprite = SKSpriteNode()

  // Use gesture recognizer or other means to set how fast the spin should be.
  var velocity = TimeInterval(0.1)

  enum Direction { case left, right }

  func spin(direction: Direction, timePerFrame: TimeInterval) {

    nextTextures = []
    for _ in 0...6 {

      var index = initialTextures.index(of: sprite.texture!)

      // Left is ascending, right is descending:
      switch direction {
      case .left:
        if index == (initialTextures.count - 1) { index = 0 } else { index! += 1 }
      case .right:
        if index == 0 { index = (initialTextures.count - 1) } else { index! -= 1 }
      }

      let nextTexture = initialTextures[index!]
      nextTextures.append(nextTexture)
      sprite.texture = nextTexture
    }

    let action = SKAction.repeatForever(.animate(with: nextTextures, timePerFrame: timePerFrame))
    sprite.run(action)
  }

  override func didMove(to view: SKView) {
    removeAllChildren()

    // Make our textures for spinning:
    for i in 0...6 {
      initialTextures.append(SKTexture(imageNamed: "img_\(i)"))
    }
    nextTextures = initialTextures

    sprite.texture = nextTextures.first!
    sprite.size = nextTextures.first!.size()
    addChild(sprite)
    spin(direction: .left, timePerFrame: 0.10)
  }

  override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    spin(direction: .right, timePerFrame: velocity)
  }

  override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    spin(direction: .left, timePerFrame: velocity)
  }
}

방금 클릭 / 놓기를하면 오른쪽에서 왼쪽으로 번갈아 가며 나타납니다.

다음 초안을위한 Todo :
- 속도에 대한 제스처 인식기 구현
- 원한다면 부식을 구현하십시오 (시간이 지남에 따라 느려질 것입니다)

(오래된 비디오, 새로운 코드는 프레임을 0으로 재설정하지 않습니다) :

이미지 애셋은 애니메이션 용으로 다음에서 찾을 수 있습니다. https://drive.google.com/open?id=0B3OoSBYuhlkgaGRtbERfbHVWb28





photography