@bruuh: najpopularniejsza metoda to wavetable gdzie jest z 10 próbek silnika w różnych prędkościach i to się przenika ale brzmi to imo sztucznie, ja bym chciał bardziej naturalne brzmienie, nagrane długim samplem zamiast dziesięcioma małymi
@MostlyRenegade: na tym się pewnie skończy( ͡°͜ʖ͡°) już coś mi świta żeby podejśc do tego generatywnie, ostatecznie może zrobię jakąś bieda wersję tego symulatora bo wiekszość tutoriali brzmi sztucznie
Wnioski po godzinie myślenia: idle.wav powinien startować z freq=100% i dażyć do 1000% ściszając się max.wav powinien startować z freq=10% i dążyć do 100% zgłaśniając się accelerate powinien zawsze mieć freq=100% accelerate powinien reagowac na wzrost freq pozostałych. Jeśli wzrost jest w zakresie y=1x to powinien się zgłaśniać a jeśli wychodzi poza zakres - ściszać czyli jeśli przyspieszenie auta=1 to głośność=1 a odchyły od 1 są odpowiednio wyciszane
Na starcie gry skrypt tworzy dwie instancje samochodu: s1 i s2. Jak wewnętrzny skrypt w samochodzie może się dowiedzieć czy jest w s1 czy w s2 przed pojawieniem się?
W funkcji Start to jest proste bo wystarczy mu przesłać zmienną ale jak to zrobić w Awake? #unity3d #csharp
@zibizz1: też tak zrobiłem ale myślałem że to jakieś druciarstwo i na pewno są lepsze sposoby. Ale w sumie to jest logiczne że jak jest Awake i Start i nic pomiędzy to można sobie odpalić skrypty po kolei po Awake
Czy mogę czytać wartości ze Scriptable Object bezpośrednio w Update? Czy lepiej przepisać wartość raz na starcie do tymczasowej zmiennej i z niej korzystać? (chodzi o obroty silnika, nie chciałbym żeby mi co obrót coś robił na dysku tak jak to robi np. Debug.Log)
@jacku: Myśl o SO jako o typie klasie i tym jakie ma funkcjonalności. Podejrzewam że podobnie jak ja kiedyś ich wizję zaślepia ci fakt że Unity umożliwia ich zapisanie jako asset.
SO nie są w żaden sposób przeznaczone do przechowywania danych czy bycia "plikiem", one są tym samym czym jest MonoBehaviour, po prostu mają bardzo mało funkcji i nie mają rzeczy typu Update, czy OnEnable
@tlustywalec: i tak próbowałem ale podkreślało mi to na czerwono więc przepisałem zawartość ręcznie. Będę próbował dalej, może coś musi być static albo mam coś niezadeklarowane
@tlustywalec: działa, dzięki! Zostawiłem struct w pliku ale przeniosłem go poza klasę i też go widzi, najwyżej jak coś bedzie nie tak to przeniosę do osobnego
@tlustywalec: niestety, z braku czasu ogrniam tematy na bieżąco dopiero kiedy stają się potrzebne ¯\_(ツ)_/¯
Tutaj akurat chodzi o wskazanie skryptowi jakie kości postaci idą do obliczeń. Każda postać ma trochę inne kości więc w prefabie jest skrypt skeleton.cs w którym je linkuję ręcznie do odpowiednich pól. Następnie przy instancji postaci inny skrypt sterujący pobiera sobie te konkretne kości do obliczeń. Miałem to robić przez Scriptable Object ale nie mogłem
Mirki z #csharp chciałbym dorobić do gry wyścigowej prosty system RPG czyli parametry samochodu (speed, power, grip). Najprościej chyba zrobić struct ze zmiennymi i je odczytać przed startem?
Z drugiej strony widzę ze jest mnóstwo rozbudowanych systemów do tego np. Scriptable Objects (które też ogarnę) i są też płatne gotowe skrypty. W co warto iść? Zależy mi żeby to było proste i łatwo edytowalne w przyszłości, żeby nie robić jakiegoś
@TymRazemNieBedeBordo: dzięki, to w tą metode pójdę. Dotychczas robiłem tak że najpierw powstawał prototyp najgorszymi możliwymi sposobami byle tylko działał i potem to wymieniałem na lepsze mechanizmy. SO tak naprawdę nie potrzebowałem bo wszystko daje się zrobić za pomocą samych zmiennych np. user w menu wybiera int=7 i ten int podlinkowuje jakiś prefab variant ze skryptem, parametrami, obiektami. Tak samo nie używam np. nav mesha. Ale dla optymalizacji całości faktycznie
Mirki z #csharp mam problem z quaternionem: mam ludka w samochodzie a punkt na górze to wskaźnik inercji, rusza się wolniej niż samochód i ludek powinien w niego celować wtedy będzie się odchylać przy ruszaniu.
wyznaczyłem wektor do tego punktu:
Vector3 directionUp = car.position - point position;
@reakwon: tak mam teraz ale constraint ma mnóstwo parametrów i potrzebuje rigidbody i jest mało przewidywalny, glitchuje, ja chcę to zamienić na własny skrypt i wewnątrz kontrolować wszystko. To z nadpisaniem osi brzmi ok. Właściwie to potrzebowałbym znaleźć tylko rotację Y samochodu względem świata i poprzez jakiś inverseTransformDirection nadać ją na ludka w jego osi Y. Ale cały czas jakieś cyrki wychodzą jak samochód się pochyla
@MostlyRenegade: no np. że przy mnożniku zero wszystkie włosy powinny być tej samej długości =hairLength. Natomiast przy ruszeniu noiseMult powinny się stopniowo różnicować, od lekkiej fali np 0.4 do 0.6 po duży zakres 0.01 do 0.99
@Ulyssos: chyba nie, może jest błąd bo pisałem to trochę w ciemno, generalnie mult miał wzmacniać słabe typy noisa, gdzie wartości leca np. od 0.1 do 0.2, nie wiem czy to robi, może tam gdzieś powinien być Math.Pow
Mirki, dałoby się jakoś przesunąć tą linię podziału za pomocą skryptu? Potrzebuję ją często przesunąć do końca i znów wrócić do połowy, przełaczanie całego workspace'u nie ma sensu bo model jest wtedy inaczej obrócony i cieniowany. A maksymalizacja viewportu z kolei chowa boczny panel z outlinerem W skrótach klawiszowych są jakieś komendy do tego ale działają tylko jak kursor jest w Active Zone #blender
@Trewor: to jest problematyczne bo np. pracuje nad okiem, mam zbliżenie, włączone normale, siatkę, cavity itp. potem przerzucam się na drugi viewport i mam podglad bez normali, inna siatka, inny snapping, wszystko inne. Rozważam jeszcze skrypt który mi znajdzie tą kreskę po pikselach 16x16 i sam kliknie myszką i przesunie, trwa to z pół sekundy i lubi glitchować ale jak twórcy nie pomyśleli to takie coś może tymczasowo wystarczy
@MostlyRenegade: @zibizz1: @draculeq: Idealnie zatem byłoby ustawić fizykę na 50 fps i grę na 50 fps wtedy mamy zdarzenie co klatkę. Tylko pytanie czy te zegary idą synchronicznie? Chyba nie bo np. dla odczytu buttonów przydałoby się 200 fps i jak ustawię w skrypcie buttonów FixedUpdate na 50 fps to niektóre nie zdążą być zarejestrowane ale jak ustawię Update na 15 fps to gra skacze ale
@denis-szwarc: @zibizz1: dzięki, teraz mi to działa ale nie działało i kolorowało błędnie kod przy tej samej składni. Nawet jak pominę "using MyScripts" to też działa - intellisense to widzi, podejrzewam mam błedy w VS Code, np. jak przesunę okrągły nawias do nowej linii to koloruje inaczej ale działa
Jak zamienić Quaternion na Vector3 i odwrotnie? Siedzę pół dnia na tym ( ͡°ʖ̯͡°)
Mam w unity 2 obiekty i chciałbym żeby jeden kopiował rotację drugiego ale z lekkim skryptem modyfikujacym. Skrypt chce Vector3 a rotacje są jako Quaterniony. Musiałbym sprowadzić rotację pierwszego do Vector3, zaaplikowac skrypt i zamienić z powrotem
@zibizz1: największym problemem jest to że nawet jak sobie obliczę w skrypcie wszystko na quaternionach i eksportuję na quaterniony (lub angles) to unity i tak w losowych momentach zmienia pola Rotation o 180, 360 itp. i żaden skrypt wtedy nie ma sensu. W normalnych rotacjach użytkownik nie widzi że mu postać przeskoczyła o 360 ale skrypt to widzi i generuje fikoły
@zibizz1: tylko ty tutaj pobierasz rotację Cube1 na starcie a potem dla Cube2 generujesz ruch z niczego a mi chodzi o to żeby w update na bieżąco analizować Cube1 i z niego generować zmodyfikowane rotacje dla Cube2.
W pewnym momencie rotacje odczytywane z Cube1 przeskakują z (90,0,0) na (0,180,180) i nie ma z czego czytać bo dane są już pomieszane. Musiałbym mieć odczyt taki jak w panelach unity tzn. jak
@zibizz1: Działa! Okazało się że skrypt którego używam działa na Vector3 i zawsze jak liczył Quaternion XYZW to parametr W pomijał. Po przerobieniu na Vector4 wszystko działa ¯\_(ツ)_/¯ Ale dzięki za pomoc bo mi się dużo rzeczy rozjaśniło przy analizie tego
Robię podajnik jedzenia dla szczura na #arduino i chyba najlepszym pomysłem wydaje się 5 komorowe koło i obroty o 72° co 12h
Na symulacji wyszedł mi taki kształt komór, da się tu coś lepszego wymyślić żeby komora brała max. jedzenia ale jednocześnie żeby jak najmniej wysypywała przy każdym położeniu? Teraz da się zapakować 1/3 objętości, inaczej nie wysypie całości #fizyka #elektronika
@severh: też spoko opcja, nie wiem jakie byłyby opory bo masz 5 komór z jedzeniem które trą o dno i mogą się o zahaczyć o okruchy, plus coś może utkwić w dziurze i zablokować całe koło, ale to ekstremalna sytuacja. Idealnie byłoby gdyby w całym kole było jedzenie i jeden obrót wydzielałby porcję i ją wysypywał, (coś jak link powyżej), ale nie wiem jak to działa
@WojtekN47: nie może tak być, żarcie wleci w szczeliny między kołami albo zaklinuje to żółte jak kilka ziaren złapie krawędzią. Zrobiłem to moje koło i wstępnie działa choć wygląda jak g... ¯\_(ツ)_/¯
Zrobiłem sobie stronę na pionowy i poziomy ekran i działa ok ale w trybie "mobile" przegladarka sama powiększa fonty. Czy to znaczy że istnieje jakiś ukryty skrypt który po wykryciu telefonu pomija moje ustawienia?
int rpm=10; //10=idle 100=maxfloat freqPercent;
jak podstawię w ten sposób to działa:
freqPercentźródło: rat_racer_03
Pobierzidle.wav powinien startować z freq=100% i dażyć do 1000% ściszając się
max.wav powinien startować z freq=10% i dążyć do 100% zgłaśniając się
accelerate powinien zawsze mieć freq=100%
accelerate powinien reagowac na wzrost freq pozostałych. Jeśli wzrost jest w zakresie y=1x to powinien się zgłaśniać a jeśli wychodzi poza zakres - ściszać
czyli jeśli przyspieszenie auta=1 to głośność=1 a odchyły od 1 są odpowiednio wyciszane