Koodaussolmujen vertaistukiryhmä

Keskustelua Visual Novelien tekemisestä.

Valvoja: Visual Novel -yhteisö / aktiivit

Avatar
Haider
Viestit: 10
Liittynyt: To Huhti 16, 2009 01:42
Paikkakunta: Wasa

Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Haider » Ti Tammi 31, 2012 00:43

Keneltäkään kysymättä pistän nyt tänne ensimmäisen topicin... Ren'Pyllä on miellyttävän yksinkertaista koodata niin, että jopa ohjelmointia inhoavasta allekirjoittaneesta on oikeastaan mukavaa kirjoittaa sille koodia. Mutta ongelmia tulee aina jostain, joskus haluaa tehdä operaation joka ei luonnistu normikonsteilla ja aina ei välttämättä muuten vain tajua, joten ajattelin pistää pystyyn topicin, jossa jakaa koodauksessa tulleita ongelmia/kysymyksiä muille ja saada toivon mukaan vastauksia paluupostissa.

Toki on Ren'Pyn oma wiki juuri tähän tarkoitukseen, mutta ainakin minulle tuli se ongelma, etten tiedä aina, millä termeillä sieltä etsiä ratkaisua ongelmaan. (i.e. ei auta "time" hakusanaksi kun haluan operaation kestävän neljä sekuntia puolen sijaan) Näin ollen kysykäämme ihmisiltä, jotka ovat saattaneet jo ratkaista omilla tahoillaan saman ongelman ja joille on helpompi esittää mahdollisia jatkokysymyksiäkin. ...No, ainakin minun päässäni tämä logiikka kuulosti hyvältä. Sana vapaa.

(toki mikäli topic on modeista huono idea, poistakaa vain, tyhjällä osastolla ei ihan ole varma mikä on sopivaa etikettiä ja mikä ei)
[01:22] <@Tounis> sä et ookkaa oikee ihminen

[17:32] <Hoothoot> En unohda koskaan.

Avatar
kyokugaisha
Viestit: 545
Liittynyt: Ti Huhti 08, 2008 12:32
Paikkakunta: Joensuu~Mikkeli
Viesti:

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja kyokugaisha » Su Helmi 19, 2012 21:55

hauu~

Ajattelin vaihteeksi tehdä ihan suomenkielisen VN:n vaihteeksi, mutta törmäsin yllättävään onkelmaan. Valikkojen ja asetuksien nimet (Lataa, Lopeta etc) voi kyllä helposti tuolta options ja screens tiedostoista vaihtamaan suomenkielisiksi, mutta mitenkä sellaiset lausahdukset kuten esim. "Are you sure you want to quit?" joka tulee kun yrität sulkea ikkunaa, pitäisi kääntää? .___.

Yritin tuolta Ren'Pyn wikistä ja muualta etsiskellä neuvoja, mutta löysin vain maininnan jostain translations.rpy tiedostosta joka ilmeisesti pitäisi tehdä ja sinne korvata haluamallaan kielellä nuo termit, mutta ei mitään ohjetta siitä mitä muuta pitää mahdollisesti tehdä D: Pitääkö tuo tiedosto siis vain tyrkätä tuonne kansioon ja maagisesti käännöstä tupsahtaa? Eipä kai. Jotain mainittiin myös config.translations = dict(...) komennosta, mutta ei sitä minne se pitäisi laittaa, ja mitä siihen sulkujen sisälle pitäisi laittaa; kenties linkki tuohon translations.rpy tiedostoonko?

Jos siis joku osaisi selittää tosi palikasti miten tuota translations.rpy tiedostoa käytetään ja/tai miten nuo loputkin pelin sisäiset jutut saisi suomenkielisiksi, niin olisin kiitollinen :3
~Mimiconin pääjärjestäjä, MAMY ry:n ikisäätäjä

Avatar
Hemuuuli
Viestit: 19
Liittynyt: Ti Tammi 23, 2007 23:28
Paikkakunta: Kajaani

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Hemuuuli » Su Helmi 19, 2012 23:48

Tee suoraan script.rpy:n alkuun init block jossa määrität haluamasi käännökset.

Koodi: Valitse kaikki

init:
    $ config.translations = {
            "Are you sure you want to quit?" : u"{size=23}Haluatko varmasti sulkea tämän aivan mahtavan pelitekeleen?{/size}"
            }


Tässä lisää asiasta, sieltä löytyy kanssa hyvää copypastaa kaikista käännettävistä komennoista.
http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=5183

Asian voisi varmaan hoitaa myös tyylikkäästi translations.rpy tiedostolla, mutta sen käytöstä itselläni ei ole kokemusta.

Avatar
kyokugaisha
Viestit: 545
Liittynyt: Ti Huhti 08, 2008 12:32
Paikkakunta: Joensuu~Mikkeli
Viesti:

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja kyokugaisha » Ke Helmi 22, 2012 16:12

mauu~

Kiitos vastauksesta!

Itse jo päädyin kokeilemaan tuota translations.rpy:tä, ja ilmeisesti se toimii yksinkertaisesti niin että kun sen laittaa sinne samaan kansioon haluamillaan käännöksillä varustettuna, niin maagisesti renpy sieltä nuo käännökset tuonne peliin hakee. Mene ja tiedä sitten miten, mutta ainakin minulla toimi näin, mikä oli helpotus ^__^
~Mimiconin pääjärjestäjä, MAMY ry:n ikisäätäjä

Avatar
Hemuuuli
Viestit: 19
Liittynyt: Ti Tammi 23, 2007 23:28
Paikkakunta: Kajaani

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Hemuuuli » To Helmi 23, 2012 00:23

Loistavaa että toimii noinkin helposti. Pitääpä itsekkin joskus kokeilla.

Avatar
Liliel
Viestit: 110
Liittynyt: La Syys 30, 2006 10:11
Paikkakunta: Varkaus

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Liliel » La Helmi 25, 2012 21:12

Sellaista haluaisin kysyä, että miten teen valintakohdan eli toinen vaihtoehto jatkaa peliä ja toinen sitten johtaa huonoon loppuun ja mihin kohtaan se tulisi laittaa. Tuleeko valintakohdalla tehdä oma "sivunsa?"

En ihan ymmärtänyt ren'pyn ohjeita. Jos joku voisi hieman valaista. Sekä haluan tehdä visual novelini tyyliin Umineko (eli wall of text) eli ilmeisesti kirjoitan sivullisen tekstiä ja sitten loppuun nvl clear ja tätä toistan?

Toivottavasti joku ymmärtää sekaisen sepostuksen.

Avatar
Hemuuuli
Viestit: 19
Liittynyt: Ti Tammi 23, 2007 23:28
Paikkakunta: Kajaani

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Hemuuuli » Su Helmi 26, 2012 20:57

Valintakohdissa on helpointa ja selvintä käyttää jumppia jolla hypätään määrättyyn labeliin. Muutenkin labeleilla on hyvä jäsentää tarinaa ja koodia helpommin luettavaksi.
Spoiler:

Koodi: Valitse kaikki

label start:  // huomaa että pelin alkukin on oma label
    menu:  // muista sisennys aina kaksoispisteiden jälkeen
        "Happy end.":
                jump happy  // hyppää kohtaan label happy
        "Bad end":
                jump bad  // hyppää kohtan label bad
               
label happy:
    "Happy ending! <3"
    return  // sammuta peli

label bad:
    "Bad ending T_T"
    return  // sammuta peli

NVL:n käyttö on vähän monimutkaisempaa, mutta ei sekään mitään rakettitiedettä ole.
Spoiler:

Koodi: Valitse kaikki

define nvlMatti = Character('Matti', kind=nvl)  // nvl moden aikana olevat hahmot pitää määrittää erikseen alussa
define nvlNone = Character(None, kind=nvl)   // nimen voi jättää myös tyhjäksi

    window hide  // piilota teksti-ikkuna
    nvl clear  // tyhjennä nvl ikkuna
    nvl show dissolve  // näytä nvl ikkuna
    nvlMatti "Terve."  // hahmon nimi + teksi
    nvlMatti "Puhun käyttäen nvl:ää. \n\"  // \n\ tuottaa tyhjän rivin
    nvlNone "Tässä näkyy vain tekstiä. "
    nvl hide dissolve // lopeta nlv:n käyttö

// hahmojen ja taustojen piirto ei poikkea laisinkaan

Toivottavasti näistä on apua, kysy vaan lisää jos tarvetta tulee.

Avatar
Liliel
Viestit: 110
Liittynyt: La Syys 30, 2006 10:11
Paikkakunta: Varkaus

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Liliel » Ma Maalis 19, 2012 14:13

Jälleen täällä ongelmain parissa.

Lähinnä koskien hahmojen kirjoittamista eli nvl-muoto kun haluaa hahmot define nvlOrf = Character('Orf', kind=nvl) muotoon, mutta pitääkö ne kirjoittaa myös itse scriptiin koska en saa herjaa vaikka puuttuukin hahmon määritteet alusta eli siis olen kirjoittanut

"Tekstiä tässä näin kivasti." ilman että nvlOrf"Tekstiä tässä näin kivasti." Pitäisikö sen nvlOrf kuitenkin olla? Jos niin miten, koska jos laitan muotoon nvlOrf"Tässä se teksti", saan herjaa. Hahmot olen kyllä määrittänyt alkuun.

Sekä tällainen ilmeni tänään;

I'm sorry, but an uncaught exception occurred.

While executing init code:
AttributeError: Layout instance has no attribute 'yesno_prompt'

While executing init code:
File "game/options.rpy", line 10, in script
init -1 python hide:
AttributeError: 'NoneType' object has no attribute 'store'

Mihin teen ja mitä? En meinaa löytää ratkaisua tähän(kään) pulmaan. (Itken kohta D:)

Avatar
Hemuuuli
Viestit: 19
Liittynyt: Ti Tammi 23, 2007 23:28
Paikkakunta: Kajaani

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Hemuuuli » To Maalis 22, 2012 23:03

Scriptiin pitää kirjoittaa NVL:ää käyttäessä aina hahmolle declarettua nimeä, muuten tulee erroria. Jos et halue hahmon nimeä näkyviin laita nimeksi None.

Koodi: Valitse kaikki

# Tämä luo nvl kohtauksissa käytettävän hahmon, koodi on toimivaa
define nvlOrf = Character('Orf', kind=nvl)

# Kun NVL on päällä hahmoa pystyy kutsumaan näin
nvlOrf "Päläpälä"

# En näe ainakaan näissä kohdissa koodia mitään väärää


Tuo toinen errori ei pikaisella googlailulla minullekkaan avaudu. Oletko muokannut options.rpy:tä tai screens.rpy:tä?

Avatar
Liliel
Viestit: 110
Liittynyt: La Syys 30, 2006 10:11
Paikkakunta: Varkaus

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Liliel » Ma Maalis 26, 2012 20:10

Hemuuuli kirjoitti:Scriptiin pitää kirjoittaa NVL:ää käyttäessä aina hahmolle declarettua nimeä, muuten tulee erroria. Jos et halue hahmon nimeä näkyviin laita nimeksi None.

Koodi: Valitse kaikki

# Tämä luo nvl kohtauksissa käytettävän hahmon, koodi on toimivaa
define nvlOrf = Character('Orf', kind=nvl)

# Kun NVL on päällä hahmoa pystyy kutsumaan näin
nvlOrf "Päläpälä"

# En näe ainakaan näissä kohdissa koodia mitään väärää


Tuo toinen errori ei pikaisella googlailulla minullekkaan avaudu. Oletko muokannut options.rpy:tä tai screens.rpy:tä?


En ole muokannut options.rpy:tä tahi screens.rpy:tä, mutta sinne tuo viittaa tai pikemminkin heittää kun "linkkiä" painan. Pitäisi olla pelin valmis ensi kuun alkuun mennessä mutta tuollaiset pikku-mitä-nämä-haluaa-oikein-olla lannistavat.

Ja kuvien kanssa on seuraavanlainen ongelma; game/script.rpy:5 Image bg kuva uses file 'kuva.jpg', which is not loadable. Joten miten ja minne kuvat olisi sitten laitettava? Ovat omassa kansiossaan mutta tulisiko myös image bg kuva = "kuva.jpg" riville laittaa image bg kuva = "kansio_nimi/kuva.jpg" jotta ne olisivat "loadable" ja toimisivat oikein?

Miks mulle tulee nää kaikki ongelmat? Miks tää ei voi toimia ilman ongelmia...

Avatar
Hemuuuli
Viestit: 19
Liittynyt: Ti Tammi 23, 2007 23:28
Paikkakunta: Kajaani

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Hemuuuli » Ke Maalis 28, 2012 21:46

Kuvat laitetaan samaan game kansioon missä pelin scriptitiedostot sijaitsevat. Kuvia voi laittaa alakansioihin jolloin ladatessa niihin tulee juurikin laittaa kansion nimi eteen. Kuvaformaattina suosittelen png:tä.

Koodi: Valitse kaikki

#Game kansiossa on kansio Content, josta löytyy kansio Backgrounds, josta haetaan kuva
image bg bedroom="Content/Backgrounds/bedroomday.png"


Tuo toinen ongelma on vähän mysteerinen ratkaista ilman että pääsen itse käsiksi scriptiin, voin katsoa sen lävitse jos lähetät sen minulle yksityisviestinä ja koittaa selviittää tuon errorin.

Elä lannistu, pelidevauksessa on aina pieniä ongelmia, mutta kyllä pahimpiikin solmuihin aina löytyy ratkaisu!

Avatar
Liliel
Viestit: 110
Liittynyt: La Syys 30, 2006 10:11
Paikkakunta: Varkaus

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Liliel » Ti Huhti 17, 2012 10:30

Sain kuvat toimimaan jollain mysteerikeinolla. Painoin vaan space. Aluksi kuvat oli muotoa image bg bedroom="bedroomday.png jotka spacen kanssa ovat seuraavaa: image bg bedroom = "bedroomday.png". Onko Ren'py oikeasti niin herkkä että yksi painamatta jäänyt space vaikuttaa?

Seuraava kysymys koskee kustomoitua valikkoa. Kuinka helppo sellainen on tehdä? Piirto-ohjelmalla tuskin on väliä, että millä kustomoidut buttonit tekee koska photoshop on minulla vain viimeistelyyn, kaiken teen Sailla. Mihin osioon tulisi laittaa ja miten? Ilmeisesti options.rpy on oikea paikka ulkoasun muokkauksille.

Samoin, jos on multiple route vaihtoehto ja haluaa haarauttaa juttua, onko mahdollista tehdä esimerkiksi jokaisella routelle oma scripti? Koska mahdollisesti tulisi aikamoinen työ löytää oikeat kohdat jos samaan scriptiin kaiken laittaa. Sanotaan, että on vaikka kolme eri loppuvaihtoehtoa ja ne ovat usemman "sivun" mittaisia. Eli jokainen loppuvaihtoehto olisi omalla scripti-sivullaan. Kuinka nämä tulisi sitten yhdistää?

Avatar
Holly
Viestit: 228
Liittynyt: La Syys 22, 2007 10:42
Paikkakunta: Savonlinna

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Holly » Ke Huhti 18, 2012 17:39

Liliel kirjoitti:Onko Ren'py oikeasti niin herkkä että yksi painamatta jäänyt space vaikuttaa?


On.

Ja kyllä, jokaiselle reitille on mahdollista tehdä oma tiedostonsa. Script.rpy:n (tai mikä lie olikaan) voi hajottaa osiin, jotka yhdistetään samalla tavalla kuin valikoiden kanssa. Eli siis, jos johonkin kohtaan scriptiä kirjoitat esimerkiksi "jump reitti1" ja sitten toiseen tiedostoon "label reitti1", renpy tunnistaa sen toimivaksi scriptiksi. Reitti ykkösestä voit sitten taas hypätä takaisin toiseen tiedostoon samalla konstilla, mutta tietysti eri nimillä (esim. jump reitti2 - label reitti2).

Ainakin näin omien muistikuvien mukaan, kannattaa ainakin kokeilla. Saatan nimittäin olla väärässäkin, en ole mikään ekspertti näissä asiaoissa.

Avatar
Liliel
Viestit: 110
Liittynyt: La Syys 30, 2006 10:11
Paikkakunta: Varkaus

Re: Koodaussolmujen vertaistukiryhmä

ViestiKirjoittaja Liliel » To Heinä 26, 2012 13:33

Dodih, lisää kivoja ongelmia.

Tein kustomoidut options sekä save/load menut, mutta kivasti eivät sitten toimikaan, osittain joo mutta eihän se nyt riitä. Save/load menuun pitäisi saada slotteihin näkymään kuva (oikea termi lienee thumbnail savetusta kohtauksesta) mutta ei millään meinaa kokeilemani koodit toimia suuntaan eikä toiseen.

Options (preferences) valikossa taasen ei toimi sliderit.

Samoin pitäisi saada toimimaan yes-no sekä valinta kustomit. En hurjasta guuglettamisesta huolimatta löydä neuvoa.


Samoin huomasin, että kun lisäsin kustom save/load/preferences menut ei splashscreen toimi. Ilman kustom-menuja se toimii ilman ongelmia. Mikähän tässä mahtaa olla vialla? Pelin auetessa näkyy välähdys ja siinä se. Eikä muuten toimi fadeus toimintokaan chaptereitten välillä. Kuitenkin fade ja splashscreenin pitäisi kait toimia vaikka olisi kustom-menut?

Pitääkö minun nyt kahden päivän työ hylätä ja poistaa jotta fade/splashcreenit toimii ja käyttää renpyn omia valikkoja jotka ei sitten sovi yhteen kustomi main menun kanssa.


Palaa sivulle “Pelinteko”

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 1 vierailija