<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0">
<channel>
<title>物見遊山</title>
<link>http://tanakaakio.slmame.com</link>
<description></description>
<language>ja</language>
<pubDate>Thu, 20 Dec 2007 19:25:17 +0900</pubDate>
<lastBuildDate>Thu, 20 Dec 2007 19:25:17 +0900</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 
<generator>CLOG</generator>


<item>
<title>カメラについて11　AutoPilotのアバタをAltズーム</title>
<description>　止まっているときは自分のアバタをAltズームで見れますが、移動の操作をすると解除されてしまいます。　AutoPilot中で移動の操作をしてないので、移動中の自分のアバタをAltズームでいろんな角度から撮影できました。　もっと綺麗な画像で見たいから、新しいPCが欲しくなってきました。YouTube　</description>
<link>http://tanakaakio.slmame.com/e204444.html</link>
<guid>http://tanakaakio.slmame.com/e204444.html</guid>
<category>カメラについて</category>
<pubDate>Fri, 11 Apr 2008 20:32:52 +0900</pubDate>

</item>

<item>
<title>カメラについて10　レーダーが検知したオブジェクトをブラウズ</title>
<description>　レーダーが検知したオブジェクトを順に見ていってます。センサーで座標がわかるんですから、カメラを移動してみました。　レーダーが一度に検知するのは16件までなので、とてもお店の商品を全部みれませんが、意外な視野で見れるので、面白かったりします。　気になると所があれば、途中でAｌtズームすればそこをじっくり見れます。YouTube版</description>
<link>http://tanakaakio.slmame.com/e200297.html</link>
<guid>http://tanakaakio.slmame.com/e200297.html</guid>
<category>カメラについて</category>
<pubDate>Mon, 07 Apr 2008 19:34:16 +0900</pubDate>

</item>

<item>
<title>カメラについて9　カメラツアースクリプト</title>
<description>2008.4.15 すいません。訂正しました。llSitTarget(,ZERO_ROTATION);をオブジェクトで一度は実行しないといけないので、state_entry()に追加しました。　このスクリプトでsimを一巡して見れます。ただ、simの土地が高いと地面とか地中になってしまいます。　このスクリプトをオブジェクトに入れて、装着するかSitしてタッチするとカメラツアーが始まります。オブジェクトを編集した後は、[ESC]を押してカメラをリセットしないとタッチしても画面は変わりません。遠くを見るので、ビューアの設定も変えておく必要があります。簡単にしたため途中でとめるには立つかはずすしかありません。　カスタマイズすれば、お気に入りの場所とか、お客さんが座るだけで商品とか魅力的な場所を順に見れるようにするとかに使えるかもしれません。focus_positionsは、フォーカスの座標リストです。camera_offsetsは、フォーカスからカメラをどれだけ離すかです。カスタマイズは、この２つのベクトルを変えればいいわけです。timer_intは、表示時間です。　run_time_permissions(integer perm) の後に、いきなりllClearCameraParams()でクリアしてるのは、前回座った人が途中で立ったとき、カメラの設定が残ってしまうためです。クリアしないと次の人が座るといきなり遠くの場所が表示されてとまったままで、オブジェクトをタッチできませんｗ　しかし、この場合のパーミッションって誰に得てるんでしょうかね？座ったり装着したらダイアログも出なくてユーザの承諾なしに勝手にパーミッションをスクリプトが得てしまいますから、意味がなくスクリプトがややこしくなるだけと思うんですが。　今回は、色付けツールでうまく変換できました。//CamTour.lsl.lsl//positions of fixed_cam in sim coordinates.list	focus_positions		=		[  , , , , 												,  , , ,  , 												,  , , , , 												,  , , , , 												,  , , , , 												,  ,,,,												,  ,,,];//camera offsets relative to focus_positions.list	camera_offsets		=		[	, , , , 												,	, , , , 												,	, , , , 												,	, , , , 												,	, , , , 												,	, , , , 													,	, , , ];												float		timer_int				=	3;integer	loop;key			target;fixed_cam( ) {	llOwnerSay("loop=" + (string)loop);	vector   fixed_focus_position		=	llList2Vector(focus_positions, loop);	vector   fixed_camera_position	=	fixed_focus_position	+	llList2Vector(camera_offsets, loop);//~          default_cam();	 //llClearCameraParams(); // reset camera to default	 llSetCameraParams([	  CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive	 //CAMERA_BEHINDNESS_ANGLE, 0.0, // (0 to 180) degrees	 //CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) seconds	 //CAMERA_DISTANCE, 0.0, // ( 0.5 to 10) meters	 CAMERA_FOCUS, fixed_focus_position, // region relative position	 //CAMERA_FOCUS_LAG, 0.0 , // (0 to 3) seconds	  CAMERA_FOCUS_LOCKED, TRUE, // (TRUE or FALSE)	 //CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters	 //CAMERA_PITCH, 80.0, // (-45 to 80) degrees	 CAMERA_POSITION, fixed_camera_position, // region relative position	 //CAMERA_POSITION_LAG, 0.0, // (0 to 3) seconds	  CAMERA_POSITION_LOCKED, TRUE, // (TRUE or FALSE)	 //CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters	  CAMERA_FOCUS_OFFSET, ZERO_VECTOR //  to  meters ]);} default {     state_entry()	{		llSitTarget(,ZERO_ROTATION); //2008.4.15 added		if	(llGetAttached())	{			llRequestPermissions(llGetOwner(), PERMISSION_CONTROL_CAMERA);				llSleep(1);		}		llOwnerSay("llGetListLength(focus_positions)="  + (string)llGetListLength(focus_positions) );		llOwnerSay("llGetListLength(camera_offsets)="  + (string)llGetListLength(camera_offsets) );		     }      touch_start(integer total_number)     {         integer perm = llGetPermissions();		 if	( target	!= llDetectedKey(0))	{			llSay(0, llKey2Name(llDetectedKey(0))  + " must attach or sit on me.");			return;		 }         if (perm &amp; PERMISSION_CONTROL_CAMERA)	{			 loop	=	0;			 fixed_cam();							 llSetTimerEvent(timer_int);		}	else	{				string	s	= "＊＊＊ " + 	llGetScriptName() + " has \"NOT\" PERMISSION_CONTROL_CAMERA perms for "			+	(string)llGetPermissionsKey() + " ＊＊＊";			llOwnerSay(s); 		}     }      run_time_permissions(integer perm) {         if ((perm &amp; PERMISSION_CONTROL_CAMERA) == PERMISSION_CONTROL_CAMERA) {			 llClearCameraParams();             llOwnerSay("Camera permissions have been taken");         }     }      changed(integer change)	{         if (change &amp; CHANGED_LINK)	{             target = llAvatarOnSitTarget();             if (target)	{                llRequestPermissions(target, PERMISSION_CONTROL_CAMERA);			 }	else	{				llSetTimerEvent(0);			 }				          }     }	      attach(key agent)	{		 target	=	agent;         if (target!= NULL_KEY)	{             llRequestPermissions(target, PERMISSION_CONTROL_CAMERA);         }	else    {			llSetTimerEvent(0);		 }     }	      timer()	{		loop++;		if	( loop &lr; llGetListLength(focus_positions) )	{			fixed_cam();						}	else	{			llSetTimerEvent(0);			llClearCameraParams();				}			     }	 }</description>
<link>http://tanakaakio.slmame.com/e199679.html</link>
<guid>http://tanakaakio.slmame.com/e199679.html</guid>
<category>カメラについて</category>
<pubDate>Mon, 07 Apr 2008 02:33:42 +0900</pubDate>

</item>

<item>
<title>カメラについて8　カメラのスクリプトモード中にAltズーム</title>
<description>　オートパイロット中は、スクリプトでオーバーヘッドカム(上から見下ろすカメラ)にしています。なので、カメラはスクリプトモードです。　途中で、広場の真ん中が気になったので、そこを[Alt+左クリック]でズームしました。カメラはそこで止まりますが、アバタはオートパイロット中なので画面から消えてしまいます。　その後、[ESC]キーを押してスクリプトモードに戻ったので、またアバタが表示されました。</description>
<link>http://tanakaakio.slmame.com/e199381.html</link>
<guid>http://tanakaakio.slmame.com/e199381.html</guid>
<category>カメラについて</category>
<pubDate>Sun, 06 Apr 2008 21:13:48 +0900</pubDate>

</item>

<item>
<title>カメラについて7　カメラモード</title>
<description>カメラモードの大雑把な図です。ノーマルモード：リセットされた通常の状態。スクリプトモード：スクリプトがコントロールしている状態。Altズーム：オブジェクト、アバタ、地面または空間に固定している状態。マウスルックは、画面左上に文字も表示されすぐわかりますので省いています。１）スクリプトはAltズームを奪えない　ノーマルモードなのかAltズームなのかは、画面に表示されないので分かりにくいです。問題なのは、スクリプトがカメラコントロールしようとしてもAltズーム中は画面が変わらないということです。[ESC]を押してAltズームを終了させないとスクリプトはカメラをコントロールできません。ときには、[ESC]を数回押さないと駄目なときもあります。オブジェクトを編集した後も同様です。2）スクリプトモードからでもAltズームにできるスクリプトがカメラをコントロールしていても、[Alt+左クリック]でAltズームにできます。この場合、[ESC]を押してもスクリプトモードに戻り、ノーマルモードには戻りません。3）スクリプトに異常があるとノーマルモードに戻らないスクリプトモードで　・スクリプト禁止エリアに入る　・スクリプトにバグがある　・simに異常があるの場合にはスクリプトはカメラをノーマルモードに戻すことができません。4）カメラが変な状態のまま戻らなくなったら、オブジェクトをはずせば元に戻るカメラがおかしくなって元に戻らない場合は、そのオブジェクトをはずせば元に戻ります。</description>
<link>http://tanakaakio.slmame.com/e198663.html</link>
<guid>http://tanakaakio.slmame.com/e198663.html</guid>
<category>カメラについて</category>
<pubDate>Sun, 06 Apr 2008 08:35:28 +0900</pubDate>

</item>

<item>
<title>カメラについて6　サンプルスクリプト</title>
<description>　 うーん、一度公開した後に試してたら、うまく動かなくて非公開にしたんですが、再装着しようとしたらアタッチできず。どうやらsimがおかしかったようです。この辺りの不安定さが開発しにくいところです。　なんかおかしいなと思ったら軽そうなsimをいくつか回ってみる。そういう感じでしょうかね。　フリービーで拾ったスクリプトを少し変えたものを載せます。このコードをオブジェクトに入れて、装着するかSitすると使えます。カメラが移動してタッチできなくなったりするので、試すにはHUDに装着するのがいいと思います。　スクリプトをオブジェクトに入れたり修正するときはオブジェクトを編集するわけですが、編集モード後には、[ESC]でカメラをリセットしないと表示が変わりません。これに気づかないとけっこう悩んだりします。　リンデンラボのスクリプトらしいのですが、カメラと全然関係のないパーミッションの表示用コードがあったり、全然使っていない関数やら変数があってややこしかったのでそれを取り除きました。そんな感じだったので、はじめて見たときよく意味がわかりませんでした。　　一見ややこしそうですが、ダイアログからの指定でカメラの設定を変えるというパターンばかりです。　Focus on Meというのは固定カメラですが、Trap ToggleをOnにすると２秒おきにFocus on Meで、アバタを追いかけるようになっているようです。　simの座標で固定するカメラ用にFixed Cam( fixed_cam )というのを追加しました。以下のベクトルを変えれば、simのどこでも見れるようになります。これが、一番簡単だったりします。（ただし、遠くを見るにはビューアの設定をかえる必要があります）。//positions of fixed_cam in sim coordinates.vector   fixed_focus_position     = ;vector   fixed_camera_position  = ;　装着してるときは、コンパイル毎にデアタッチ・アタッチをしないとパーミッションを獲得しないようになってましたが、コードを変えていろいろ試すときに面倒なので、state_entry()にも装着しているときはパーミッションを獲得しに行くようにしてます。　色付けツールで載せたかったのですが、ツールではうまく変換できませんでした。//CameraControl2.lsl//Linden Labs //Dan Linden //Revised by TANAKAAKIO Inshan 2008.04.05 integer CHANNEL; // dialog channel list MENU_MAIN = ["Default", "Overhead Cam", "Spin Cam", "Trap Toggle", "Spaz Cam", "Drop Cam"                             , "Worm Cam", "Side Cam", "Driving Cam", "More...", "Cam ON", "Cam OFF"]; // the main menu list MENU_2 = ["More...","Focus on Me", "Fixed Cam", "...Back"]; // menu 2  integer on = FALSE; integer trap = 0;//positions of fixed_cam in sim coordinates.vector   fixed_focus_position     = ;vector   fixed_camera_position  = ; take_camera_control(key agent) {     llOwnerSay("take_camera_control " +  llKey2Name(agent)); // say function name for debugging     llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA);     llSetCameraParams([CAMERA_ACTIVE, 1]); // 1 is active, 0 is inactive     on = TRUE; }  release_camera_control(key agent) {     llOwnerSay("release_camera_control"); // say function name for debugging     llSetCameraParams([CAMERA_ACTIVE, 0]); // 1 is active, 0 is inactive     llReleaseCamera(agent);     on = FALSE; }  focus_on_me() {     llOwnerSay("focus_on_me"); // say function name for debugging //    llClearCameraParams(); // reset camera to default     vector here = llGetPos();     llSetCameraParams([         CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive         CAMERA_BEHINDNESS_ANGLE, 0.0, // (0 to 180) degrees         CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) seconds         CAMERA_DISTANCE, 0.0, // ( 0.5 to 10) meters         CAMERA_FOCUS, here, // region relative position         CAMERA_FOCUS_LAG, 0.0 , // (0 to 3) seconds         CAMERA_FOCUS_LOCKED, TRUE, // (TRUE or FALSE)         CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters //        CAMERA_PITCH, 80.0, // (-45 to 80) degrees         CAMERA_POSITION, here + , // region relative position         CAMERA_POSITION_LAG, 0.0, // (0 to 3) seconds         CAMERA_POSITION_LOCKED, TRUE, // (TRUE or FALSE)         CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters         CAMERA_FOCUS_OFFSET, ZERO_VECTOR //  to  meters     ]); }  default_cam() { //    llOwnerSay("default_cam"); // say function name for debugging     llClearCameraParams(); // reset camera to default     llSetCameraParams([CAMERA_ACTIVE, 1]); }  driving_cam() {     llOwnerSay("driving_cam"); // say function name for debugging     default_cam();     llSetCameraParams([         CAMERA_ACTIVE, 1,          CAMERA_BEHINDNESS_ANGLE, 45.0,         CAMERA_BEHINDNESS_LAG, 0.5,          CAMERA_DISTANCE, 8.0,          //CAMERA_FOCUS, ,          CAMERA_FOCUS_LAG, 0.05 ,          CAMERA_FOCUS_LOCKED, FALSE,          CAMERA_FOCUS_THRESHOLD, 0.0,          CAMERA_PITCH, 20.0,          //CAMERA_POSITION, ,          CAMERA_POSITION_LAG, 0.1,         CAMERA_POSITION_LOCKED, FALSE,          CAMERA_POSITION_THRESHOLD, 0.0,          CAMERA_FOCUS_OFFSET,       ]); }   side_cam() {     llOwnerSay("side_cam");      llClearCameraParams();      llSetCameraParams([        CAMERA_ACTIVE, 1,         CAMERA_BEHINDNESS_ANGLE, 0.0,         CAMERA_BEHINDNESS_LAG, 0.0,        CAMERA_DISTANCE, 0.0,          //CAMERA_FOCUS, ,        CAMERA_FOCUS_LAG, 0.0 , 		//CAMERA_FOCUS_LOCKED, FALSE,         CAMERA_FOCUS_THRESHOLD, 0.0,		//CAMERA_PITCH, 80.0,          //CAMERA_POSITION, ,         CAMERA_POSITION_LAG, 0.0, 		//CAMERA_POSITION_LOCKED, FALSE,         CAMERA_POSITION_THRESHOLD, 0.0,         CAMERA_FOCUS_OFFSET,       ]); }  overhead_cam() {     llOwnerSay("overhead_cam"); // say function name for debugging     default_cam();     llSetCameraParams([         CAMERA_ACTIVE, 1,          CAMERA_BEHINDNESS_ANGLE, 180.0,         CAMERA_BEHINDNESS_LAG, 0.5,          CAMERA_DISTANCE, 10.0,          //CAMERA_FOCUS, ,         CAMERA_FOCUS_LAG, 0.05 ,          CAMERA_FOCUS_LOCKED, FALSE,          CAMERA_FOCUS_THRESHOLD, 0.0,          CAMERA_PITCH, 80.0,          //CAMERA_POSITION, ,          CAMERA_POSITION_LAG, 0.0,          CAMERA_POSITION_LOCKED, FALSE,          CAMERA_POSITION_THRESHOLD, 0.0,          CAMERA_FOCUS_OFFSET,       ]); }  drop_camera_5_seconds() {     llOwnerSay("drop_camera_5_seconds"); // say function name for debugging     llSetCameraParams([         CAMERA_ACTIVE, 1,          CAMERA_BEHINDNESS_ANGLE, 0.0,          CAMERA_BEHINDNESS_LAG, 0.5,          CAMERA_DISTANCE, 3.0,          //CAMERA_FOCUS, ,          CAMERA_FOCUS_LAG, 2.0,          CAMERA_FOCUS_LOCKED, FALSE,          CAMERA_FOCUS_THRESHOLD, 0.0,         CAMERA_PITCH, 0.0,          //CAMERA_POSITION, ,          CAMERA_POSITION_LAG, 0.05,          CAMERA_POSITION_LOCKED, TRUE,          CAMERA_POSITION_THRESHOLD, 0.0,          CAMERA_FOCUS_OFFSET,      ]);     llSleep(5);     default_cam(); }   worm_cam() {     llOwnerSay("worm_cam"); // say function name for debugging     llSetCameraParams([         CAMERA_ACTIVE, 1,         CAMERA_BEHINDNESS_ANGLE, 180.0,         CAMERA_BEHINDNESS_LAG, 0.0,          CAMERA_DISTANCE, 8.0,         //CAMERA_FOCUS, ,          CAMERA_FOCUS_LAG, 0.0 ,          CAMERA_FOCUS_LOCKED, FALSE,         CAMERA_FOCUS_THRESHOLD, 4.0,          CAMERA_PITCH, -45.0,          //CAMERA_POSITION, ,          CAMERA_POSITION_LAG, 1.0,          CAMERA_POSITION_LOCKED, FALSE,          CAMERA_POSITION_THRESHOLD, 1.0,          CAMERA_FOCUS_OFFSET,       ]); }  spaz_cam() {     llOwnerSay("spaz_cam for 5 seconds"); // say function name for debugging     float i;     for (i=0; i&lr; 50; i+=1)     { //        llOwnerSay((string)xyz);         vector xyz2 = llGetPos() + ;         llSetCameraParams([             CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive             CAMERA_BEHINDNESS_ANGLE, 180.0,              CAMERA_BEHINDNESS_LAG, llFrand(3),              CAMERA_DISTANCE, llFrand(10),              //CAMERA_FOCUS, xyz,             CAMERA_FOCUS_LAG, llFrand(3),             CAMERA_FOCUS_LOCKED, TRUE,              CAMERA_FOCUS_THRESHOLD, llFrand(4),              CAMERA_PITCH, llFrand(125) - 45,              CAMERA_POSITION, xyz2,              CAMERA_POSITION_LAG, llFrand(3),              CAMERA_POSITION_LOCKED, TRUE,              CAMERA_POSITION_THRESHOLD, llFrand(4),              CAMERA_FOCUS_OFFSET,              ]);             llSleep(0.1);     }     default_cam(); }  spin_cam() {     llSetCameraParams([         CAMERA_ACTIVE, 1,          CAMERA_BEHINDNESS_ANGLE, 180.0,         CAMERA_BEHINDNESS_LAG, 0.5,          //CAMERA_DISTANCE, 10.0,          //CAMERA_FOCUS, ,          CAMERA_FOCUS_LAG, 0.05 ,          CAMERA_FOCUS_LOCKED, FALSE,          CAMERA_FOCUS_THRESHOLD, 0.0,          CAMERA_PITCH, 30.0,         //CAMERA_POSITION, ,          CAMERA_POSITION_LAG, 0.0,          CAMERA_POSITION_LOCKED, FALSE,          CAMERA_POSITION_THRESHOLD, 0.0,          CAMERA_FOCUS_OFFSET,       ]);      float i;     vector camera_position;     for (i=0; i&lr; 2*TWO_PI; i+=.05)     {         camera_position = llGetPos() +  * llEuler2Rot();         llSetCameraParams([CAMERA_POSITION, camera_position]);     }     default_cam(); } fixed_cam() {         default_cam();         //llClearCameraParams(); // reset camera to default         llSetCameraParams([          CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive         //CAMERA_BEHINDNESS_ANGLE, 0.0, // (0 to 180) degrees         //CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) seconds         //CAMERA_DISTANCE, 0.0, // ( 0.5 to 10) meters         CAMERA_FOCUS, fixed_focus_position, // region relative position         //CAMERA_FOCUS_LAG, 0.0 , // (0 to 3) seconds          CAMERA_FOCUS_LOCKED, TRUE, // (TRUE or FALSE)         //CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters         //CAMERA_PITCH, 80.0, // (-45 to 80) degrees         CAMERA_POSITION, fixed_camera_position, // region relative position         //CAMERA_POSITION_LAG, 0.0, // (0 to 3) seconds          CAMERA_POSITION_LOCKED, TRUE, // (TRUE or FALSE)         //CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters          CAMERA_FOCUS_OFFSET, ZERO_VECTOR //  to  meters     ]); }  setup_listen() {    llListenRemove(CHANNEL);    CHANNEL = llRound(llFrand(1) * 100000);	llListen(CHANNEL, "", "", ""); // listen for dialog answers }  default {     state_entry()	{        llSitTarget(,ZERO_ROTATION);         setup_listen();        llSetTimerEvent(2);		if	(llGetAttached())	{			llRequestPermissions(llGetOwner(), PERMISSION_CONTROL_CAMERA);				llSleep(2);		}     }      touch_start(integer total_number)     {         integer perm = llGetPermissions();         if (perm &amp; PERMISSION_CONTROL_CAMERA)	{			 llOwnerSay(llGetScriptName() + " has PERMISSION_CONTROL_CAMERA perms for "+(string)llGetPermissionsKey()); 		}	else	{				string	s	= "＊＊＊ " + 	llGetScriptName() + " has \"NOT\" PERMISSION_CONTROL_CAMERA perms for "			+	(string)llGetPermissionsKey();			s += "\n Click \"Cam ON\" first to get Permission." + " ＊＊＊";			llOwnerSay(s); 		}        llDialog(llDetectedKey(0), "What do you want to do?", MENU_MAIN, CHANNEL); // present dialog on click     }      listen(integer channel, string name, key id, string message)	{         if (llListFindList(MENU_MAIN + MENU_2, [message]) != -1)  {             if (message == "More...")	{                 llDialog(id, "Pick an option!", MENU_2, CHANNEL); // present submenu on request			 }	else if 	(message == "...Back")	{                 llDialog(id, "What do you want to do?", MENU_MAIN, CHANNEL); // present main menu on request to go back			 } else if (message == "Cam ON")	{				take_camera_control(id);			}  else if (message == "Cam OFF")   {				release_camera_control(id);			} else if (message == "Default")	{				default_cam();			} else if (message == "Default")	{				default_cam();			}	else if (message == "Driving Cam")	{				driving_cam();			}  else if (message == "Worm Cam")    {				worm_cam();			}	else if (message == "Overhead Cam")	{				overhead_cam();			} else if (message == "Spaz Cam")  {				spaz_cam();			} else if (message == "Side Cam")	{				side_cam();			} else if (message == "Drop Cam")	{				drop_camera_5_seconds();			} else if (message == "Trap Toggle") {				trap = !trap;				if (trap == 1) {					llOwnerSay("trap is on");				}  else {					llOwnerSay("trap is off");				}			}  else if (message == "Spin Cam")   {				spin_cam();			}  else if (message == "Focus on Me")    {				focus_on_me();			} else if (message == "Fixed Cam")	{				fixed_cam();											} else	{				llOwnerSay(name + " picked invalid option '" + llToLower(message) + "'."); // not a valid dialog choice			}		}	}      run_time_permissions(integer perm) {         if ((perm &amp; PERMISSION_CONTROL_CAMERA) == PERMISSION_CONTROL_CAMERA) {             llSetCameraParams([CAMERA_ACTIVE, 1]); // 1 is active, 0 is inactive             llOwnerSay("Camera permissions have been taken");         }     }      changed(integer change)	{         if (change &amp; CHANGED_LINK)	{             key agent = llAvatarOnSitTarget();             if (agent)	{                 setup_listen();                 llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA);             }         }     }     attach(key agent)	{         if (agent != NULL_KEY)	{             setup_listen();             llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA);         }		else    {            llClearCameraParams();            llReleaseCamera(llGetOwner());         }     }	      timer()	{         if (trap == 1)		{             focus_on_me();         }     } }     </description>
<link>http://tanakaakio.slmame.com/e197411.html</link>
<guid>http://tanakaakio.slmame.com/e197411.html</guid>
<category>カメラについて</category>
<pubDate>Sat, 05 Apr 2008 10:31:08 +0900</pubDate>

</item>

<item>
<title>カメラについて5 固定カメラで自分のアバタを見る</title>
<description>　ボックスの少し上にカメラを置いて、焦点をボックスの中心にしています。カメラは通常アバタの動きに合わせて移動しますが、ここでは固定してます。向きが逆なのでアバタの操作が少し難しいです。　Youtubeで始めに表示される静止画ができるまでけっこう時間がかかりますね。投稿時点で静止画はまだですが、クリックするとみれます。     </description>
<link>http://tanakaakio.slmame.com/e197346.html</link>
<guid>http://tanakaakio.slmame.com/e197346.html</guid>
<category>カメラについて</category>
<pubDate>Sat, 05 Apr 2008 00:47:39 +0900</pubDate>

</item>

<item>
<title>カメラについて4　Simをカメラでスキャンする</title>
<description>　スクリプトでカメラを操作してSim全体をスキャンしてみました。ノートカードにカメラの位置と焦点の座標・表示時間をいくつか記述し、それを読み込ませて、順にカメラを移動させて表示させてます。　ちょっと問題なのはSimの土地の高さはだいたい20～30mなんですが、ときおりもっと高いSimもあって、そこでスキャンすると地面や地下をスキャンしてしまいます。　スクリプトがカメラをコントロールしているときでも、[Alt+クリック]でカメラのコントロールをユーザが奪うことができます。つまり、Simをスクリプトにスキャンさせていて気になるところがあったら、そこを[Alt+クリック]します。そうすればユーザがカメラを自由にコントロールしてズームなどができるので、そこまで移動しなくてもじっくりみたり買い物をすることもできます。　これはSLの仕様なのですが、今カメラをコントロールしているのがスクリプトなのかユーザなのか分かりにくいという問題もあります。</description>
<link>http://tanakaakio.slmame.com/e195119.html</link>
<guid>http://tanakaakio.slmame.com/e195119.html</guid>
<category>カメラについて</category>
<pubDate>Wed, 02 Apr 2008 20:41:25 +0900</pubDate>

</item>

<item>
<title>カメラについて3　世界地図とカメラ</title>
<description>　これは描画距離が最小値64mでカメラがリセット状態の世界地図です。アバタの位置は、下のSIMの南東の端に黄色い円で表示されています。カメラの写す範囲が薄い白の三角形で表示されています。　次に描画距離を最大の512mにしたのが下の世界地図です。自分のいるSIMを超えて隣のSIMまで範囲に入っているのがわかります。　最後に、自分のアバタからはるかに離れた位置にカメラを設置した場合の世界地図です。描画距離は160メートルで、「Disable Camera Constraints」をチェックしています。SIMも何もないところから、自分のアバタの方向に向けています。</description>
<link>http://tanakaakio.slmame.com/e194900.html</link>
<guid>http://tanakaakio.slmame.com/e194900.html</guid>
<category>カメラについて</category>
<pubDate>Wed, 02 Apr 2008 18:54:17 +0900</pubDate>

</item>

<item>
<title>カメラについて2　クライアント（ビューワ）の設定変更</title>
<description>　デフォルトではカメラの移動に制限がかかっていて、アバタから50メートルぐらいまでしか移動できません。[Ctrl+Alt+D]でデバッグモードにして、Client(新しいクライアントではAdvanced)メニューから、・「Disable Camera Constraints」のチェックをすると遠くまでカメラを移動できるようになります。下のTipsでは、さらに・「Limit Select Distance」のチェックをはずして遠くのオブジェクトも選択できるようにしています。Tipsでは、これらの設定はログイン毎にしなければならなかったようですが、今では設定が保持されるようになっています。Tip of the Week: How to move your camera further and better　「Disable Camera Constraints」のチェックをしてカメラを遠くまで移動できるようにしても、描画距離を超えた場所だとオブジェクトやアバタは表示されず地形だけが表示されます。描画距離を広げるには(バージョン1.19.1 Release Candidate RC4の場合)、「編集＞環境設定＞表示(タブ)＞カスタム(チェックする)をしてから、描画距離のスライダーで変更します。これを大きくすれば、SIMの端から端までさらには隣のSIMまで見ることができます。しかし、あまり距離を大きくするとPCへ負荷がかかりすぎて重くなります。逆にSIMが重いときなどは、描画距離を短くすると軽くなるときもあります。</description>
<link>http://tanakaakio.slmame.com/e194862.html</link>
<guid>http://tanakaakio.slmame.com/e194862.html</guid>
<category>カメラについて</category>
<pubDate>Wed, 02 Apr 2008 18:52:47 +0900</pubDate>

</item>

<item>
<title>カメラについて1 操作</title>
<description>　クライアントの操作やSLの仕組みがわかってないとせっかく商品を購入しても正しく使えなかったり、スクリプトで何をどう記述すればいいのかよくわからなかったりします。　カメラ・センサー・テレポート・移動などのスクリプトを書いてみましたが、いろいろ試しているうちに自分がSLの仕組みや操作についてよくわかっていないと実感しました。それで少しカメラについて書いてみます。　通常、カメラはアバタの後部少し上方にあり、少し見下ろすような感じでアバタの向いてる方を見るようになっています。　カメラはアバタの位置に関係なくどこでも自由にSIM内を移動できます。どこでもといっても手動であらゆるところを見るには少し熟練したカメラ操作が必要です。また、遠くまでちゃんと表示されるようにするにはクライアントの設定を変更する必要があります。これについては、次回に書きます。　ここにわかりやすい操作の説明があります。カメラ・視野の操作/セカンドライフ操作マニュアルアバタが近くに行かなくても、カメラで捕らえることができれば、買い物などのオブジェクトの操作、Sitができます。　カメラで見ることができたなら、かなり離れたところにもSitできるので、テレポートしたような感じになります。Sitするとき地図でアバタの位置を観察しているとものすごい速さで移動してました。障害物も無視してるようです。ただし、Sitは遠すぎると失敗することがあり、椅子の方が成功率も高いようです。　音はカメラの焦点から拾われるようになっているようです。他のアバタの近くにカメラの焦点を持っていくと、自分のアバタがSayの届く範囲20mより遠く離れたところにいてもキーボードの音が聞こえます。　[ESC]を押すと元のカメラの状態に戻ります（メニューバー：ビュー＞表示をリセットと同じ）。また、マウスルック時以外はカメラを操作した後でも、アバタを移動させると元に戻ります。といっても、ズームの変更(カメラとアバタの距離)は[ESC]でないと元に戻らないようです。　カメラとSitは、RLの感覚とはかけ離れた仕様のようです。　[M]を押すかホイールを前に移動させ続けると、マウスルックになります。マウスルックがなんのためにあるのかよくわかっていませんでした。遠くの物をズームするためにホイールを前方に回転させ続けているとマウスルックになるのが鬱陶しいと思ってたぐらいです。　どうやらマウスルックとはアバタの視線で見ることのようです。下の動画では、狭いところに入り込んでしまったとき、マウスルックでアバタの視線にして抜け出しています。マウスルックの状態でも移動できるんですね。カメラとアバタの間に障害物があると目隠しされたようになることがよくあります。そういうときに、アバタの視線にすればいいということみたいです。Navigating inside small spaces - Video Tutorial　　あと、空にいるときなど景色がいいところで、マウスルックにすると自分がそこにいるような感じで楽しめますね</description>
<link>http://tanakaakio.slmame.com/e194747.html</link>
<guid>http://tanakaakio.slmame.com/e194747.html</guid>
<category>カメラについて</category>
<pubDate>Wed, 02 Apr 2008 18:50:07 +0900</pubDate>

</item>


</channel>
</rss>