Pfeile, Spline, platt

Aser

Erfahrenes Mitglied
tag zam

ich habe folgendes Problem... ich habe da n Spline, an dem ich Pfeile entlangfliegen lassen moechte....
dies t auch... allerdings werden diese an manchen stellen ziemlich plattgedrueckt...

in nem andern Thread habe ich ein aehnliches Problem gefunden... allerdings kann ich hier nichts auf "parallele Nurbs" umstellen, da ich hier normale Objekte/Pfeile und keine Nurbs hab...
 

Anhänge

  • spline.jpg
    spline.jpg
    103,3 KB · Aufrufe: 72
Hi!

...kannst Du nicht einfach die Auf Spline ausrichten Expression nutzen?!
Ansonsten: wie animierst Du die Pfeile denn zur Zeit? Sehe nur die Coffee-Scripts...

Grüße,
Mark.
 
die Animation der Pfeile in Abhaengigkeit des Neigungswinkels des Guede-Objekts

Code:
main(doc,weg)
	{
	weg->InitLength(0);	
	var guide=doc->FindObject("Guide1");
	var name;
	var len=weg->GetLength();
	var off_verb=22/len; // Länge Verbinder
	var off_kett=22/len; // Länge Kettenglied
	var kette=weg->GetDown();
	var anz=0;
	do
	{
		anz++;
		kette=kette->GetNext();
	}
	while (kette);
	kette=weg->GetDown();
	var off_verb2=off_verb/(off_verb+off_kett)/(anz/2);
	var off_kett2=off_kett/(off_verb+off_kett)/(anz/2);
	var rot=guide->GetRotation();
	var offs=Modulo(rot.z,2*PI)/(2*PI);
	var offs2=0;
	var pos,pos2,richt,m_kette;
	do
	{
		pos=weg->GetSplinePoint(weg->UniformToNatural(Modulo(offs,1)),0);
		kette->SetPosition(pos);
		name=kette->GetName();
		if (strcmp(name,"Kette"))
		{
			offs2=offs+off_verb; //Verbinder
			offs+=off_verb2;
		}
		else
		{
			offs2=offs+off_kett; // Kette
			offs+=off_kett2;
		}
		pos2=pos-weg->GetSplinePoint(weg->UniformToNatural(Modulo(offs2,1)),0);
		pos2=vnorm(pos2);
		m_kette=kette->GetMl();
		richt=vnorm(vcross(vector(1,0,0),pos2));
		m_kette->SetV2(pos2);
		m_kette->SetV3(richt);
		kette->SetMl(m_kette);
		kette->Message(MSG_UPDATE);
		kette=kette->GetNext();
	}
	while (kette);
	weg->FreeLength();
}


das Guide-Objekt (das eigentlich nicht relevant ist?)

Code:
main(doc,op)
{
// aktuelle Zeit
var t     = doc->GetTime();
// aktuelles Frame
var frame = t->GetFrame(doc->GetFps());
// aktuellen Rotations-Vektor holen
var rotor_rot = op->GetRotation();
// Z-Rotation in Abhängigkeit des aktuellen Frames setzen (Multiplikator selbst herausbekommen ;) )
rotor_rot.z = frame*(-0.01);
// Rotation dem Objekt mit Coffee-Tag zuweisen
op->SetRotation(rotor_rot);
} 




//mit di
 
Hi!

Hm, nunja, mit dem reinen Copy/Paste der Scripte von Panzerkettentutorial und Rotoren ist's nicht getan und ehrlich gesagt finde ich es immer schade, wie leichtfertig und ohne Angaben über den Urheber bzw. zumindest einen Hinweis, wo man es her hat, damit umgegangen wird...

Deshalb nichts zu den Scripts, sondern nochmal die Nachfrage: was spricht gegen einen versetztes Offset - ggf. per Xpresso - bei einer Auf Spline ausrichten-Expression!?

Grüße,
Mark.
 
hm
die Antwort habe ich nun nicht ganz verstanden... ich habe es jedenfalls nochmals versucht und Werke anderer Projekte eingebunden... und diesmal gings, so wies soll...


ich weise mal darauf hin, dass ich mich nicht mit fremden Federn schmeucke und ich keinen Anlass sehe eine Buchfuehrung ueber Scripts zu fuehren, die man wie Sand am Meer im Internet (Tutorials) findet...

ich vertrete mal die Ansicht, dass wenn man eine Community um Hilfe bittet, FREUNDLICHE Leute einem auch helfen und "spontanen Source" zamschreiben... diese Antworten wuerden einem auch helfen,... aber zuvor muss man denen allem anschein nach in den Popo kriechen, damit man diese Antwort auch verwenden darf...

Dass Tutorials urheberrechtlich geschuetzt sind ist mir schon klar... aber nicht das Wissen, das dadurch vermittelt wird...

es ist doch wohl ein Unterschied, ob ich einige Filmsequenzen aus meiner Feder im Internet verbreite, die mit C4D erstellt wurden oder den Sourcecode der Maxon-Software mit diversen Scripts

ich bin ich COFFE kein Profi... allerdings waere ich gespannt, wieviele Moeglichkeiten es gibt das Ergebnis von diesem Code umzusetzen

Code:
main(doc,op)
{
// aktuelle Zeit
var t     = doc->GetTime();
// aktuelles Frame
var frame = t->GetFrame(doc->GetFps());
// aktuellen Rotations-Vektor holen
var rotor_rot = op->GetRotation();
// Z-Rotation in Abhängigkeit des aktuellen Frames setzen (Multiplikator selbst herausbekommen ;) )
rotor_rot.z = frame*(-0.01);
// Rotation dem Objekt mit Coffee-Tag zuweisen
op->SetRotation(rotor_rot);
}
(ohne Beruecksichtigung der Kommentare)

Wenn Admins nun die Ansicht vertreten, dass man wegen sowas eine Quelle angeben muss, glaube ich bin ich hier im falschen Forum... das muss man mir dann aber auch sagen

genausogut koennt ich nachfragen, ob Warner Brothers dir erlaubt hat den Pinky herzunehmen


ich hoffe ich wirke hier nicht aggressiv... aber ich habe es nicht noetig, dass man mir unterstellt geistiges Eigentum Anderer fuer mein Eigenes auszugeben

dennoch Dank fuer die Antwort
 
Hi!

*g* ich glaube, ich spinne...?!
Jetzt bist DU angepisst, weil DU u.a. auf Deiner Website fremde Scripte - egal, mit welchem "Wert" und welcher "Länge"! - sogar inklusive der Original-Kommentare und auch hier im Forum postest?! :eek:

Unabhängig davon, dass ich nur schrieb, wie schade ich es finde, daß eben die, die Dir mal bei den Scripten geholfen haben, halt nicht erwähnt werden (oder z.B. der Thread oder tutorials.de o.ä.), habe ich nur zum Ausdruck gebracht, daß ICH - persönlich - da nicht weiterhelfen mag ...

DU kommst hier mit Urheberrecht und Warner Brothers und so gesehen musst DU Dir tatsächlich den Schuh:
... aber ich habe es nicht noetig, dass man mir unterstellt geistiges Eigentum Anderer fuer mein Eigenes auszugeben
anziehen bzw. hast es dadurch bereits selbst getan! :(

Grüße,
Mark.
 
tag
ich bin dir jedenfalls dankbar, dass du dir die Zeit genommen hast u.A. mir (bisweilen) zu helfen...
und hoffe, dass die Situation nicht eskaliert... ich wollte lediglich n Conter zu deinem subtilen "schade" geben, weil ich mal wirklich nicht dran gedacht habe, dass des ausm Panzerkettentuorial gehabt habe...


Code:
// aktuelle Zeit
var t     = doc->GetTime();
// aktuelles Frame
var frame = t->GetFrame(doc->GetFps());
// aktuellen Rotations-Vektor holen
var rotor_rot = op->GetRotation();
// Z-Rotation in Abhängigkeit des aktuellen Frames setzen (Multiplikator selbst herausbekommen ;) )
rotor_rot.z = frame*0.2;
// Rotation dem Objekt mit Coffee-Tag zuweisen
op->SetRotation(rotor_rot);


main(doc,op)
{
var zahnrad = doc->FindObject ("Antriebsrad");
var zahnrad_rotation = zahnrad->GetRotation ();
var rotation = -3*zahnrad_rotation;
op->SetRotation(rotation);
}


ich denke mal, dass wir beide besseres zu tun haben als darauf rumzureiten

falls Interesse besteht kann ich n Link in den Kommentar schreiben, der auf tutorials.de als Community hinweist
zugegeben, die Kommentare waren n Missgeschick und diese .txt werde ich, sobald ich wieder an meinen eigenen Rechner komme, entfernen...
das ist mir der Stress nicht wert

wenn ich versuche jemandem zu helfen, dann sehe ich es als selbstverstaendlich an, dass er den Code verwenden kann und nicht erst versuchen muss einen anderen Code fuer diesselbe Funktion zu suchen


ich betrachte die Angelegenheit dann mal als erledigt und hoffe, dass es keinen falschen Eindruck hinterlassen hat
 
Hi Aser!
wenn ich versuche jemandem zu helfen, dann sehe ich es als selbstverstaendlich an, dass er den Code verwenden kann und nicht erst versuchen muss einen anderen Code fuer diesselbe Funktion zu suchen
...und ich habe nie anderes behauptet! :confused: Ja, klar ist alles, was hier gepostet wird zur freien Verwendung! :)
Ich persönlich finde es "schade", wenn dann aber dieser Code nicht nur selbst verwandt, sondern ohne weitere Hinweise woanders als "Lösungs-Code" gepostet wird ... nicht weniger aber vor allem auch nicht mehr ... ;)

Und, daß ich mit diesem "Gefühl" nicht alleine bin, zeigen mir so manche Beispiele, wo User wie selbstverständlich auf die Herkunftsthreads verweisen oder z.B. sogar den Helfenden in Ihrem Showreel-Abspann erwähnt haben ... das freut alle Beteiligten und tut vor allem niemandem weh ... ist aber natürlich absolut freiwillig ;)

Aber wie dem auch sei, Du siehst es anders und das ist ebenfalls okay so, kann mich also
ich betrachte die Angelegenheit dann mal als erledigt und hoffe, dass es keinen falschen Eindruck hinterlassen hat
nur anschließen...

Grüße,
Mark.
 
ideal...
:) dann ist der heutige Tag noch gerettet

Und, daß ich mit diesem "Gefühl" nicht alleine bin, zeigen mir so manche Beispiele, wo User wie selbstverständlich auf die Herkunftsthreads verweisen oder z.B. sogar den Helfenden in Ihrem Showreel-Abspann erwähnt haben ... das freut alle Beteiligten und tut vor allem niemandem weh ... ist aber natürlich absolut freiwillig

Aber wie dem auch sei, Du siehst es anders und das ist ebenfalls okay so, kann mich also

diesselbe Ansicht vertrete ich ja auch... meiner Meinung nach liegen nur Welten zwichen einem "Abspann" und einem "ich wuerd dir gern den Loesungscode geben, weiss aber nimmer, von wo ich ihn herhab" (bei Banalitaeten):rolleyes:
btw ist dir bereits jetzt ein Platz in der Fussnote meiner Facharbeit reserviert


btw2, ohne, dass ich mich zuweit ausm Fenster lehnen moechte...
weiss wer, wie man ein Object nach einem Target ausrichtet, dieses aber erst dann wirkt, wenn das Target sich in einer bestimmten Naehe befindet...
meine Idee waere gewesen, dass man das eigentliche Objekt mit nem COFFEE-tag bestueckt und daneben ein Objekt2 aufrichtet, das sich immer ans Target ausrichtet... der COFFEE besagt nun, dass diesselbe Ausrichtung von Objekt2 aufs Objekt uebernommen wird... allerdings in abhaengigkeit der Entfernung von Target und Objekt

eine If-Funktion waere auch moeglich... Falls Abstand unter 500m, dann sprunghaft ausrichten...
 
Hi!

...wenn's auch XPresso sein darf, siehe Anhang.
Ausrichten-Expression des Kegels hat natürlich das "target" als Ziel-Objekt ;)

Grüße,
Mark.
 

Anhänge

  • ausrichten.jpg
    ausrichten.jpg
    24,4 KB · Aufrufe: 23
Zurück