Tvorba signalizátorů záběru pro Fishsim 2
J.C.Spooner 2002 ( česká verze - Jerry 2008 )

Úvod
Lov na položenou je stále více populární způsob lovu ryb. Umožnuje rybáři umístit nástrahu na dno, jednoduše bez ohledu na hloubku vody. Na druhé straně, detekce záběru zde již není tak jednoduchá.

Fishing Simulator verze jedna disponoval pouze čtyřmi detektory záběru, nebylo možné přídávat žádné další detektory. Ve FS2 toto omezení neexistuje a je možné vyrobit a přidat libovolné množství různých detektorů záběru.

Všechny detektory záběru fungují na stejném principu, napínání a pohyb vlasce. Nejhrubším detektorem je špička prutu sama o sobě, pokud ryba tahá za nástrahu, zvyšuje nebo snižuje se napnutí vlasce a to způsobuje pohyb špičky prutu. Tento pohyb může být taktéž detekován na samotném vlasci, kde je cítit napínání a povolování když ryba manipuluje s nástrahou. Kvalitnější hlásiče, detekují pnutí na vlasci a produkují zvukovou a/nebo světelnou signalizaci aby uporoznily rybáře na pohyb nástrahy.

Jakýkoliv existující detektor lze vyrobit a použít ve FS2.

Potřebné nástroje a znalosti
Následující odstavec zběžně popisuje co budete potřebovat na vytvoření detektoru záběru pro FS2

- Znalost systému souborů a adresářů v systému Microsoft Windows.
- Kopii Fishing Simulatoru 2.
- Jednoduchý textový editor, Notepad ( poznámkový blok ) ve Windows je ideální.
- Program na úpravu a editaci obrázků JPG - Paint Shop Pro je dobrá volba
- Program na editaci zvuku ( pokud je zvuk součástí detektoru ), záznam zvuku ve Windows je dostatečný pro základní editaci.

Ukládání a formát souborů detektorů záběru
Ve složce TACKLE uvnitř adresáře s FS2 je podadresář nazvaný DETECTOR. V tomto podadresáři jsou soubory s příponou .tkl. Každý detektor záběru ve FS2 má svůj .tkl soubor, který obsahuje detaily o vzhledu a funkci detektoru.

Pro vytvoření nového detektoru vytvořte pomocí poznámkového bloku ( notepadu ) nový textový soubor s příponou .tkl v tomto adresáři nebo zkopírujte a přejmenujte již hotový .tkl soubor ve stejném adresáři.

Formát souboru je stejný jako u všech ostatních .tkl souborů ve složce TACKLE, obsahuje sekce, proměnné a hodnoty s několika málo odlišnostmi.

Jsou zde dvě hlavní sekce nazvané [HEADER] a [DETECTOR] stejně jako několik sekcí [POS(x)] , kde x označuje nějaké číslo.

Sekce [HEADER] obsahuje čtyři proměnné, Name, Desc, Ref, a Type. Toto je stejné jako u všech ostatních .tkl souborů ve FS2.

Proměnná Name by měla obsahovat název detektoru. Může obsahovat mezery a není dán žádný délkový limit, ale doporučuje se maximálně 30 znaků, aby se jméno vešlo do svého boxu na obrazovce. Také se doporučuje aby jméno bylo unikátní v celém FS2.

Proměnná Desc obsahuje cestu a název souboru s informacemi o detektoru ( .fsb soubor ). Pokud nebudete vytvářet tento .fsb soubor, nastavte proměnnou na [None].

Proměnná Ref musí obsahovat unikátní referenční jméno detektoru. Nesmí obsahovat mezery a může být maximálně 13 znaků dlouhé.

Proměnná Type musí být nastavena na 4 aby systém FS2 poznal, že se jedná o detektor záběru. Pokud nebude nastaveno na 4, detektor se nezobrazí mezi detektory v seznamu. Toto je z důvodu aby nedošlo omylem k uložení .tkl souborů do složky s jiným vybavením.

Sekce [DETECTOR] obsahuje specifické detaily o fungování detektoru záběru.

Proměnná Type ( upozornění : uvitř sekce [Detector] ), může být nastavena na jakýkoliv z následujících základních typů detektorů.

Hodnoty Význam
1 Swingtip
2 Quivertip
3 Bobbin
4 Electronic detector
5 Monkey climber

Zadaná hodnota není důležitá a slouží pouze jako informativní pro rybáře při výběru detektoru. Měli by jste se ale i tak pokusit nastavit ten typ co je co možná nejbližší vámi tvořenému detektoru, protože se bude rybářům lépe vybírat a budou se lépe orientovat v seznamu detektorů. Nic jiného tento kód ve FS2 neovlivňuje.

Proměnná Graphic obsahuje cestu a název souboru s "velkým" obrázkem detektoru, který se zobrazí u detektoru na obrazovce s vybavením. Obrázek by měl mít rozměry 200 x 100 pixelů a měl by být uložen ve formátu JPG nebo PCX. Menší obrázek bude taky OK, ale nebude vypadat pěkně, větší obrázek se nevejde do pole na obrazovce a bude přečnívat.

Hodnota Linegrad udává citlivost detektoru a používá se na nastavení citlivosti. Vysoké hodnoty značí citlivé detektory a nižší hodnoty naopak méně citlivé detektory. Podrobnější vysvětlení by bylo složité a museli by jste rozumět tomu jak systém FS2 pracuje s detektory, to najdete v dalších sekcích.

Hodnota Start je velmi podobná jako linegrad výše a je vysvětlena v další části.

Hodnota Connect může být nastavena na 1 nebo 2 což značí jakým způsobem je detektor připojen k prutu nebo vlasci. Pokud musí být detektor připevněn k prutu jako například "swingtip, quivertip" pak musí být hodnota connect nastavena na 1, pokud se jedná o detektor, kterým pouze prochází vlasec, např. "bobin" nebo elektronické hlásiče, pak musí být hodnota connect nastavena na 2. Pruty se mohou vyrábět ve FS2 jak s konektorem pro připojení detektoru na špičku tak bez něj. Pruty bez tohoto konektoru nelze použít v kombinaci s detektory, které mají nastavení connect na 1. Nastavení connect má taktéž vliv na chování detektoru při lovu. Detektor s nastavením 1 je aktivní po celou dobu ( i když držíte prut v ruce ). Detektor s nastavením 2 bude aktivní pouze pokud je prut ve vidličce. Pokud jsou u detektoru nastaveny zvuky, nedoporučuje se nastavení connect 1, protože by zvuky byly přehrávány neustále při každém pohybu s prutem - což by mohlo být pro rybáře značně iritující.

Sekce [POS(x)] , kde x značí nějaké číslo začínající od 1 značí různé zvuky a různé obrázky podle různých nanutí vlasce. První sekce [Pos(x)] udává obrázek a zvuk, který se použije pokud není žádný pohyb vlasce ( nic se neděje ). Poslední sekce [Pos(x)] udává obrázek a zvuk, který se použije při maximálním pnutí vlasce.

Můžete si vytvořit tolik sekcí [Pos(x)] , kolik si budete přát, v závislosti na citlivosti a přesnosti jakou chete dát detektoru. V každé sekci [Pos(x)] jsou tři proměnné, Graphic, Sound a Volume.

Proměnná Graphic obsahuje cestu a název souboru s obrázkem, který se zobrazí když pnutí vlasce dosáhne nastavené hodnoty. Obrázek by měl mít ideálně rozměry 50 x 50 pixelů a měl by být ve formátu JPG (doporučeno) nebo PCX. Pro více informací jak fungují pohyblivé obrázky ve FS2 - adresář GRAPHICS/DETECTOR/FSSWING obsahuje všechny obrázky v animaci. Pokud si prohlédnete tento adresář v Pain Shop Pro, uvidíte všechny obrázky v jednom stejném okně.

Proměnná Sound obsahuje cestu a název souboru .wav , který se přehraje když pnutí vlasce dosáhne nastavené hodnoty.

Proměnná Volume obsahuje hlasitost zvuku, která se má použít, 1 znamená ticho a 100 znamená nejvíce nahlas. Hlasitost se bude lišit u každého .wav souboru, protože tyto soubory mají v sobě uloženu informaci o jejich hlasitosti. Pokud se nebude přehrávat žádný zvuk, nastavte hodnotu Sound na [None].

Můžete pro vámi vytvářený detektor použít tolik sekcí [Pos(x)] kolik chcete, hodnota indexu (x) nemusí jít přesně popořadě, ale je doporučeno aby tomu tak bylo. Více o sekcích [Pos(x)] je v další části.

Fungování detektorů záběru
Je složité vysvětlit jak FS2 rozhodne v jaké poloze má být detektor záběru bez poodhalení jak to všechno funguje, takže níže je algoritmus a aktuální kód, který tohle provádí. Zde je počítačový kód přeložený do angličtiny :

Algoritmus

Slack := Slack_Line - Start
Position
:= abs ( Slack / Linegrad )
If Position > Total_Number_Of_Positions then Position := Total_Number_Of_Positions

Kód

slack=(float)fishslack-rodset[rod].detector->start;
slack=fabs(slack);
dev=(int)slack/rodset[rod].detector->linegrad;
if(dev>rodset[rod].detector->numgrads-1)dev=rodset[rod].detector->numgrads-1;
cast[rod].rig.castdrop=(int)dev;

Na první pohled se to může zdát složité, ale algoritmu se dá porozumět s vysvětlením. Nejdříve Slack_Line udává aktuální množství volného vlasce (průvěsu) v palcích. Od této hodnoty se odečítá hodnota Start z .tkl souboru detektoru. Výsledná hodnota ( Slack ) se potom dělí hodnotou Linegrad z .tkl souboru a je uloženo do position. Tím dostaneme pozici pro sekci ( [Pos(x)] ) pro zobrazení obrázku a přehrání zvuku. Třetí řádek algoritmu pouze kontroluje, jestli pozici nepřekračuje maximální hodnoty pro daný detektor, pokud ano použije se poslední možná pozice. Aplikování algoritmu na příklad pomůže lépe pochopit jeho fungování.

Příklad

Dejme tomu, že .tkl soubor detektoru má 20 různých pozic, hodnotu linegrad = 2 a hodnotu start = 10.

Představme si, že nyní je aktuální průvěs vlasce 4 palce.

Slack := Slack_Line - Start --------------> ( Slack := 4 - 10 [ -6 ] )

Hodnota Slack ( -6 ) se potom dělí hodnotou linegrad ( 2 ) a absolutní ( kladná ) hodnota se použije.

Position := abs ( Slack / Linegrad ) --------------> ( Position := -6 / 2 ->= -3 , abs (-3) = 3 )

Pozice 3 je méně než 20, proto se zobrazí obrázek ze sekce [Pos(3)] a také se přehraje zvuk ze stejné sekce.

Omlouvám se za odborné vysvětlování, ale snad to pomůže.

Ve zkratce, pokud je hodnota Start = 0, ovlivní to detektor pouze když průvěs je méně jak 0 palců ( něco tahá za vlasec ). Hodnota Start vyšší jak 0, naříklad 10, znamená, že detektor bude signalizovat když je průvěs = nebo menší než 10 palců.

Velikost pohybu je řízena hodnotou Linegrad , vyšší hodnoty znamenají citlivější detektor, nižší hodnoty zančí méně citlivý detektor. Je to tak protože tato hodnota funguje jako dělitel při určování pozice detektoru.

Závěr
Tato stránka popisuje, jak je možné vyrobit nové detektory záběru pro FS2, stejně tak jak je možné změnit stávající detektory.

Vysvětlení není sice úplně podrobné, ale dostatečné na vytvoření a implementaci nového detektoru. Stejně jako další věci ve FS2 je vše flexibilní jak to jen je možné aby bylo možno vytvářet libovolné množství různých druhů detektorů záběru.

Například, pokud je Bart Simpson vaše oblíbená postavička, můžete si vytvořit jako detektor záběru postavičku Barta, který na Vás bude při záběru pokřikovat své hlášky a třeba se potápět :-)

(c) J.C.Spooner, (cz) Jerry 2008