Hallo, Gast |
Sie müssen sich registrieren bevor Sie auf unserer Seite Beiträge schreiben können.
|
|
|
MySQL-Einrichtung für OpenSim auf meinem 20.1 Ubuntu Server |
Geschrieben von: ThunderTower - 19.07.2021, 08:25 - Forum: SQL Server und Datenbanken
- Keine Antworten
|
|
Meine MySQL-Einrichtung für OpenSim auf 20.4 Ubuntu Server
sudo apt update
sudo apt install mysql-server
Um MySQL etwas sicherer zu machen, lohnt die mysql_secure_installation
- root-login verbieten
- Test-Datenbank entfernen
- passwd für root vergeben
Anweisung:
sudo mysql_secure_installation
Abfragen durchlaufen und mit y bestätigen.
In meiner Umgebung hat das caching_sha2_password mit OpenSim Probleme gemacht.
Deshalb nutze ich für OpenSim immer das mysql_native_password. Soll aber jeder machen was er mag.
Für root natürlich dascaching_sha2_password.
Das Authentifizierungsverfahren für MySQL prüfen:
SELECT user,authentication_string,plugin,host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '5UhtgBGZsh+.';
FLUSH PRIVILEGES;
Nochmal prüfen ob root nicht mehr über das auth_socket-Plugin funktioniert:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Testen, ob man sich einfach einloggen kann:
salamihot@pfeffer:~$ sudo mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Super, jetzt NEU anmelden mit:
mysql -u root -p
Benutzer erstellen und Passwort vergeben:
CREATE USER 'eisenbieger'@'localhost' IDENTIFIED BY 'uhz8f5FS25sRGZ4+$sgb';
Rechtevergabe:
GRANT ALL PRIVILEGES ON *.* TO 'eisenbieger'@'localhost' WITH GRANT OPTION;
Das war nicht ganz richtig, also nochmal:
ALTER USER 'eisenbieger'@'localhost' IDENTIFIED WITH mysql_native_password BY '7Uhuhn$#45BGZsh+.';
FLUSH PRIVILEGES;
Welche aktuellen Berechtigungen habe ich nun?
SHOW GRANTS FOR 'eisenbieger'@'localhost';
Datenbanken anlegen:
mysql> create database amiezemiez1;
Query OK, 1 row affected (0.39 sec)
mysql> create database amiezemiez2;
Query OK, 1 row affected (0.16 sec)
mysql> create database amiezemiez3;
Query OK, 1 row affected (0.15 sec)
mysql> create database amiezemiez4;
Query OK, 1 row affected (0.15 sec)
mysql> create database amiezemiez5;
Query OK, 1 row affected (0.13 sec)
mysql> exit
Natürlich könnte man auch mit 'use' in jede Datenbank wechseln. Dann einem Benutzer auch nur die Rechte an dieser Datenbank geben.
Man kann es auch übertreiben.
[DatabaseService]
;
; ### Choose the DB
;
; SQLite
;Include-Storage = "config-include/storage/SQLiteStandalone.ini";
; MySql
; Uncomment these lines if you want to use mysql storage
; Change the connection string to your db details
StorageProvider = "OpenSim.Data.MySQL.dll"
ConnectionString = "Data Source=localhost;Database=amiezemiez1;User ID=eisenbieger;Password=7Uhuhn$#45BGZsh+.;Old Guids=true;"
|
|
|
Eigene Eintwicklungsumgebung mit Ubuntu Server 20.04 LTS 64 Bit Version - Teil 11 |
Geschrieben von: ThunderTower - 14.07.2021, 14:14 - Forum: Serversoftware
- Keine Antworten
|
|
Heute möchte ich meine Standalone nun auch endlich an das HG anbinden. Es sind nur wenige Schritte.
Ich verwende zum Test nur insgesammt 4 Ports!
Das sind die 3 udp Ports (9010, 9011, 9012) für die Regionen und einen 9001 tcp Port.
Im Router konfiguriert Portweiterleitung Protokoll udp von 9010 an 9010
Im Router konfiguriert Portweiterleitung Protokoll udp von 9011 an 9011
Im Router konfiguriert Portweiterleitung Protokoll udp von 9012 an 9012
Im Router konfiguriert Portweiterleitung Protokoll tcp von 9001 an 9001
Ein Blick auf meine Regions.ini:
Ich verwende wie schon gesagt, hier nur die Ports 9001, 9010, 9011 und 9012.
Eine erste Anpassung ist in der Regions.ini erforderlich:
Unter ExternalHostName = mein DynDNS Name ohne http am Anfang eintragen. Dies gilt aber nur im LAN! Nicht im VPS verwenden!
[GermansTEST]
RegionUUID = 7517391a-7480-4296-a0c1-248a8a44845e
Location = 1000,1000
SizeX = 256
SizeY = 256
SizeZ = 256
InternalAddress = 0.0.0.0
InternalPort = 9010
ResolveAddress = False
ExternalHostName = mein DynDNS Name ohne http am Anfang
MaptileStaticUUID = 00000000-0000-0000-0000-000000000000
; [Testland2]
; RegionUUID = 8f02281f-coab-499c-af15-eb535b1399f2
; Location = 2000,2000
; SizeX = 256
; SizeY = 256
; SizeZ = 256
; InternalAddress = 0.0.0.0
; InternalPort = 9011
; ResolveAddress = False
; ExternalHostName = mein DynDNS Name ohne http am Anfang
; MaptileStaticUUID = 00000000-0000-0000-0000-000000000000
[sandbox]
RegionUUID = f73d48de-4865-49b3-8f4c-a7edcef9b638
Location = 3000,3000
SizeX = 256
SizeY = 256
SizeZ = 256
InternalAddress = 0.0.0.0
InternalPort = 9012
ResolveAddress = False
ExternalHostName = mein DynDNS Name ohne http am Anfang
MaptileStaticUUID = 00000000-0000-0000-0000-000000000000
In der OpenSim.ini abändern:
[Const]
; this section defines constants for grid services
; to simplify other configuration files default settings
;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1"
BaseHostname = "127.0.0.1"
;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}"
BaseURL = http://${Const|BaseHostname}
; If you run a grid, several services should not be availble to world, access to them should be blocked on firewall
; PrivatePort should closed at the firewall.
;# {PublicPort} {} {PublicPort} {8002 9000} "8002"
PublicPort = "9001"
; you can also have them on a diferent url / IP
;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}"
PrivURL = ${Const|BaseURL}
;grid default private port 8003, not used in standalone
;# {PrivatePort} {} {PrivatePort} {8003} "8003"
; port to access private grid services.
; grids that run all their regions should deny access to this port
; from outside their networks, using firewalls
;PrivatePort = "8003"
Ganz unten in der .ini Include-Architecture = "config-include/StandaloneHypergrid.ini" Semikolon entfernen
[Architecture]
;# {Include-Architecture} {} {Choose one of the following architectures} {config-include/Standalone.in>
;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim,
;; uncomment Include-Architecture = "config-include/Standalone.ini"
;;
;; Then you will need to copy and edit the corresponding *Common.example file in config-include/
;; that the referenced .ini file goes on to include.
;;
;; For instance, if you chose "config-include/Standalone.ini" then you will need to copy
;; "config-include/StandaloneCommon.ini.example" to "config-include/StandaloneCommon.ini" before
;; editing it to set the database and backend services that OpenSim will use.
;;
;Include-Architecture = "config-include/Standalone.ini"
Include-Architecture = "config-include/StandaloneHypergrid.ini"
; Include-Architecture = "config-include/Grid.ini"
; Include-Architecture = "config-include/GridHypergrid.ini"
; Include-Architecture = "config-include/SimianGrid.ini"
; Include-Architecture = "config-include/HyperSimianGrid.ini"
Die StandaloneHypergrid.ini wird nur durchlaufen. Der Verweis zeigt ganz unten auf die StandaloneCommon.ini
Folgendes abändern in der StandaloneCommon.ini:
[Hypergrid]
; Uncomment the variables in this section only if you are in
; Hypergrid configuration. Otherwise, ignore.
;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
;; If this is a standalone world, this is the address of this instance.
;; If this is a grided simulator, this is the address of the external robust server that
;; runs the UserAgentsService.
;; For example
;; This is a default that can be overwritten in some sections.
HomeURI = "http://mein DynDNS Name:9001"
;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
;; If this is a standalone world, this is the address of this instance.
;; If this is a grided simulator, this is the address of the external robust server
;; that runs the Gatekeeper service.
;; For example
;; This is a default that can be overwritten in some sections.
GatekeeperURI = "http://mein DynDNS Name:9001"
Unter dem Abschnitt LoginService:
[LoginService]
WelcomeMessage = "Welcome, Avatar!"
;; If you have Gatekeeper set under [Hypergrid], no need to set it here, leave it commented
; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
SRV_HomeURI = "http://mein DynDNS Name:9001"
SRV_InventoryServerURI = "http://mein DynDNS Name:9001"
SRV_AssetServerURI = "http://mein DynDNS Name:9001"
SRV_ProfileServerURI = "http://mein DynDNS Name:9001"
SRV_FriendsServerURI = "http://mein DynDNS Name:9001"
SRV_IMServerURI = "http://mein DynDNS Name:9001"
;; For Viewer 2
MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/"
Un hier noch den GridInfoService anpassen:
[GridInfoService]
; These settings are used to return information on a get_grid_info call.
; Client launcher scripts and third-party clients make use of this to
; autoconfigure the client and to provide a nice user experience. If you
; want to facilitate that, you should configure the settings here according
; to your grid or standalone setup.
;
; See http://opensimulator.org/wiki/GridInfo
; login uri: for grid this is the login server URI
login = http://mein DynDNS Name:9001
; long grid name: the long name of your grid
gridname = "Mein Grid Name"
; short grid name: the short name of your grid
gridnick = "Mein Grid Name"
; login page: optional: if it exists it will be used to tell the client to use
; this as splash page. May also be served from an external web server, e.g. for
; information on a standalone
welcome = http://meine URL zum Aufruf /
; helper uri: optional: if it exists it will be used to tell the client to use
; this for all economy related things
;economy = ${Const|BaseURL}/economy
; web page of grid: optional: page providing further information about your grid
;about = ${Const|BaseURL}/about
; account creation: optional: page providing further information about obtaining
; a user account on your grid
;register = ${Const|BaseURL}/register
Damit ist diese im LAN befindliche Standalone nun an das HG + Teleportfunktion angebunden.
Die Freigaben mit ufw allow sollten bekannt sein.
Für die Viewer haben wir nun auch eine neue login = http://mein DynDNS Name:9001
Im letzen Beitrag setzen wir die Heilige Kuh (ein Schelm, wer etwas anderes denkt) - Mutter *Robust* ganz oben mit eigener Datenbank auf.
Und das war's dann auch schon mit der Standalone.
|
|
|
OpenSim von aussen erreichbar machen |
Geschrieben von: ThunderTower - 12.07.2021, 13:47 - Forum: Tutorials und Scripts für OpenSim
- Keine Antworten
|
|
OpenSim von aussen erreichbar machen
In meiner derzeitigen Konfiguration funktionieren Teleports nur unter den einzelnen Regionen.
Ein Teleport zu einem anderem Grid oder der Empfang von Besuchern auf den Regionen ist nicht möglich.
Dies möchte ich durch eine HG-Anbindung ändern. Einige Voraussetzungen müssen aber erfüllt sein.
Voraussetzungen für die Teilnahme am HG:
- Öffentliche IPv4-Adresse
- FRITZ Box mit Dynamic DNS
- Benutzerkonto bei https://www.spdyn.de/
- Domainname aud dem Pool
Ich selbst nutze viele Jahre den Dynamic-DNS-Service von Securepoint unbürokratisch, kostenlos und ohne Fehler in Verbindung mit meiner Fritz Box.
Nach der Registrierung wird dieser Dienst sofort, schnell und zuverlässig funktionieren, wenn man die Fritzbox auch einrichtet.
Wie funktioniert das nun genau?
Meine Fritz teilt dem DynDNS-Server meine derzeit gültige öffentliche Router IP-Adresse mit.
Weil sich meine IP ja jeden Tag ändert, ist dieser Vorgang ja auch absolut notwendig.
In diesem Moment weiß der spDYN-DynDNS-Server, dass meine Fritz namens "egal was" an diesem Tag unter der Adresse "egal was ip" erreichbar ist.
Wenn der Hostname (URL) also dort erstellt wurde, verweist dieser einfache besser zu merkende Name auf die öffentliche IP der Fritzbox zu Hause.
Der generierte Update-Token in der Fritz-Box auktualisiert automatisch jeden Tag.
Der Aufruf der URL in der Browserzeile verbindet dann mit meinem Privat-Router (WAN-Seite).
Insofern Forwarding, Portfreigaben also Portweiterleitungen eingerichtet wurden, ist OpenSim im LAN für Besucher und den Rest der Welt verfügbar.
...und! Jetzt ist es auch möglich, OpenSim das HG zu geben.
Securepoint DynDNS
https://www.spdyn.de/
Oh, habe es eben auf der Anbieterseite gelesen:
Zitat von der Webseite:
''Seit dem 01.07.2020 ist die Erstellung von neuen Accounts nur noch für Securepoint-Reseller möglich''.
Details dazu lassen sich beim Anbieter erfragen.
|
|
|
Animationen selber erstellen mit QAVIMATOR |
Geschrieben von: Tron Mcp - 09.07.2021, 16:31 - Forum: Animieren
- Antworten (4)
|
|
In diesem Beitrag wideme ich mich der Erstellung von eigenen Animationen mit QAvimator.
Stand ist 08.07.2021
Hallo zusammen,
wer eigene Animationen erstellen will, für den gab es schon lange das relative einfach zu bedienende Tool QAvimator. Es ist kostenlos und schlicht, reicht aber für viele Anwendungsfälle.
Der Download war nur lange Zeit nicht mehr beim Ersteller verfügbar. Nun habe ich eine aktualisierte (nicht Bento) Version gefunden, die leichter zu bedinen ist.
https://bitbucket.org/QAvimator_Team/qav...downloads/
Stand 08072021 findet sich da die Version 1.1.450 für Linux und Windows
Begriffsklärung:
Für Animationen lege ich folgende Begriffe fest, ums sie im Artikel eindeutig benennen zu können:
Animation: bezeichnet das gesamte Gebilde an Informationen die in einer Opensim / SL Datei zum Einsatz kommen. Eine Animation wird im Viewer per Aufruf, oder per Script gestartet und gestoppt.
Timeline: Zeitstrahl aus statischen Einzelpositionen. Bezeichnet den gesamten Zeitlichen Ablauf der Animation in Einzelschritten. Zwischen den statischen Einzelschritten erfolgt automatisch eine Interpolation.
Pose /Frame: Einzelschritt einer Timeline / eines Zeitstrahls
Rigg: Skelett / Knochengerüst mit hierarchischer Abhängigkeit und dazwischenliegenden Gelenken.
Grundlagen zu Animationen:
Animationen dienen der gezielten Bewegung von geriggten Avataren und NPCs.
Dabei spielt das jeweilige Rigg eine entscheidende Rolle.
Es gibt 2 in OpenSim und SL verwendete Riggs für humane Avatare (speziell geriggte Tiere und Animesh lasse ich außen vor).
Dies ist das „alte“ Standard Rigg sowie das neuere BENTO Rigg.
Letzteres ist eine kompatible Erweiterung des Standard Riggs, die zusätzliche Beweglichkeiten im Bereich Gesicht, Hände, und Gliedmaßen für Fantasy Figuren und 4-Beiner.
Für Humane Avatare werden aber nur die Hände und das Gesicht eine Rolle spielen.
Hierarchische Abhängigkeit:
Beispiel: Wenn man den Oberarm bewegt, werden Unterarm, Hand und Finger mitbewegt, ohne jedoch ihre relative Position und Drehung in Bezug zum Oberarm zu verändern.
Beweglichkeit:
Jedem Gelenk sind minimal und maximal Werte für Drehbarkeit zugeordnet damit es nicht zu unnatürlichen Verrenkungen kommt. Beispiel: Ellenbogen läßt sich nur bis zur Streckung nach hinten drehen.
Absolute Positionierung:
Bezogen auf das oben gesagte gibt es eine „Root“ – also den Master Knochen.
Dieser ist der: „hip„ also das Becken. Bewegt oder rotiert man dieses, so bewegt sich der gesamte Avatar.
Dieser weist eine Besonderheit auf: Man kann zusätzlich den gesamten Avatar in 3 Achsen verschieben – also den Ursprung oder auch Nullpunkt festlegen.
Da man diese Funktion auch in der Zeitachse nutzt, ist damit zum Beispiel eine Animation erzeugbar bei der der Avatar auf einen Baum klettert und wieder herab kommt, und zwar ohne dafür per Script den Avatar tatsächlich bewegen zu müssen. Faktisch wird der Avatar also wo anders dargestellt als er sich laut Simulator Position befindet.
Gleichzeitig ist der Ursprung auch essentiell um Störungen beim Umschalten auf andere Animationen zu vermeiden.
Damit man zwischen verschiedenen Animationen störungsfrei umschalten kann sind folgende Voraussetzungen nötig:
1. Ursprung, Startpose und Schlußpose müssen in allen beteiligten Animationen gleich sein. Dies werden wir später dadurch erreichen das wir Animationsgruppen bauen bei denen die zweite und die vorletzte Pose innerhalb aller Animationen gleich ist, und die Schleife zwischen diesen 2 Posen läuft.
2. Das Umschalten muss zum richtigen Zeitpunkt synchronisiert stattfinden wenn alte und neue Animation genau diese identischen Posen spielen.
Wer also zufallsmäßig zwischen verschiedenen Animationen umschalten will, wie das zum Beispiel bei einem Tanzball der Fall wäre, sollte lauter gleich lange Animationen nehmen und den Ursprung bei 0,0,0 belassen. Die vorgesehene Bewegung des Avatars erzeugt man dann per Bewegungs-Script, was eine Animations-Umschalten ohne Störung zulässt.
Damit kann man zum Beispiel einen Eiskunstlauf mit Animationswechel scripten.
Addition von Animation:
Der Simulator erlaubt mehre Animationen additiv zu spielen.
Was zum Bespiel erlaubt „nicht Bento sitz Animationen“ mit „Bento Hand und Fingeranimationen„ zu verknüpfen.
Auch reine Bento Animationen lassen sich überlagern:
Dies wird auch standardmäßig gemacht: AOs kombinieren Lauf / Sitz / Tanzanimationen mit Augenblinzeln oder Gesichtsanimation.
Dabei hängt das Ergebnis von der Priorität von Animationen ab.
Zudem sollen nicht die gleichen Gelenke angesprochen werden. Je nach Aufrufzeitpunkt und Priorität kann es komische Ergebnisse geben.
Außerdem gibt es unschöne Verrenkungen wenn am Ende einer Animation vergessen wird alle gemachten Änderungen wieder auf den Ursprungs Zustand zu stellen. Wer kennt das nicht das plötzlich der Kopf auf dem Hals das rotieren anfängt.
Priorität von Animationen
Die Priorität dient der Überlagerung von Animationen- ist also nur relevant wenn 2 Animationen gleichzeitig gespielt werden.
Die Priorität einer Animation wird während des Upload Vorgangs im Viewer eingestellt.
Zulässige Werte 1 bis 4. Wobei 4 ist die Höchste Prio ist.
Werden mehrere Posen gleichzeitig abgespielt setzt sich die höchste Prio durch.
Anwendung: Prio 3 Stehen und Prio4 Glas heben und trinken. Ergebnis: Der stehende Avatar trinkt zwischendurch.
Technischer Aufbau von Animationen:
Eine Animation besteht (immer) aus 3 Teilen.
Der erste Frame ist die T-Pose, die nicht angezeigt wird, ebenso ist der letzte Frame der Animation die gleiche T-Pose.
Die Frames dazwischen enthalten den eigentliche Nutzdatenbereich der Animation.
Dieser Nutzdatenbereich kann unterschiedlich aussehen.
Einmalig laufende Animation:
Zunächst kommt es darauf an ob die Animation nur einmalig abzuspielen ist, oder als endlos Schleife laufen soll.
Beispiel einer Animation mit 10 Frames die nur einmalig laufen soll:
Exportsetting in diesem Falle: Loop IN 1, Loop Out 10. Die Daten spielen hier beim Export keine Rolle.
Import Setting: Loop nicht ankreuzen.
Endlos Schleifen Animation:
Bei einfachen Schleifen nutzt man die gesamten Nutzdaten als Schleife:
Beispiel einer Animation mit einer 8Frame Schleife ohne Vorspann und Abspann:
Bei Schleifen sollen der letzte Loopframe (hier 9) als logischer Vorgänger des 2. Frame (hier 2) passen damit es keine Störungen gibt. Behelfsweise macht man Frame 2 und 9 identisch.
Exportsetting in diesem Falle: Loop IN 2, Loop Out 9
Diese müssen beim Import exakt so eingegeben werden.
Loop ankreuzen.
Endlos Schleifen Animation mit Vorspann und Abspann:
Nur bei endlos Schleifen gibt es einen optionalen Vorspann und einen optionalen Abspann. Der Vorspann dient um aus der Start T-Pose in eine Ausgangslage für die Schleife zu kommen. Entsprechend dient der Abspann diese Lage wieder zu verlassen und zur T-Pose zurück zu kehren.
Praxisbeispiel: Eine Skydiver Loop Animation bei der der Avatar mit der Vorderseite nach unten fliegt.
Ablauftechnisch gesehen habe wir es mit 3 separaten Animationsteilen zu tun, wobei Vorspann und Abspann einer „einmalig laufenden“ Animation gleichkommen. Inmitten dieser ist die Schleife/Loop dann eingebettet.
Beispiel einer Animation mit einer 8Frame Schleife mit 4 Frames Vorspann und 4 Frames Abspann:
Erläuterung:
Bei Start der Animation wird zunächst in Frame 1 die T-Pose (ausgeblendet) gespielt um den AVA in eine definierte Grundposition zu bringen. Dieses Frame wird NICHT angezeigt!
Mit dem Frame 2 fängt der Simulator an die Anzeige sichtbar zu machen.
In den Frames 2 bis 5 ist eine kurze einmalig gespielte Sequenz die den AVA in die gewünschte Ausgangs Position vom Schleifenbeginn bringt (Frame 6)
Nun wird die eigentliche Schleife (Frames 6 bis 13) mehrfach durchlaufen- so lange bis ein Befehl abgesetzt wird die Animation zu beenden.
Nach diesem Abbruch Kommando werden die noch ausstehenden Frames bis 13 fertig gespielt, danach wird der Abspann (Frames 14 bis 17) einmalig durchlaufen, und im Anschluß (wieder ausgeblendet) die T-Pose abgespielt.
Animations Lauflänge:
Die Animations-Lauflänge ist laut mehrerer Quellen in SL auf 60 Sekunden beschränkt. Die Zeit ergibt sich aus Anzahl gespielter Frames und der eingestellten FPS Rate. Aber dies Bedarf einer Überprüfung, besonders in Opensim.
Die einzige Stelle wo diese Beschränkung zuschlagen könnte ist der Upload im Simulator.
Reicht einen die 60 Sekunden nicht so gibt es an der gleichen Quelle ein Tool „BHV Splitter“ um Animationen in 60 Sekunden Blöcke aufzuteilen.
Framezahl:
Die Anzahl der Frames einer Animation kann man in QAvimator unten rechts einstellen, hinter dem „of“.
Dies muss man unbedingt vor der Arbeit machen, da es sonst zu unschönen Verschiebuns Effekten kommen kann.
In der Realität richtet sich die Frameanzahl nach der gewünschten Laufzeit der zu erstellenden Animation.
Dabei spielt die Framerate eine wichtige Rolle damit es nicht ruckt.
15 fps sind absolutes Minimum, gut sind 30fps.
Mehr bringt nur was wenn hochwertige Grafikkarten tatsächlich eine höhere Bildrate darstellen.
Über 60fps sind sinnlos da dies vom Menschen nicht mehr als Rucken wahrgenommen wird.
Eine typische 30 Sekunden Animation hat bei 30fps also 30 * 30 + 2 Frames.
Die 2 extra Frames sind die oben beschriebenen Start und Stopframes.
EXPORT aus QAvimator:
Loop in und Loop Out sowie FPS in QAvimator (rechte untere Ecke) einstellen und testen.
Klappt das Vorschauen mit dem Play Button in QAvimator, so gehts an den Export.
Die Daten sich heraus notieren, weil sie für den Import gebraucht werden, dabei auch die Gesamt Framezahl aufschreiben
Zunächst save as datei.bhv machen, dann wird Export to Secondlife freigeschalten. ( ist ein Bug der Version 0.1.1.450)
IMPORT im SIMULATOR:
im Viewer mit (Bauen- Hochladen- Animation) zum Upload gehen.
Hier sind folgende Einstellungen nun wichtig:
Priorität: zulässige Werte 1 bis 4. Wobei 4 ist die Höchste Prio ist.
Der richtige Wert ist abhängig von der geplanten Nutzung.
Macht man zum Beispiel eine Basispose die von jedem Sitzposer oder AO überschreiben werden soll, so ist 1 richtig.
Für AO macht 2 oder 3 Sinn.
Mache ich einen Sitzposer der AOs überschreiben soll muss ich zwangsweise hoch gehen auf 3 bis 4.
Das Problem dabei: Es gibt keine Regel nach den sich jeder richtet. Somit kommt es immer wieder dazu das man die AO ausziehen muss um Sitzposer oder Tänze wirken zu lassen.
Ideal wäre ein einheitliches System:
1 Basisanimation
2 AO
3 Poser Grundanimation( Sitzen, Tanzen, ..)
4 Bento Gesichtsanimation und Handanimation.
Schleife: wird genutzt wenn die Animation mehr als einmal in Folge abgespielt werden soll.
Dann müssen die Animationen aber auch so wie oben beschrieben erstellt werden.
Ein (frame) - in meinem Beispliel: 1. dies ist die nicht in der Schleife liegende Einführungs Sequenz. Minimal ist dies der 1. Frame der T-Pose.
Aus (frame) - in meinem Beispiel: wird von dem angezeigten Wert eines abgezogen. Also N-1, für die T-Pose am Ende
Der Rest kann so belassen werden.
Mit dem Kamera Knopf kann man die Sequenz vorschauen- und falls sie ruckt in QAvimator verbessern.
Probiert erst was Einfaches aus: Zum Beispiel nur Kopf Nicken.
Was manchmal zum Fehler führt, ist wenn Gelenken kein Start und Endwert zugewiesen wird.
Dann ergeben sich Situationen wo die falsche vorangehende Posen zu Verrenkungen des Bodys führen weil Zufallswerte abgespielt werden.
Also immer schön alles am Anfang initialisieren, und am Ende auf den Wert zurückstellen.
Eine gute deutschsprachige Anleitung für die Einstellung der Gelenke findet sich hier:
http://almut-brunswick.de/20_QAvimator/qav_index.html
Daher verzichte ich darauf dieses hier auch zu schreiben
Übersicht Bedienelemente in Qavimator:
ANSICHT ÄNDERN:
Scrollen mit Mausrad: ZOOM IN/OUT der Ansicht
Bei gedrückter linker Maustaste Maus bewegen: Drehen und Wenden des AVAs
F9: SICHT von RECHTS OBEN
F10: SICHT von LINKS OBEN
F11: SICHT von HINTEN
F12: SICHT von OBEN
ESCAPE: SICHT von VORNE und Sprung in Grundskalierung. Gleiche Wirkung hat der hellblaue Reset Knopf ganz Rechts in der Obere Leiste
TIMELINE BEARBEITEN:
1POS: Sprung zum Anfang der Timeline
Ende: Sprung zum Ende der Timeline
BILD AUF/ BILD AB: Bewegung auf der Timeline um einen Frame
Cursortasten AUF/AB: Bewegung auf der Timeline um einen Frame
Cursortasten LINKS/RECHTS: Bewegung auf der Timeline um einen Frame
Auswählen von Bearbeitungs-Punkten in der Timline einzeln durch linke Maustaste.
KNOTEN BEARBEITEN:
Mehrfachauswahl mit gedrückter String Taste
Auswahl Kopieren mit EDIT-COPY oder Control+C
Auswahl Einfügen mit EDIT-PASTE oder Control+V
AUSWAHL:
Mit Linker Maustaste auf zu wählendes Körperteil klicken aktiviert dieses, und schaltet im rechten Seitenbereich auf die Parameter dieses Körperteils, in Bezug zum aktuellen Timecode Frame.
WERTE EINGEBEN:
zunächst Frame auswählen für den der Wert gelten soll,
danach das Körperteil anklicken das eingestellt werden soll.
Nun erfolgt die Anzeige der Manipulationsachsen in 3 Farben (Rot, Grün Blau)
Rechts im Kontext Menü können nun in den Feldern die Parameter eingestellt werden.
Viel Spaß beim Animationen machen
Tron
LINKS:
Link zum download QAvimator für Standard RIGG : https://bitbucket.org/QAvimator_Team/qav...downloads/
Die Bento Version scheint (stand 07.2021) verschwunden zu sein. Ich hätte sie aber noch….
Englische Anleitung: https://qavimator.bitbucket.io
Deutsche Anleitung: http://almut-brunswick.de/20_QAvimator/qav_index.html
|
|
|
|