Hej
Napisałem skrypt do zoomu i focusa w trybie video dla G7.
Sprawdźcie jak to działa na innych aparatach. Natchnął mnie obecny na forum skrypt do zoomu w wideo, dołączyłem do niego kilka presetów żeby był bardziej praktyczny. Ale przy okazji okazało się że działa w video set_focus no więc nie omieszkałem tego wykorzystać :) . Ja mam na razie takie tylko zastrzeżenie że tych presetów do zooma jest za dużo, przydałby się może jeden skrót klawiatury do zooma i focusa jednocześnie, dwa do focusa, i dwa do zoomu. Ale to tylko teoria bo nie sprawdziłem jeszcze dobrze skryptu w praktyce.
Pewnie nie najlepiej to skonstruowałem bo to mój pierwszy skrypt, ale u mnie działa. Żeby przekalibrować na inne modele trzeba zmienić zakres zoomu i focusa. W focusie być może trzeba będzie zmienić algorytm, a w zoomie ilość kroków. Mogę przerobić skrypt na inne modele ale muszę znać te parametry. Z resztą może będzie działał bez zmieniania.
Sposób ustawiania focusa jest może kontrowersyjny ale za to działa. Czasem naprawdę potrzebny jest najazd na obiekt w makro z użyciem zoomu, albo wyjście z makro do normalnego. Mi to się z pewnością przyda. Minusem jest to że przed kręceniem filmu dobrze jest przewidzieć co chce się robić, jakiego zoomu i focusa używać.
Jeśli chodzi o focus to skokowe przesunięcie działa w 11 krokach. Postęp jest geometryczny. Preset też można przestawić na geometryczny a nie odległościowy (geometryczny szybciej się przestawia).
Mam nadzieję że to się przyda komuś.
Piszcie o Waszych doświadczeniach i co byście zmienili.
Uprzedzam od razu że chyba nie możliwe jest w obecnym chdk zrobienie "normalnego" zoomu i autofocusa.
Wersja 1.0
rem Author kamil, v.1.0
@title zoom and focus in video for g7
@param a zoom jump \erase\ (std)
@default a 7
@param b zoom jump \left\
@default b 1
@param c zoom jump \set\
@default c 3
@param d zoom jump \right\
@default d 5
@param e zoom jump \display\
@default e 11
@param g focus at start (1-11)
@default g 5
@param f focus jump to \menu\ (*100)
@default f 13
@param h help (1-on)
if h=1 then gosub "help"
get_prop 12 q
if q=0 then set_prop 12 1
z=a
v=g
press "shoot_half"
sleep 800
click "shoot_full"
:loop
wait_click
if is_key "zoom_in" then goto "in"
if is_key "zoom_out" then goto "out"
if is_key "up" then goto "add_focus"
if is_key "down" then goto "min_focus"
if is_key "display" then z=e
if is_key "erase" then z=a
if is_key "left" then z=b
if is_key "set" then z=c
if is_key "right" then z=d
if is_key "menu" then goto "focus_extra"
if is_key "shoot_half" then goto "end"
print "zoom jump", z
goto "loop"
:in
if z<0 then let z=1
if z>13 then let z=13
set_zoom_rel z
get_zoom r
print "zoom", r
goto "loop"
:out
if z<0 then let z=1
if z>13 then let z=13
set_zoom_rel -z
get_zoom r
print "zoom", r
goto "loop"
:add_focus
v=v+1
gosub "focus_dance"
goto "loop"
:min_focus
v=v-1
gosub "focus_dance"
goto "loop"
:focus_dance
if v<1 then let v=1
if v>11 then let v=11
u=(v*v*v*v)+80
if v=11 then u=65535
print "focus", u; "mm"
set_focus u
return
:focus_extra
u=f*100
set_focus u
goto "loop"
:end
click "shoot_full"
end
:help
print "When You need a special"
print "functions in camera..."
print "Use with CAUTION"
print " - [ click ANY KEY ] - "
wait_click
print "written for G7"
print "You must change script"
print "of ZOOM and FOCUSING"
print "data for your camera"
print " - [ click ANY KEY ] - "
wait_click
print "KEYS:"
sleep 1000
print "- up/down - focus (11)"
print "- left/set/right/disp"
print " /erase - ZOOM PRESETS"
print "- menu - FOCUS PRESET"
print " - [ click ANY KEY ] - "
wait_click
print "Feel free in modify this"
print "script to make it more"
print "comfortable"
print " "
print " - [ click ANY KEY ] - "
wait_click
print "press SHOOT HALF"
print "to end recording"
print "Because of zoom and"
print "focusing noises"
print " - [ click ANY KEY ] - "
wait_click
print "i suggest record the"
print "sound with another"
print "recorder and join with"
print "nandub for example"
print " - [ click ANY KEY ] - "
wait_click
print "enter 0 in param help"
print "Now set camera to video"
print "Script will start"
print "recording..."
print " - [ click ANY KEY ] - "
wait_click
cls
return
end