--[[ ** Custom-Selftimer-Skript mit Auslöse-naher Fokussier-Messung jeweils erst unmittelbar vor jedem einzelnen Foto ** by Sinter, 18.März 2012 DIE PROBLEMSTELLUNG: Der originale Selbstauslöser unseres Herstellers stellt Fokus und Belichtung leider stets bereits unmittelbar bei Start des Selbstauslöseprozesses ein, während das eigentliche Motiv (z. B. Einzelperson) oft noch gar nicht (oder in noch falscher Entfernung) im Bildbereich platziert ist. Diese Entfernungs- und Belichtungseinstellung wird im Original zudem während des gesamten Selbstauslöseprozesses beibehalten (falls mehrere Fotos gemacht werden). Falls man sich selbst (alleine unterwegs) vor einem "Unendlich"-Hintergrund vielleicht in nur einem Meter Abstand zur Kamera fotografieren möchte, und den originalen Selbstauslöser startet, so fokussiert die Kamera zum Zeitpunkt der Messung eine falsche Entfernung. Die Kamera misst auf das "falsche" Motiv, da man sich noch unmittelbar bei der Kamera befindet, und erst in den darauffolgenden Sekunden die Motivposition einnehmen kann. Somit wäre man mittels des originalen Selbstauslösers nicht korrekt fokussiert, sondern verschwommen, sowie das Foto evtl. auch fehlbelichtet. DER LOESUNGSANSATZ: Dieses Skript steuert einen ganz eigenen Selbstauslöseprozess und fokussiert stets zeitnah ERST UNMITTELBAR VOR JEDEM EINZELNEN Foto, so dass man nach Start des Selbstauslöseprozesses auch noch selbst in den Vordergund des Bilds laufen kann, so dass Fokussierung und Belichtung nicht einzig auf den Hintergrund gerichtet sind. Das Foto ist dann nicht auf den Hintergrund scharfgestellt, sondern auf die Person im Vordergrund scharfgestellt (sofern man vom AF-Feld erfasst wird). Gleiches gilt für die korrekte Belichtung/Belichtungsmessung. Bei diesem Skript darf man auch zwischen mehreren Fotos seine Position und Entfernung zur Kamera verändern, da vor jedem weiteren Foto Fokus und Belichtung erneut gemessen werden. Die Anmutung von LED-Blinken und Piep-Akustik des gesamten Prozesses habe ich in möglichst exakter Anlehnung an den originalen Selbstauslöser gestaltet. Eventuell könnte es Kameras geben, bei denen die orange Fokushilfslicht-LED mit diesem Skript nicht korrekt angesprochen werden kann. In solch einem Fall dann bitte den Behelfsparameter b auf 0 setzen um auf das Blinken der Fokushilfslicht-LED zu verzichten. Parameter "o" ist nur ein unbenutzer Dummy um in der Parameterliste eine optische Trennungszeile zwischen wichtigen Skriptparametern (a, c) und nachrangigem Behelfsparameter (b) zu realisieren: "00000000000000000000000000" Vielleicht findet sich in Zukunft eine eleganterer Lösung, um thematische Blöcke von wichtigen Skriptparametern und nachrangigen Behelfsparametern optisch sinnvoll voneinander zu trennen. Viel Spaß, Sinter @title Selftimer mit Auslöse-nahem Fokus 1.0 @param c CustomTimerDauer [s] 1-30 @default c 10 @param a Anzahl der Fotos 1-10 @default a 1 @param o 00000000000000000000000000 @default o 0 @param b CustomTimerBlinken 1=ein @default b 1 ]] if c < 0 then c = 0 end if c > 30 then c = 30 end if a < 1 then a = 1 end if a > 10 then a = 10 end if b < 0 then b = 0 end if b > 1 then b = 1 end function customtimercountdown(secondscustomtimer,led_blinken) local countdownstartzeit=(get_tick_count())/10 -- in Hundertstelsekunden local countdown=secondscustomtimer --print(countdownstartzeit) local led_blinken=led_blinken if countdown < 0 then countdown=0 end while (get_tick_count())/10 <= (((countdown-2)*100)+countdownstartzeit) do set_led(9,led_blinken) sleep(10) set_led(9,0) play_sound(4) sleep(450) end while (get_tick_count())/10 <= ((countdown*100)+countdownstartzeit) do set_led(9,led_blinken) sleep(10) set_led(9,0) play_sound(4) sleep(50) end end function zwischenbeeps() local led_blinken=b for i=1,3 do set_led(9,led_blinken) sleep(10) set_led(9,0) play_sound(4) sleep(50) end end function fastshoot() press("shoot_half") repeat sleep(1) until get_shooting() == true press("shoot_full") release("shoot_full") release("shoot_half") repeat sleep(1) until get_shooting() ~= true end -- MAIN: if get_drive_mode() > 1 then print("Bitte den Cam-eigenen") print("Selbstauslöser abschalten") print("und Skript neu starten.") else customtimercountdown(c,b) for i=1,a do if i>1 then zwischenbeeps() end fastshoot() end end