Smartphone wird zur Handkamera für Blender: kostenloses Open-Source-Addon
Das Addon Phone Camera Controller verwandelt ein Smartphone mit iOS oder Android in eine virtuelle Handkamera für Blender. Das Telefon zeigt den Viewport in Echtzeit, und die 3D-Kamera in der Szene folgt den Bewegungen des Telefons. Hält man die Aufnahmetaste gedrückt, wird die Fahrt in gewöhnlichen Kamera-Keyframes gespeichert. Das Addon ist kostenlos, wird als Open Source unter der GPL verbreitet und ist 35 KB groß.
Nach der Idee der Entwickler lassen sich mit dem Telefon Kamerabewegungen ausführen, die mit der Maus schwer zu erzielen sind: mit ihm durch den Raum gehen und einen Flug um die Szene als Handaufnahme aufzeichnen. Der Fokus kann während der Aufnahme manuell gezogen werden, und auch das landet in der Animation.
Was in die Aufnahme geschrieben wird
Die Kamera wird in sechs Freiheitsgraden gesteuert: Position in X, Y, Z und Rotation (Schwenk, Neigung, Rollen). Die Daten liefern Gyroskop, Beschleunigungssensor und das AR-Tracking der Telefonposition. Auch das Objektiv wird vom Smartphone aus eingestellt: Brennweite, Fokusdistanz, Blende, Stärke der Unschärfe und Schärfentiefe werden sofort übernommen.
«Brennweite, Fokusdistanz, Blende und Schärfentiefe werden vom Telefon aus festgelegt und während der Aufnahme in Keys geschrieben, sodass der Fokus manuell gezogen werden kann», schreiben die Entwickler auf der Seite des Addons.
Aufnehmen lässt sich auf zwei Wegen. Ein kurzer Druck setzt einen einzelnen Keyframe im aktuellen Frame. Hält man die Taste gedrückt, werden Position und Rotation Frame für Frame geschrieben, solange die Timeline läuft; lässt man die Taste los, stoppt die Aufnahme. Auch die Timeline wird vom Telefon aus gesteuert: Start, Pause, Spulen, Einzelbildschritte, Sprung zum Anfang oder Ende.
Die Bewegungseinstellungen sind im Seitenpanel Phone Cam gebündelt (Taste N im Viewport):
- Rotation und Verschiebung werden separat aktiviert — zum Beispiel nur Rotation für einen Schwenk wie vom Stativ;
- die Empfindlichkeit legt fest, wie weit die Kamera pro Schritt echter Bewegung läuft: für kleine, abgestimmte Fahrten wird sie reduziert;
- die Glättung entfernt das Zittern der Sensoren: höher — ruhiger Lauf, niedriger — rohe Handaufnahme;
- jede Achse lässt sich invertieren;
- die Kalibrierung der Neutralpose merkt sich die aktuelle Kameraposition, damit jede Aufnahme mit demselben Bild beginnt.
Das Addon arbeitet mit mehreren Telefonen gleichzeitig, jedes führt seine eigene Kamera in der Szene. Dafür fügt man in Blender pro Telefon eine Kamera hinzu und verknüpft sie in der App; der Viewport folgt der zuletzt gewählten Kamera.
Verbindung ohne Netzwerkeinstellungen
Telefon und Rechner finden einander selbst über Bonjour/mDNS, auch unter Windows: IP-Adressen, Ports und Kopplungscodes müssen nicht eingegeben werden. Es genügt, im Panel Start Server zu drücken, und Blender erscheint in der Hostliste der App. Die Vorschau erreicht das Telefon im gleichen Shading-Modus wie im Viewport: Solid für Geschwindigkeit oder Material Preview, um Farbe und Licht zu sehen. Das ist auch ohne Aufnahme nützlich — etwa um einem Kunden das Bild auf dem Telefondisplay zu zeigen, ohne etwas zu rendern.
Die Einschränkungen sind klar benannt. Beide Geräte müssen im selben lokalen WLAN sein; über Mobilfunk und entfernte Netzwerke funktioniert das Addon nicht. Die Entwickler empfehlen 5 GHz, bei 2,4 GHz ist die Latenz höher. Solange der Server läuft und das Telefon verbunden ist, rendert das Addon eine Vorschau mit standardmäßig 640 Pixeln Breite (Breite und Framerate werden in den Addon-Einstellungen geändert). Genutzt werden die Ports HTTP 8254 und UDP 8255 — gut zu wissen, wenn das Studionetzwerk durch eine Firewall geschlossen ist. Die Szene wird nur lokal übertragen und nicht ins Internet geladen.
Woher es kommt und was die Aufnahme kostet
Das Addon Phone Camera Controller in Version 1.4.1 liegt als ein Archiv für alle Plattformen vor. Es ist in reinem Python geschrieben, benötigt Blender 4.2 oder neuer auf macOS, Windows (64 Bit) oder Linux und wurde mit Blender 5.2 LTS getestet. Installiert wird es über Install from Disk in den Einstellungen, ein Administratorkennwort ist nicht nötig. Die App Phone Camera Control ist im App Store und bei Google Play (Android 8.0 und neuer) kostenlos; das Telefon braucht Gyroskop und Beschleunigungssensor.
Die Monetarisierung betrifft nur die Aufnahme. Streaming, Kamerasteuerung, Einstellungen, Timeline und die Arbeit mit mehreren Telefonen sind unbeschränkt und werbefrei. Nach der Registrierung in der App werden 30 Ad Credits für Aufnahmen vergeben; das Ansehen eines kurzen Werbespots fügt 10 Sekunden Aufnahme hinzu, ein Tageslimit gibt es nicht. Der Einmalkauf Ad-Free entfernt die Werbung und hebt die Aufnahmebeschränkungen auf; sein Preis wird auf der Seite des Addons nicht genannt. Lite- und Pro-Versionen gibt es nicht: Der Funktionsumfang ist für alle gleich. Ein Konto in der App ist für die Abrechnung der Credits nötig.
Was es von anderen «Kameras im Telefon» unterscheidet
Ähnliche Werkzeuge gab es auch früher. PocketCam auf dem Marktplatz Superhive bietet ebenfalls 6DoF-Tracking, einen Echtzeit-Sucher und Aufnahme mit Abspielen der Timeline samt Ton. Die Verbindung läuft dort über QR-Code, das Telefon öffnet die Oberfläche im Browser ohne App-Installation, angekündigt sind Stabilisierung und eine kommerzielle Lizenz. 2021 bot, wie BlenderNation schrieb, VirtuCamera ähnliche Möglichkeiten: Übertragung der Bewegung per WLAN, Streaming des Viewports, Aufzeichnung von Keys, Steuerung der Brennweite und Glättung. Es erforderte ein iPhone oder iPad mit ARKit-Unterstützung und arbeitete mit Blender 2.83–2.92.
Nach unserer Einschätzung sind gegenüber PocketCam die wichtigsten Unterschiede des Phone Camera Controller das kostenlose Addon und der Betrieb vollständig im lokalen Netzwerk: PocketCam wird kostenpflichtig verkauft, braucht eine Internetverbindung und ein Cloudflare-Konto, ist dafür aber nicht an ein einzelnes WLAN gebunden. Ein weiterer Unterschied ist die Aufzeichnung von Fokusdistanz und Blende zusammen mit der Bewegung, sodass der Operator den Fokus während der Aufnahme selbst ziehen kann. Gegenüber VirtuCamera sind Android und aktuelle Blender-Versionen hinzugekommen. Die Schwachstelle ist das Credit-Modell: Der kostenlose Modus reicht wahrscheinlich, um es auszuprobieren und einige kurze Fahrten aufzunehmen, für regelmäßige Arbeit mit langen Takes wird aber vermutlich der Einmalkauf nötig. Unklar ist auch, wie sich das AR-Tracking bei langen Fahrten verhält: Daten zur Drift nennen die Entwickler nicht. Sie selbst empfehlen, das Telefon mit beiden Händen zu halten, die Bewegung langsam zu beginnen und bei Rucklern die Aufnahme abzubrechen und neu zu machen — deshalb sollte man eine Bereinigung der Kurven nach der Aufnahme wohl einplanen.
Ну и какая погрешность?
Интересная для меня тема, даже специально зарегистрировался здесь ради неё.
Когда-то давно экспериментировал с наложением эффекта камеры, раскачивающейся при ходьбе, на 2D анимацию, но использовал совсем другие инструменты. У меня тогда был Макбук с HDD диском. В нём есть датчики Sudden Motion Sensor, которые следят за изменением положения ноутбука в пространстве. Их основная цель – обеспечить парковку головок жесткого диска в случае падения и, тем самым, обезопасить диск и данные на нём. Существует бесплатный софт, который позволяет вести запись в файл данных с этих датчиков. Я запускал воспроизведение анимационного куска на ноуте, включал запись данных с сенсоров в файл и проносил ноут в руках по комнате, стараясь синхронизировать его движения с происходящем на экране. Делал несколько дублей. Затем данные с датчиков пересохранял в Excel файл, импортировал в AftеrEffects и накладывал на анимацию. Чтобы снизить дрожание и сделать движение более плавным, приходилось эти данные предварительно перемножать, подбирая коэффициенты. Погрешность меня не интересовала, нужен был эффект как таковой.
Вот ещё демо анимационно-игровых трюков, которые можно делать с помощью датчиков Sudden Motion Sensor в ноутбуке:
https://www.youtube.com/watch?v=koHfshmHUmI