<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://www6.atwiki.jp/p-phun/">
    <title>p-phun @ ウィキ</title>
    <link>http://www6.atwiki.jp/p-phun/</link>
    <description>p-phun @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2012-05-17T05:48:31+09:00</dc:date>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/70.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/76.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/1.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/40.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/75.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/36.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/2.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/66.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/73.html" />
                <rdf:li rdf:resource="http://www6.atwiki.jp/p-phun/pages/77.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/70.html">
    <title>Thyme実例集</title>
    <link>http://www6.atwiki.jp/p-phun/pages/70.html</link>
    <description>
      #contents();

*Thyme実例集
【Physical】PhunスレPart7【Sandbox】のスレッドより、質問で出たThymeのスクリプト集です。

**衝突時に自分自身を消去する
 e.this.airFrictionMult = NaN;
あるいは
 density=1e-12;

**衝突で透明な円が発生し、その中心にペンをつけるスクリプト
 Scene.addCircle{ radius:=0.1; collideSet:=2; color:=[0.05 , 0.05 , 0.05 , 0.0]; pos:=e.pos; };
 Scene.addPen{ size:=0.15; color:=[0.05,0.05,0.05,1.0]; pos:=e.pos; }

・円を追加「半径0.1、衝突判定B、色は透明、発生位置は衝突位置」
・ペンを追加「半径0.75、黒っぽい色、発生位置は衝突位置」
と記述してある。
適時パラメータを調節して使えばOK
円の発生位置とペンの発生位置を揃えておくと、ぴったり真ん中にくっつく
ただし、発生直後の円の挙動を乱すとズレたりちゃんとくっつかない
ペンを円の半径に対して大きくしすぎると背景や後ろにある物体についちゃう

**衝突すると自分を衝突判定Bにする
 e.this.collideSet = 2;

**衝突すると相手を衝突判定B+NSCにする
 e.other.collideSet = 2;
 heteroCollide=true;

**ぶつけた相手の空気抵抗100
 e.other.airfrctionMult := 100;

**衝突した相手を水に変える
 e.other.liquify;

**大きさを指定して四角を発生させる
 Scene.addBox({Size := [1, 1]; collideSet := 64; restitution := 1; density := 100; pos := e.pos});

この例では、大きさ1m×1m、衝突判定G、反発の度合い1、密度100の四角が、衝突地点に発生する。

**配列の1要素のみを書き換える
例えば、4つの要素を持つ配列hogeの3番目の要素を0にしたい場合、
 hoge(2) = 0;
とはできないので、
 hoge = [hoge(0), hoge(1), 0, hoge(3)];
とするしかない。

**触った相手のイモータル設定を解除する
 e.other.immortal = false;

**2つのオブジェクトを出す
 Scene.addBox｛Size := [1, 1]};
 Scene.addBox｛Size := [2, 2]};

**衝突すると引力が２００になる
 e.this.attracion=200;

**F2キーを押すたびに Scene.my.x に１を加算
F11でコンソール開いて、下記を入力。

 Scene.my.x := 0
 Keys.bind( &quot;f2&quot;, { Scene.my.x = Scene.my.x + 1 } )

**キー入力で物体の空気抵抗を変える
F11でコンソール開いて、下記を入力。

 Keys.bind(&quot;1&quot;, {Scene.my.x = 100})
 Keys.bind(&quot;2&quot;, {Scene.my.x = 1})

そして、物体のスクリプトメニューを開いてAirFrictionMultのところに
 {Scene.my.x}
と書いておく。


**衝突するごとにimmortal属性を切り替える
 e.this.immortal = ! e.this.immortal;

三項演算子を使った別解。

 controllerAcc==1 ?{
 controllerAcc=0;immortal=false
 }:{
 controllerAcc=1;immortal=true
 }

**3度傾いたBoxを出す
 Scene.addBox{angle := math.pi / 180 * 3};
つまり、angleは弧度法(ラジアン)で指定する。

**ズームをキーで操作する方法
以下２行を背景の空の部分にコピペ
 Keys.bind(&quot;shift i&quot;,{Scene.Camera.zoom = Scene.Camera.zoom * 2 ^ 0.5});
 Keys.bind(&quot;shift o&quot;,{Scene.Camera.zoom = Scene.Camera.zoom / 2 ^ 0.5});
[Shift]+[I] でズーム
[Shift]+[O] でズームアウト
(&quot;shift o&quot;の部分を&quot;o&quot;にすると、[Shift]キーを押さなくても良い反面、[Ctrl]+[O]を押した時にもズームアウトしてしまう。)

**ズームイン/ズームアウトするときに画面の中央が徐々にマウスカーソルの位置に近づく
 Keys.bind(&quot;shift i&quot;,{Scene.Camera.zoom = Scene.Camera.zoom * 2 ^ 0.5; Scene.Camera.pan = (Scene.Camera.pan + App.mousePos) / 2; });
 Keys.bind(&quot;shift o&quot;,{Scene.Camera.zoom = Scene.Camera.zoom / 2 ^ 0.5; Scene.Camera.pan = (Scene.Camera.pan + App.mousePos) / 2; });

**wキーでカメラを右に10m動かす
 Keys.bind(&quot;w&quot;,{Scene.Camera.pan=Scene.Camera.pan+[10,0]});    </description>
    <dc:date>2012-05-17T05:48:31+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/76.html">
    <title>空気抵抗研究会</title>
    <link>http://www6.atwiki.jp/p-phun/pages/76.html</link>
    <description>
      空気抵抗の原理と、その応用についての情報をまとめるページです。

#contents()

*空気抵抗の原理
Phunにおける空気抵抗は、物体の前方投射面積×airFrictionMult×物体の移動速度である。
airFrictionMultは物体ごとに設定できる空気抵抗係数である。
物性メニューからは設定できないので、スクリプトメニューで数値入力する。

#ref(airFrictionMult.png)

物体の姿勢(前方投射面積)によって空気抵抗が異なることは、以下のようなシーンを作成し、各物体のairFricitionMultを1000程度に設定して落下させることで確認できる。

#ref(posture.png)

なお本研究会では、一般に空気抵抗が正である物質を青色、負である物質を赤色で表す。

*空気抵抗の応用
**推進力の取り出し
***特殊プロペラ
回転するプロペラの空気抵抗の差によって、推進力を得る。
推力はプロペラのairFrictionMultによって、最高速度は回転数によって決まる。
推力が小さいので、飛行船などに使われる。

#ref(propeller1.png)

回転するシャフトの先に、半分の回転数のプロペラをつける。
バランスをとるため左右対称に作るのが一般的である。

#ref(propeller2.png)

プロペラが前進するときは前方投射面積が小さく、後退するときは大きくなるようにして、空気抵抗の差を推力にする。
モータのトルクは+infにする。

***TORISANエンジン
逆回転する2つの円につけたブレードが前後するときの空気抵抗の差によって、推力を得る。
推力はブレードのairFrictionMultによって、最高速度は回転数によって決まる。

#ref(torisan1.png)

2つの円は逆回転になるように設定する。
2つの円の中心点の垂直二等分線上にブレードの結合点がくるようにするために、ピストンを作る。

#ref(torisan2.png)
#ref(torisan3.png)

ブレードが後退するときは空気抵抗が大きく、前進するときは小さくなることで、推力を得る。

***NHI式NAFエンジン

#ref(NHI-NAF.png)

物体の中心付近前方に負の空気抵抗体を、中心から離れた後方に正の空気抵抗体を取り付ける。
負の空気対抗体に設定するairFrictionMultの絶対値を、正の空気対抗体より大きくすると、その差が推進力になる。
速度0の時、負の空気抵抗体は推進力を発生しないので、初期加速を必要とする。
速度が上がるほど加速度も大きくなり、無限に加速する。

正負の空気抵抗体は、本体にヒンジで接続すること。
負の空気抵抗体の固定には、複数のヒンジを用いること。
1つのヒンジで固定すると、負の空気抵抗体の回転が無限に増幅される。

#ref(NHI-NAF2.png)

正の空気抵抗体を中心から離して設置することで、回転を打ち消し姿勢を安定させることができる。

***トルクモーター式NAFエンジン

正負の空気抵抗体の前方投射面積の差により推進力を得るエンジン。
初期加速を必要とするが、速度は一定の範囲になる。

#ref(nishina-NAF1.png)

土台となる円に、正負の空気抵抗体、バランスウェイトを固定する。
正負の空気対抗の絶対値は等しくする。

#ref(nishina-NAF2.png)

土台となる円(グレー)の中心にモータを設置し、左回りに設定する。
このモータのトルクにより、負の空気抵抗体の前方投射面積は大きく、正の空気抵抗体は小さくなる。

#ref(nishina-NAF3.png)

初期速度を与えると、前方投射面積の差により加速する。

#ref(nishina-NAF4.png)

速度が大きくなると、正負の空気抵抗がともに大きくなり、右回りのトルクが発生する。

#ref(nishina-NAF5.png)

空気抵抗の差による右回りのトルクがモータのトルクを上回ると、機構全体が右へ回転し、正の空気抵抗体の前方投射面積が大きくなるので減速する。
この繰り返しによって、本機構は一定の範囲内で加速と減速を繰り返す。
速度の範囲は、正負の空気抵抗体に設定するairFrictionMultの値と、モータのトルクによって決まる。

***TORISAN型NAFエンジン
TORISANエンジンと同様の構造にし、正負の空気抵抗体の前方投射面積の差で加速する。
初期加速を必要とするが、一定の速度に収束する。
安定するため、トルクモーター型よりも飛行機に適する。

#ref(torisan-NAF.png)

初期状態では負の空気抵抗体の前方投射面積が大きく、正の空気抵抗体が小さくなるようにする。
負の空気抵抗の絶対値は、正の空気抵抗より小さくする。
加減速がなめらかになるように、2つの円を減衰値が大きめのばねでつなぐ。

#ref(torisan-NAF2.png)

速度が上昇するにつれ、負の空気抵抗体は前に移動し、前方投射面積が小さくなる。
逆に正の空気抵抗体は前方投射面積が大きくなる。
これにより、一定速度での推進が可能になる。

**回転力の取り出し
***RONAFエンジン
負の空気抵抗体から回転力を得るエンジン。
初期加速を必要とする。
徐々に加速し、一定の回転数に収束する。

#ref(ronaf.png)

円の中心よりに正の空気抵抗体を、周辺よりに負の空気抵抗体をヒンジで取り付ける。
負の空気抵抗体の取り付けには複数のヒンジを用いる。
正負の空気抵抗の絶対値は等しくする。

#ref(ronaf2.png)

回転については、外周に取り付けられた負の空気抵抗物質が上回るので、回転力が発生する。

#ref(ronaf3.png)

並進成分については、正負の空気抵抗が同量発生するので、打ち消される。
結果として回転力だけを取り出すことができる。

**姿勢制御
***NHI式姿勢安定装置
物体の中心付近前方に負の空気抵抗体を、中心から離れた後方に正の空気抵抗体を取り付ける。
正負の空気対抗体に設定するairFrictionMultの絶対値を等しくする。

正負の空気抵抗体は、本体にヒンジで接続すること。
負の空気抵抗体の固定には、複数のヒンジを用いること。
1つのヒンジで固定すると、負の空気抵抗体の回転が無限に増幅される。

#ref(stabilizer1.png)

正負の空気抵抗体が発生するトルクによって、姿勢と進行方向が一致する。

#ref(stabilizer2.png)

*資料集
**動画データ
[[Phunで飛行船を作ってみた！（後編）&gt;http://www.nicovideo.jp/watch/sm3946232]] 特殊プロペラを飛行船の推進力に使っている
[[【Phun】負の空気抵抗エンジン&gt;&gt;http://www.nicovideo.jp/watch/sm11748044]] トルクモータ式NAFエンジンの説明
[[【Phun】負の空気抵抗物質で制御可能なエンジン&gt;&gt;http://www.nicovideo.jp/watch/sm11770412]] 空気抵抗体の角度を手動で変えることで速度を調節するエンジン
[[【Phun】負の空気抵抗エンジン(回転式)&gt;&gt;http://www.nicovideo.jp/watch/sm11809289]] 回転式の負の空気抵抗エンジンだが、向きの制御が難しいようだ
[[【ニコニコ重工】負空気抵抗―その理論と応用（回転・推進）―【Phun】&gt;&gt;http://www.nicovideo.jp/watch/sm11827022]] NHI式NAFエンジンとRONAFエンジンの説明
[[【Phun】二足歩行機械&gt;&gt;http://www.nicovideo.jp/watch/sm12438657]] 7分29秒から負の空気抵抗エンジンを用いた飛行機が登場
[[【Phun】プロペラ飛行機 魔改造エンジン編&gt;&gt;http://www.nicovideo.jp/watch/sm16555685]] 負の空気抵抗体を用いて、TORISANエンジンの速度を上げる方法

**シーンデータ
[[特殊プロペラ&gt;http://www.algodoo.com/algobox/details.php?id=60374]]
[[TORISANエンジン&gt;http://www.algodoo.com/algobox/details.php?id=60375]]
[[NHI式NAFエンジン&gt;&gt;http://www.algodoo.com/algobox/details.php?id=60376]]
[[トルクモータ型NAFエンジン&gt;&gt;http://www.algodoo.com/algobox/details.php?id=60377]]
[[NHI式姿勢安定装置&gt;&gt;http://www.algodoo.com/algobox/details.php?id=60378]]

**ジェネレータ
[[TORISANエンジンジェネレータ&gt;http://nishina2525.cocolog-nifty.com/blog/2012/01/torisan-892b.html]]

*研究中の課題

#comment    </description>
    <dc:date>2012-05-16T21:42:15+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/1.html">
    <title>トップページ</title>
    <link>http://www6.atwiki.jp/p-phun/pages/1.html</link>
    <description>
      #right(){このウィキ(p-phun＠ウィキ)の最終更新日時:&amp;last_modified(j)}
#right(){このページ(&amp;this_page())の最終更新日時:&amp;update(j)}
*p-phun＠ウィキ
&amp;bold(){Phun}はスウェーデンにあるAlgoryx社のEmil Ernerfeldt氏が、ウメオ大学バーチャルリアリティ研究室在学中に開発し、2008年2月に初公開した、無料の2D物理シミュレーションソフトウェアです。
このページの下方にある動画を見ることで、Phunがどのようなソフトウェアであるかを知ることができます。

Phunはphysics（物理）とfun（楽しみ）を組み合わせた造語で、「ファン」と発音します。
基本的な操作は難しくありません。はじめは思い通りに動かずイライラするかもしれませんが、それがPhunの醍醐味のひとつとも言えます。
現在、本サイトの記載内容にβ4.22以前のものとβ5.25以降のものが混ざっています。よりよいサイト作りにご協力ください。

-[[公式サイト&gt;http://www.phunland.com/wiki/Home/ja]] - 本家Wikiとも言われています。主要なページは日本語化されています。
-[[Algobox(公式のシーン共有サイト)に関する説明&gt;http://www.algodoo.com/wiki/Algobox/ja]] - 日本語に対応しました。

*今からPhunを始めるよ!or始めたよ!ってヒトは・・・
ダウンロードは[[公式サイトのダウンロードページ&gt;http://www.phunland.com/wiki/Download/ja]]から自分の環境にあったものをダウンロードしてください(Windows, Linux, Mac OS Xに対応)。Windows版のインストーラを用いたインストール方法は、[[Phun.jpのインストールページ&gt;http://www.phun.jp/install]]が参考になります。

とりあえず[[基本操作]]は必読です。
そして、行き詰ったら[[よくある質問&gt;&gt;FAQ]]で探してください。
だれかに聞く前に、上の二つは必読!
それでも分からなかったら、2chスレ等で質問してもいいかもしれません。

*ニュース
新しい記事が上です。

-2012.05.12 - Algodoo 2.0.2 b15 が公開されました。
-2012.03.23 - Algodoo 2.0.2 b14 が公開されました。
-2012.03.15 - Algodoo 2.0.2 b13 が公開されました。
-2012.03.14 - Algodoo 2.0.2 b12 が公開されました。
Algodoo 2.0.2のβ版は、公式フォーラムのトピック[[「2.0.2 beta」&gt;http://www.algodoo.com/forum/viewtopic.php?f=24&amp;t=5834]]でのみ公開されています。一般公開の前のテスト目的です。

-2011.02.04 [[Phunコン/第10回]] Phunコン如月杯2012 &amp;new2(2012/02/04 00:00:00,time=360,show=開催中!,color=red)

-2011.12.21 - Algodoo 2.0.1 が公開されました。&amp;color(red){&amp;new(2011/12/21)}
ダウンロード：[[本家Wiki - Download/ja&gt;http://www.algodoo.com/wiki/Download/ja]]
更新履歴：[[本家Wiki - Changes/ja&gt;http://www.algodoo.com/wiki/Changes/ja]]

-2011/12/18 2chのスレのアドレスが変りました。 [[PhunスレPart10&gt;http://anago.2ch.net/test/read.cgi/game/1321774284/l50]] &amp;color(red){&amp;new(2011/12/18)}


上記以外のニュースは[[ニュース過去ログ]]に移行しました。

**ツール更新情報
-12/04/20 - [[Inkscape用 phn出力拡張&gt;http://dl.dropbox.com/u/9975638/Algodoo/Inkscape/phn_output/index.html]]が更新されました。
-12/02/12 - [[新型翼試験機ジェネレータ&gt;http://nishina2525.cocolog-nifty.com/blog/2012/02/post-03c7.html]]が公開されました。
-12/02/01 - [[グラフ化ツール&gt;http://nishina2525.cocolog-nifty.com/blog/2012/01/post-b03d.html]]が公開されました。
-12/01/20 - [[TORISANエンジンジェネレータ&gt;http://nishina2525.cocolog-nifty.com/blog/2012/01/torisan-892b.html]]が公開されました。
-11/10/23 - [[壊れるヒンジ燃料ジェネレータ&gt;http://nishina2525.cocolog-nifty.com/blog/2011/10/post-e3fd.html]]が更新されました。
-11/10/23 - [[ケスラーシンドロームシミュレータ&gt;http://nishina2525.cocolog-nifty.com/blog/2011/10/post-619d.html]]が公開されました。

他にもたくさんのツールがあります。[[ツール解説]]にまとめられています。

*Phunの動画を検索する
-[[ニコニコ動画（マイリストが多い順）&gt;http://www.nicovideo.jp/search/Phun?sort=m]]
-[[YouTube（投稿日時が新しい順）&gt;http://jp.youtube.com/results?search_query=phun&amp;search_sort=video_date_uploaded]]

Youtube - &amp;bold(){Phun - 2D physics sandbox} 作者(Emilk)による紹介動画（投稿日：2008年02月13日）
&amp;youtube(http://jp.youtube.com/watch?v=0H5g9VS0ENM){425,344}
※最新版は、この動画当時よりも機能が増えて、使いやすくなっています。

*このページへのコメント
#comment_num2(title_name=名前,vsize=1, size=100, disableurl, title_msg=コメント)
※このWikiについての連絡用につき、Phunに関する質問は[[2chスレ&gt;http://schiphol.2ch.net/test/read.cgi/game/1216662581/]]へ。

----    </description>
    <dc:date>2012-05-14T02:11:29+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/40.html">
    <title>Phun力学と技術</title>
    <link>http://www6.atwiki.jp/p-phun/pages/40.html</link>
    <description>
      //とりあえず用意してみたけど、特徴的な物からカテゴリ分けしたほうがいいかなと思ったり
//たとえばヒンジを利用した物ならヒンジカテゴリに、バネならバネカテゴリに
//ただそれで分類の難しい物があるので、いっそ五十音順で並べるという手もある
//10/15　まとめてみた　重複する項目の整理がややこしい…、あと歴史とかは年表として別ページで作ってリンクした方がいい気がする
//10/23　別ページがまとまるまで暫定的に発明者だけ追加。
ここでは過去にスレやニコニコなどで発表されたPhun独自の力学と開発された技術をまとめています。

#contents()

#areaedit()
*物性に関するまとめ
| |-inf| -| 0| +inf|
|Friction |0と同じ| 0と同じ| 摩擦無し| すぐ止まる|
|Bounciness(restitution)| 0と同じ| 0と同じ| 反発無し| 物体が消滅する|
|Density(weight)| 物消滅| 物消滅| 物消滅| 下参照↓|
【Density(weight)を[+inf]にした場合について】
backgroundにglueされた時の様に空中で静止します。
また、衝突判定はありますが、重心はありません。
Infomationを見てみると、
Mess,Velocity,Angular velocity,Energyが+infになっています。

| |-inf| -| 0| +inf|
|Controller acc| 物消滅| 逆に動く| 動かない| 物消滅|

**Spring
| | -inf| -| 0| +inf|
|Strength| 物消滅| 物消滅| ﾊﾞﾈ無と同| 物消滅|
|Damping| 物消滅| 加速する| 抵抗ﾅｲ| 物消滅|
|Target length| 物消滅| 強い| 強い| 物消滅| 
Damping: -で無限に加速できる(うまく制御できればつえかる)
Target: ﾏｲﾅｽ＞0＞整数(伸び)

**Hinge
| | -inf| -| 0| +inf|
|Motor speed| 普通| 逆回転| ﾌﾞﾚｰｷ(強)| 普通|
|Motor strength| +infと同じ| +と同じ| 動かない| 普通|
|Impulse break limit| +intと同じ| +と同じ| 重力有壊| 壊れない|
Motor speed:infはﾄﾙｸをinfにすると物消滅、0はAuto-brakeより強い

**Pen
| | -inf| -| 0| +inf|
|Fade time| 0と同じ| 0と同じ| 軌道無し| 600sで消える,後ろのｸﾞﾗﾃﾞｰｼｮﾝ無し|
|Size| 見えなくなる| +と同じ| 見えなくなる| 見えなくなる|
Fade: 恐らく600sが限界
Size: 大きすぎるとバグる 



#areaedit(end)

#areaedit()
*ロケット推進技術
**埋め込み力方式
衝突判定の同じ物質が重なった際に生じる、お互いに反発しあう力を推力とする方式
埋め込み力により燃焼室が常時高圧になる性質上、推力の制御が難しい
はやぶさミッション提案者が発明し、その後ニコニコ宇宙軍などで改良された。

推進剤の保持方式の違いにより、推進剤を飛行軸に対して直角に、２箇所に分けて保持する「対向保持方式」（主にはやぶさミッション提案者方式）
ノズル部分に絞りを設けて推進剤を飛行軸方向に保持する「中央保持方式」（主にニコニコ宇宙軍方式）
がある。
***対向保持方式
推進剤を埋め込み板と上部隔壁の間に保持する方式。遅延発火が可能で推進力が長持ちするが推力方向に不安定である。
-【プロジェクトPhun】月面着陸への挑戦　http://www.nicovideo.jp/watch/sm2641690
-Phunでニコニコ宇宙軍4.9「あとがない」http://www.nicovideo.jp/watch/sm2953401
***中央保持方式
推進剤を飛行軸方向に保持する方式。出力が大きく振動が少ないが推進力が長持ちしにくく後半の推力が小さい。
-Phunでニコニコ宇宙軍4.8「豆腐打ち上げロケット」http://www.nicovideo.jp/watch/sm2928749

**超反発方式
超反発物質（物体のBounciness値が直接入力により１以上に設定された物質）へ
推進剤を衝突・反射させることにより発生する推力を利用する方式
推進剤の噴射速度を埋め込みロケットとは比較にならない高速まで高められるため性能が飛躍的に向上した。

推進剤の衝突量を調整することで推力の制御が可能なため、宇宙ミッションはもとよりヘリコプターや戦闘機などを
重力に逆らって飛行させるのにも有効である。

HALL999氏（時計の人）とのな。氏（現ニコニコ島Phun研究所）がほぼ同時期に発明した。
-【Phun】超反発エンジンの機構説明＋おまけ http://www.nicovideo.jp/watch/sm3099427
-【Phun】ロケットっぽいものを飛ばしてみた【解説編】　http://www.nicovideo.jp/watch/sm4754315
-【phun】戦闘ヘリっぽい乗り物作ってみた【解説の巻】http://www.nicovideo.jp/watch/sm4861161

**埋め込み超反発方式
埋め込みロケットから放出された粒子を超反発物質で跳ね返して噴射する複合推進。
埋め込み保持の保持力、短時間の大推力と超反発方式の性能の高さを併せ持つため、ミサイルに適している。

ニコニコ重工が超高速ロケット用に開発し、その後空対空、空対地ミサイルに応用。
ニコニコ重工製ロケットモーターはニコニコ島Phun研究所の地対空ミサイルにも流用された。
-【phun】で戦闘攻撃機を作ってみた【技術解説の巻】　http://www.nicovideo.jp/watch/sm4973207

**打ち出し方式
モーターやバネを使って推進剤を打ち出し推力を得る方式
埋め込み推進に比べ性能が非常に低いため、埋め込み推進や超反発推進が実用化されてからは一時期下火になったが、
最近では超高速で回転する羽根車に物質を衝突させて弾き飛ばすことで埋め込み推進以上の性能を得られるようになった。
-Phunでロケットを作ってみた　http://www.nicovideo.jp/watch/sm2426568
-Phunで空対地攻撃？ 解説編http://www.nicovideo.jp/watch/sm4191777



#areaedit(end)
#areaedit()
*空気抵抗推進技術

**特殊プロペラ
Boxの中央にモータを付け、さらにBoxの先端にBoxをそれぞれ1個ずつモータで取り付けたもの。
中央のモータに対してアーム先のモーターを-1/2の角速度で回転させることにより、
Boxが上昇するときと下降するときの空気抵抗の差を生み出して推力を得る。

-Phun Helicopter proof of concept　http://jp.youtube.com/watch?v=AbFtJayIlTQ
飛行船ニコアテもこの推進器を使用している。
-Phunで飛行船を作ってみた！（後編）　http://www.nicovideo.jp/watch/sm3946232

**TORISAN-ENGINE
対称に配置した二つのクランクからコネクティングロッドを介してスライドする棒を駆動する方式。
コネクティングロッドの角度が行きと帰りで異なることにより空気抵抗の差を生み出して推進する。
mira氏が自身が開発した新型ピストンを実験中にプロペラに応用できることを発見した。
【Phun】空を飛ぶものhttp://www.nicovideo.jp/watch/sm4241299

**負の空気抵抗物質
本来、抗力は物体の移動方向とは逆向きに働いて物体を減速させるが、もしこの抗力とやらが移動方向と同じ向きに働くとなると物体は加速することになる。 
この物体にヒンジを付けてちょっと手で回してやると、勝手に加速してあっという間に高エネルギーが得られる。

#ref(01.NAF.png)
[[【Phun】負の空気抵抗エンジン&gt;http://www.nicovideo.jp/watch/sm11748044]]

正の空気抵抗体と負の空気抵抗体の前方投射面積を変えることで、速度を自律的に安定させる。

#ref(02.torisan.png)
[[【Phun】二足歩行機械&gt;http://www.nicovideo.jp/watch/sm12438657]] 8分40秒あたりから

トリサンエンジンの機構を用いることで、出力を安定させたもの。

#ref(03.haonoji.png)
[[【Phun】負の空気抵抗物質で制御可能なエンジン&gt;http://www.nicovideo.jp/watch/sm11770412]]

空気抵抗体の前方投射面積を手動で変えることで、速度を制御するエンジン。

#ref(04-1.linear.png) 直線運動型
#ref(04-2.rotattion.png) 回転型

[[【ニコニコ重工】負空気抵抗―その理論と応用（回転・推進）―【Phun】&gt;http://www.nicovideo.jp/watch/sm11827022]]

正負の空気抵抗を組み合わせることで、直線運動・回転運動を取り出す。
直線運動型は無限に加速する。
回転運動型の回転数は収束するが、収束する理由は不明。

#areaedit(end)

#areaedit()
*VaD技術
VaD技術とはスクリプトで物体の質量を変更し、かつその物体をエンジン本体に対して加速運動させることによって推力を得るエンジンである。
使用された物体は再利用されるため、無限燃料に発生する位置ズレの発生が無く、かなりの速度であっても安定して飛行できる利点がある。

質量の変わる物体が循環運動をすれば大体どのような物でもVaDエンジンになる。

**埋め込みリニア式
埋め込み力によって高速で往復する物体の密度を変化させることで推進力を得る。
【Phunで】空軍入隊ノスゝメ【空を飛ばないか？】 http://www.nicovideo.jp/watch/sm11488120

***カラーボックス
埋め込みの代わりに微超反発を使ったリニア式VaDエンジン。埋め込みリニア式の起源。
【Ｐｈｕｎ】でカラーボックス打ち上げてみた http://www.nicovideo.jp/watch/sm6962957

**回転式
回転板上の小円の密度を変えることで、遠心力を推力にする。
【Phun】回転式VaDエンジンの解説 http://www.nicovideo.jp/watch/sm11800443

**レシプロ式ＶａＤエンジン
レシプロエンジンを模したクランク、シリンダー、ピストンを持つ機構で、ピストンの往路と復路で密度を変化させることにより推進力を生み出す。

**自己点滅振動子
エンジン本体のThyme物質ではなく、振動子自体にスクリプトを書き込み、振動子自身が質量や衝突判定を変更する方式。
PJ Systemsにより開発され、ミサイル用小型エンジンやVaD翼に使用される。
高出力だが、常に出力しているので取り扱いが難しい。また、シミュレーション速度に影響されやすい。

***パルサーエンジン
最も単純な自己点滅振動子を使ったエンジン、幅20ｃｍでもかなりの推力があり特に小型化しなければならない用途に使用される。
【Phun】あのエンジンをさらに応用してみた　http://www.nicovideo.jp/watch/sm11659205

#areaedit(end)

#areaedit()

*飛行制御技術
**モーメンタムホイール
錘にモータを取り付け回転数や方向を制御し、その反トルクにより機体の姿勢制御を行う機構
非常にシンプルな反面、錘にそれなりの質量が必要なので軽量化がこれからの課題？
-Phun的お手軽ロケットの姿勢制御装置を作ってみた　http://www.nicovideo.jp/watch/sm2518917

**ヒンジスタビライザー
ある物体に円をヒンジで固定し、その後円をずらしてもう一度ヒンジで固定した装置
このようにヒンジに張力がかかった状態になると、物体は急に回転しにくくなり、姿勢が安定する。
また、ヒンジスタビライザーを機体本体にモータで固定することで、機体本体の姿勢を自由にコントロールできる。
モーメンタムホイールに比べ飛躍的に高い制御能力を持ち、同時に軽量化できる。


**バネスタビライザー
海外のPhun作品が数多くUPされているPhunBox内の作品で使われていた技術。
ヒンジのついたboxを強力なバネで引っ張っているため、スタビライザーとしての効果を発揮する。
また、ヒンジスタビライザーは強力な衝撃を受けると向きが変わったまま制御するという問題があるが、
この姿勢制御装置は衝撃を受けるとなんと　上下　にしか向きが変わらないため、用いた物体は大変丈夫な姿勢制御を取る。
だが、下向きになると頑丈に作った分だけ起き上がるのが困難になる。
ヒンジスタビライザーにくらべ各種設定ができるためか、効果が大きいように感じる（要検証）。
-Raunit demo　http://www.phunbox.net/details/9599/
だが残念なことにβ5以降はphunのプログラム内でヒンジが強化されたためか、まったく動かなくなってしまった。
しかし、軽物体の制御は少しならできる。
現在使用するなら「ヒンジスタビライザー」がベストである。

#areaedit(end)
#areaedit()
*エネルギー源/動力の一覧
Phunスレにおいてまとめられたものをとりあえず置いておきます

**エネルギー源：埋め込み力
***多重円埋め込み燃料
停止状態で複数の円を重なった状態で設置して制作する
シミュレートを開始すると埋め込まれた円の反発力により爆発的に膨張する特性を持つ

コピーを使い同一座標に同じ大きさの円を設置すると
反応を起こさずエネルギーを蓄えておくことも可能だが
不安定なため少しの衝撃で爆発する場合があり扱いが難しい
燃焼室の厚みを十分に取らないと膨張の圧力で燃焼室から漏れ出す場合がある
また、燃料を大量に設置すると非常に処理が重くなる
-Phunでミサイル作った　http://www.nicovideo.jp/watch/sm2401479

***指向性火薬
円のかわりに長方形のBoxを使用すると、その短辺の方向に指向性を持って炸裂する。
Phun4.X以降ではBoxに判定点がないために生じる現象と思われる。
nagi氏の素材研究によって発見された。
その後、ミサイルのロッド弾頭としてニコニコ重工やニコニコ島Phun研究所のミサイルに使用されている。
-Phun自由研究 指向性火薬 http://www.nicovideo.jp/watch/sm4768556

***埋め込み推進
多重円埋め込みをさらにハッテンさせたもの
燃焼室の壁自体をめり込んだ状態で固定させることにより推進剤の保持と
多重円のみと比べて長時間推力を取り出すことができるようになった
-Phunで火星着陸船を作ってみた（はやぶさミッション提案者）　http://www.nicovideo.jp/watch/sm2512138

***ヒンジ燃料
多重円埋め込みに4.0以降実装された「Impulse break limit」機能を利用した燃料
ヒンジで固定された物体同士は衝突グループ（Collision group）が同じでも
衝突判定が無視されるため埋め込み力が発生しないが
外力が加わることによってヒンジが破壊すると衝突判定が復活し多重埋め込み燃料と同様の反応を起こす
これによりエネルギーを保持したまま燃料を持ち運びしたり、任意の場所で反応させる事ができるようになった
-Phunで内燃機関を作りたい！（はやぶさミッション提案者）　http://www.nicovideo.jp/watch/sm4324784
-【Phun】の新型内燃機関と内燃機関動力車【点火装置つき】（ニコニコ重工）　http://www.nicovideo.jp/watch/sm4688176


**エネルギー源：超反発
***超反発火器
超反発は推進剤の代わりに弾を発射することで火器としても利用できる
他の方式に比べコンパクトな上、威力の調整も反発係数の設定で簡単に行えるため
ロケットの推進力として本格的に運用される前から戦車砲などに使用されていた。
現在では給弾方式が進歩し、速射砲や連射砲も製作されている。
-超反発銃：http://www.nicovideo.jp/watch/sm2692474

***超反発弾頭
超反発体は反発係数が０以外の物体と衝突した場合、激しく跳ね返り、標的もその反作用で弾き飛ばされる。
このことを利用して超反発体を目標に衝突させることで目標を破壊することができる。
超反発弾頭としては、単純に1つの超反発体をミサイルに固定したもの、
超反発体を反発係数0の田の字型ケースに収納し、衝突の衝撃で起爆させるもの、
多重円埋め込みや指向性火薬のCircle,Boxを超反発体にして、目標直前で固定をはずして散布するクラスター弾頭などがある。
***超反発火薬
無反発の円と超反発の小円を組み合わせたもの。
かなり不安定で乱暴に扱うと自爆する。
砲の弾薬として使用するとかなり高性能だがたまに弾が暴走する。

**エネルギー源:スプリング
***バネ弾薬
phunboxで火器の作成によく使われるという、　スプリング　を使用したコンパクトな弾薬。
これにはある　特徴　があり、撃つまではどんなに乱暴に扱っても、弾は破損しないこと、
反動が大きいため、　ブローバック拳銃　などが、この弾薬を使うだけでできる。
最近はニコニコ動画に技術が輸入されたため、スプリングのはずが、「バネ弾薬」になっている。
クランクにヒンジでとめた円をつけると

-【phun】バネを火薬みたいに使ってみる　http://www.nicovideo.jp/watch/sm10585030

***スプリングエンジン
普通のエンジンのピストンに減衰マイナス値のスプリングを組み込むことで、
驚異的な回転力を得ることができる。
低コストで簡単に作れるため、ロマン求めの人に良く使われる。
ただトルクが細長くなりやすく、うまく調整しないと十分な能力を発揮できない。
-【Phun】自作エンジンの馬力を測定した  http://www.nicovideo.jp/watch/sm11095950
だが、最近ではクランクにヒンジ固定の円を取り付けて、遠心力を利用した安定エンジン　【アラブル粒子エンジン】
などが開発されたり、飛躍的に進歩している技術でもある。

**レシプロエンジン
***反発力を熱源として利用した内燃(外燃)機関
-Phunで内燃機関（hoho氏）　http://www.nicovideo.jp/watch/sm2876089 
-Phunでエンジンカー（rob氏）　http://www.nicovideo.jp/watch/sm2838362
//rob氏も原理的には同じと思うのでこちらへ移動

**エネルギー源：モーター
***NEGI機構
モータ動力を埋め込み力へ変換する機構。名前についてはお察しください
-【Phun】で作った新機構の試作火砲を撃ってみた（Phun技術研究所第6課）　http://www.nicovideo.jp/watch/sm2672900

**エネルギー源 : スクリプト
***Thyme炸裂弾
砲で撃ちだした後、標的に接触すると、巨大な円を一時的に出現させ、
埋め込み力をThyme操作で爆発力として使用した弾薬。
現時点では最も強力な弾薬である。
ニコニコ重工が実用化に成功している。
- 【Phun】で新型戦闘車両【新型軽負荷Thyme弾頭】 (ニコニコ重工)　http://www.nicovideo.jp/watch/sm7331628

***スクリプト無限マシンガン
その名のとうりスクリプトのvelを使う。
航空機などの高速移動するものに搭載する場合自分の速度を+しないと、自分に弾が当たることがある。

**その他
//-前転君　http://www.nicovideo.jp/watch/sm4684275（Part4&gt;&gt;518や以前の「ヒンジ異常を利用したリアクションホイール」と原理は同じ）
//削除されている？動画見れないのでとりあえず消しときます　
***川本機関
（ニコ動コメより）これについては誤差ではなく、ギア自体が低温熱源になってると考えられる
-【Phun】ブラウン運動を回転運動に変換する機関を発明してみた？（gekkoji氏）　http://www.nicovideo.jp/watch/sm4670446

***ヒンジ角？
同じ大きさの正方形を2つ重ねてヒンジで固定
もりさん　http://www.nicovideo.jp/mylist/5889379　その後もりさんはバイクなどにエンジンを応用。
//角にはモータは使われてないのでこちらに移しました。問題があれば修正を
//物理演算の誤差ではないようなのでその他へどうさせました

**エネルギー源：位置エネルギー
***水力
-【Phun】水車の実験＋α（chaoslive氏）　http://www.nicovideo.jp/watch/sm2398470

*差動機構
**差動機構全般について
#ref(01.sadou.png)
[[【Phun】差動機構指南【音入り版】&gt;http://www.nicovideo.jp/watch/sm9951820]]

回転するAとBがあるときに、Cの回転数を(A+B)/2にする方法。

**SAKURAリンク
#ref(2.sakura.png)
[[【Phun】SAKURAリンク解説&gt;http://www.nicovideo.jp/watch/sm11754043]]

リンクを用いて差動機構を構成する方法。
リンクであるが故に、歯車や摩擦車に比べて、角度ずれがおきにくい。

**ハーモニックドライブ
#ref(3.harmonic.png)
[[Phunでハーモニックドライブを作ってみた&gt;http://www.nicovideo.jp/watch/sm11821441]]

歯数の異なる外周歯車によって、大きな減速比を得る。

**ダブルピニオン遊星歯車
#ref(4.doublepinion.png)
[[【Phun】ダブルピニオン遊星機構【機械式無段変速】&gt;http://www.nicovideo.jp/watch/sm13952112]]

ピニオンギヤを2つ持つ遊星歯車機構。
負荷が大きいときは高トルク低回転数になり、負荷が下がると低トルク高回転数になる。
機械式の無段変速機として使える。

#areaedit(end)

*無線通信
**信号弾による通信
#ref(01.okina.png)
[[【プロジェクトPhun】おきな回収への挑戦&gt;http://www.nicovideo.jp/watch/sm7697905]]

2種類の信号弾を衝突させることによる4bit通信。

**引力通信
#ref(02.gravity-2.png)
[[【Phun】無線通信によるロケットの誘導&gt;http://www.nicovideo.jp/watch/sm11538387]]
[[【Phun】無線通信 解説編&gt;http://www.nicovideo.jp/watch/sm11549309]]

2種類の引力の差によって、1bit無線通信を行う。

**多値通信
#ref(03.3bitcommand-2.png)
[[【Phun】無線通信&gt;http://www.nicovideo.jp/watch/sm14769812]]

3種類の引力と差動機構を組み合わせて、3bit8状態の通信を行う。

#ref(04.5bitcommand.png)
[[【phun】単判定信号体による5bit無線通信（試作）&gt;http://www.nicovideo.jp/watch/sm15605619]]

1種類の信号弾を衝突させることで、5bit通信を行う。

*おまけ
-[[熱機関とは（Wikipedia）&gt;http://ja.wikipedia.org/wiki/%E7%86%B1%E6%A9%9F%E9%96%A2]]
-[[ロケットとは（Wikipedia）&gt;http://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B1%E3%83%83%E3%83%88]]

*コメント
#comment_num2    </description>
    <dc:date>2012-04-19T13:54:55+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/75.html">
    <title>phun界での企業</title>
    <link>http://www6.atwiki.jp/p-phun/pages/75.html</link>
    <description>
      ここのページでは日本のphun界(主にニコニコ動画)で活躍している会社を紹介します。

***phunにおける企業とは
ニコニコ動画であがってるphun動画の作者、または動画シリーズに対する名前のことです。
本当に会社を立ち上げているわけではありません。
企業名は、アップロード者本人が名乗っている場合や、視聴者の間で定着する２種類が
ほとんどだと思われます。

**各企業

***PJSystems
最先端の技術を応用して色々な作品を作っている会社。
現実の世界で起こる現象やそれらの研究も動画として上げている。
この人の動画はNHKのようなプロの編集のため、多くの支持を受けている。
月の周期で動画をアップロードしている。
現在、最も技術が進行してる会社といえるであろう。

***ニコニコ重工
phun初期から動画をあげていた、かなり長い会社。だが現在は休止しているようだ。
主に兵器を作っており、時計屋さんに先を越されるも、自動追跡ミサイルは
画期的な発明と言えるだろう。
「超反発」の名前を定着させたのもこの会社である。

***ニコニコ宇宙軍
phun始まって以来、かなり初期からシリーズをアップロードしてきた。
ロケットを主に作っていたが、随分前から休止しており、生きてはいない。
この人が上げた「劇場版ニコニコ宇宙軍」は結構話題であった。
phun界の偉大なる先人である。

***Phun兵器局第六課
現存する最も古いphun会社。
実写のような作品を作ることが特徴。
陸上系の物を主に作っている。
この人の動画は、隊長・アインスの２名のキャラクターが話を進めていく。
障害物皐月賞に参加するなど、イベントへの参加も熱心。

***ニコニコ技研4課
かなり昔にあった会社。戦車を主に作っている。
この人の動画は萌えキャラ中心に話が進んでいく。
過去に話題となった「NEGI機構」を開発したのもこの会社である。

***独立行政法人ニコニコ島Phun研究所
phun初期に活動していた会社。主に戦闘機の開発をしていた。
また、対空防衛用の車両を開発したりしていた。
特にミサイルなどの発展が多い。

***ニコニコ銃砲製作所(株)
海外のバネ砲技術をニコニコ動画へ輸入した会社。
それに伴って主に銃砲の製作をしている。
この人の開発した技術はその後のPhun軍事に大きく影響した。

***イザヤ研
イザヤ航空 でデビューしたが、現在は イザヤ研 として呼ばれている。
色々なものを製作している、結構新しい会社。

***エアースカイコーポレーション
主に兵器を作っている会社。「駄作兵器」というコンセプトで動画を投稿するも、
その面白さから再生数が伸びていたようだ。
アイデアは良いものの、成功していないようだ。

***ニコニコ試作設計局
戦車を主に製作している会社。。
ここの開発した「砲安定装置」は画期的な発明であり、
その後の戦車開発に大きく取り入られた。

***兵器開発局「そのほ課」
戦車を主に製作している会社。phun中期からデビューした。
あの「無反動砲」を開発したのはこの会社である。
また「兵器局第六課」「ニコニコ試作設計局」との共同開発を行ったりしている。

***N.E社
正式には「ニコハイム・エレクトロニクス」である。
主に飛行系の作品を制作していた。
カセットテープ式エンジンを開発したのはこの会社である。
現在は休止している。

***とある物理の武器職人
花火作りからデビューした会社。
ニコニココミュニュティ「第501整備中隊」を中心に活動しており、会社というには一番近い存在。
主に銃砲の製作やオブジェクトの精密加工が得意らしい
障害物皐月賞にも参加している。

***　TAIYAKI　Air Force Research Laboratory
乗馬マシンこと星型エンジンでデビュー。
ＪＰで開発された「Ｓ-ＶａＤ」を広めた。
主に東側の戦闘機を開発。
陸上の兵器も作っているが、なぜかデザインは西側。

***ハイブリッジ開発所
東側の新型戦車でデビューした新しい会社。
御社が開発した「超密度榴弾」はタワー密度10000を破壊する威力をもつ。
今後の成長に期待がもてる会社である。    </description>
    <dc:date>2012-04-10T21:19:13+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/36.html">
    <title>Thyme</title>
    <link>http://www6.atwiki.jp/p-phun/pages/36.html</link>
    <description>
      ThymeはPhunやAlgodooで使用されているスクリプト言語です。

Thymeスクリプトを使用すると、例えば、[[時間に合わせて引力の値が変化する図形&gt;http://www.phunland.com/phunbox/details.php?id=17651]]を作ることができます。

目次
#contents()

* Thyme.cfgの内容
|以下の文章は、Phunβ5.25に同梱されている、Thyme.cfgの内容を訳したものです（読みやすさのために、訳者の補足説明も地の文として表示しています）。|

ThymeはAlgodooとPhunにおいて実装されている独自のスクリプト言語です。
基本となる型は4種類あります。Int型、Float型、Bool型、String型です。これらの型を組み合わせて、配列(リスト)や関数を作成することが可能です。
識別子は演算子 := を用いて宣言します。代入には = を使用してください。識別子は型付けされません。

hoge := 7; // 新しい識別子 &#039;hoge&#039; を初期値3で宣言します。
hoge = [hoge, &quot;hello&quot;, true];  // 宣言済みの変数 &#039;hoge&#039; をリストとして再定義します。 このリストはヘテロジニアス(Heterogeneous:異種混合)です。
print hoge(1); // このコードは &quot;hello&quot; を返します。()で配列の要素にアクセスしています。
print hoge([0,2]); // このコードは [7, true] を返します。
isEven := (n)=&gt;{ n%2==0 }; // 関数 &quot;isEven&quot; を宣言します。 1つの引数を受取、もし、その値が偶数ならtrueを返す関数です。


for関数が実装されています。
for関数は、Thymeにおけるシンプルなループ構造です。「再帰の上限」が存在する影響で、約50回以上ループさせると警告・もしくはエラーが出ます。
次のように使われます: for(n, (i)-&gt;{ ... }); ここで n は関数を呼ぶ回数です。 i は　0, 1, ..., n-2, n-1　受け取ります。
例:
	for(4, (n)=&gt;{print ((n+1) + &quot; bottles of beer on the wall.&quot;)})
出力:
	1 bottles of beer on the wall.
	2 bottles of beer on the wall.
	3 bottles of beer on the wall.
	4 bottles of beer on the wall.

for関数は以下のように実装されています。
  for = (n, what)=&gt;{
      n &lt; 0 ? true : {
          for(n - 1, what);
          what(n-1)
      }
  };

他にも関数の定義例があります。
inclusive_range = (min, max)=&gt;{min &gt; max ? [] : {[min] ++ inclusive_range(min + 1, max)}};
infix 2 left: _ .. _ =&gt; inclusive_range; // Usage:  1..5 == [1,2,3,4,5]

infix は 演算子を定義します。これを定義しておくと、1..5 が [1,2,3,4,5]と同値になります。
infix 2 left は、結合の優先順位が2で、左結合という意味です。数が大きいほど優先順位が高く、演算子は強く結合します。

&lt;- Thyme.cfgの内容ここまで。

* Scene.my.～
シーンデータで使う独自の変数には
Scene.my.test := 1;
という具合に、先頭にScene.my.を付けて宣言します。
使用する際も、Scene.my.を付けます。

変数や関数を宣言する際に、Scene.my.を付けず、
test := 1;
などと定義してしまうと、testの定義がシーンファイルには保存されず、config.cfgに保存されてしまいます。

これには欠点が2つあります。
(欠点1)... 他人にシーンデータを渡しても上手く動作しない。
シーンデータに宣言した変数の情報がないため、Phunがシーンファイルを上手く解釈することができません。

(欠点2)... 管理が面倒。
config.cfgはPhunを起動する度に読み込まれる設定ファイルなので、config.cfgファイルを削除するかconfig.cfgを編集して該当箇所を取り除かない限り、宣言した変数の定義が残り続けてしまいます。逆に、config.cfgを消してしまうと、たとえシーンデータが残っていても、変数を宣言しなおす必要があります。
また、scene1.phz というシーンデータとscene2.phzで、同じ変数 test を使用していると、scene1.phzでtestの変数の値を迂闊に変更できないということになります。scene2.phzの挙動に影響するためです。

特に(欠点1)は忘れてはならない欠点です。
これらの欠点を理解し、通常は、シーンの変数にScene.my.～という識別子を使用するようにしましょう。

* 関数の宣言
関数は、
関数名 = (引数 [,引数2, 引数3, ...]) =&gt; {処理内容}
という形式で定義することができます。

絶対値を返す関数：
  Scene.my.abs = (x) =&gt; {x &gt; 0 ? x : -x};
使用例:
  Scene.my.abs(-4)
出力
  4

値を整数に丸める関数(Int型に型変換を行うわけではありません）
  Scene.my.floor = (x) =&gt; {x &gt;= 0 ? x - math.mod(x, 1) : (math.mod(x, 1) == 0 ? x : x - math.mod(x, 1) - 1)};
使用例：
  Scene.my.floor(3.14)
出力
  3

距離を返す関数：
  Scene.my.dist = (a, b)=&gt;{((a(0) - b(0)) ^ 2 + (a(1) - b(1)) ^ 2)^0.5};
使用例：
  Scene.my.dist([0, 0], [3, 4])
出力：
  5

rand関数の実装例：
  Scene.my.next_rand = 1;
  Scene.my.rand = () =&gt; {Scene.my.next_rand = Scene.my.next_rand * 1103515245 + 12345; (Scene.my.next_rand / 65536) % 32768;};
  Scene.my.srand = (rand_seed) =&gt; {Scene.my.next_rand = Scene.my.rand_seed};
（このrand関数は、RAND_MAX := 32767 です。）
使用例：
  Scene.my.rand;
  Scene.my.rand;
出力
  16838
  -27009

* 衝突時に呼び出す関数の宣言(onCollide)
図形の衝突時に関数を呼び出すことも可能です。onCollideという属性を利用します。
  onCollide = (e)=&gt;{処理したい内容}
という記述方法で、この処理内容の中では、衝突された図形および衝突した図形の属性の値を、
e.this.collideSet や e.other.color
で手に入れることができます。thisはスクリプトの書かれている図形、otherは衝突した図形です。
その他、e.posで衝突した位置を、e.normalで衝突した面の向きを得ることができます。

例えば、
  Scene.addBox{
    onCollide = (e)=&gt;{Scene.addCircle{ radius := 0.1; collideSet := e.this.collideSet; pos := e.pos}}; 
  }
という図形(この場合はボックス)をPhunで作成すると、衝突する度に、衝突した位置に半径が0.1メートルで衝突グループが図形と同じ円(まる)が出る図形の完成です。※このスクリプトのままだと、物体が出続けてしまいます。
// =と:=を間違えていました。PhunスレPert5の&gt;&gt;173さん、訂正ありがとうございます。

他に、
[[衝突するたびに色や密度の変化する図形&gt;http://www.phunland.com/phunbox/details/17509]]
[[スコアボード&gt;http://www.phunland.com/phunbox/details.php?id=17453]]
[[色の読み取り&gt;http://www.phunland.com/phunbox/details/17600]](Scene.my.で独自の変数recognitionを定義しています。)
などの例があります。
純粋なシミュレーションではなく、主にゲーム目的に広く応用できそうな機能と言えるかもしれません。

*衝突した相手の物質のタイプを得る
|公式フォーラムより。Iggyhopper氏の投稿内容です。|
&gt;(e.other + &quot;&quot;) で衝突した物体のタイプを判断することができます。
&gt;四角形→box
&gt;まる→circle
&gt;平面→plane
&gt;ポリゴン→polygon
&gt;
&gt;使用例
&gt; (e) =&gt; { e.this.text = e.other + &quot;&quot; }
&gt;使用例2
&gt; (e) =&gt; { e.other +  &quot;&quot; == &quot;box&quot; ? {e.this.color = [0.5, 1, 0.5, 1]} : {e.this.color = [1, 1, 0.5, 1]} }

* e.normalの解説
e.normalは衝突面の角度に対応したcosとsinを組み合わせた配列である。
以下のコードを利用することで角度（ラジアン）に変換することができる。

&gt; Scene.my.atan2 = (y, x)=&gt;{ x == 0 ? { y &gt; 0 ? {math.pi/2} : {-math.pi/2}} : { x &gt; 0 ? {math.atan(y/x)} : { y &gt; 0 ? {math.atan(y/x) + math.pi} : {math.atan(y/x) - math.pi}}}}
&gt; Scene.my.atan2(e.normal(1), e.normal(0))

----
このページの他、[[Thyme講座]]や[[Thyme例文集]]、[[Thyme実例集]]も参考になるかもしれません。

*リファレンス
Gradyが使用できるコマンドをリストアップしてくれました(英語での説明付き)。
-[[AlgodooのThymeコマンドリスト&gt;http://www.algodoo.com/forum/viewtopic.php?f=13&amp;t=83&amp;p=1038#p1038]]
-[[Phun β5.24のコマンドリスト&gt;http://www.phunland.com/forum/viewtopic.php?id=6392]]

その他リファレンス
-[[Phun本家Wiki Thyme&gt;http://www.phunland.com/wiki/Thyme]]
-[[Algodoo本家Wiki Thyme&gt;http://www.algodoo.com/wiki/Thyme]]
-[[PhunフォーラムのThyme関連トピック一覧&gt;http://www.phunland.com/forum/viewforum.php?id=41]] ※Algodooフォーラムへの移行に伴い、凍結されました (Thyme関連トピック数 356件 / 返信数 1,924件 / 閲覧数累計 192,961 view )。
-[[AlgodooフォーラムのThyme関連トピック一覧&gt;http://www.algodoo.com/forum/viewforum.php?f=13]]    </description>
    <dc:date>2012-04-07T10:38:46+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/2.html">
    <title>メニュー</title>
    <link>http://www6.atwiki.jp/p-phun/pages/2.html</link>
    <description>
      &#039;&#039;マニュアル&#039;&#039;
-[[基本操作&gt;基本操作(β5)]]
--[[β4.22用&gt;基本操作]]
-[[メニュー解説&gt;メニュー和訳(β5)]]
--[[β4.22用&gt;メニュー和訳]]
-[[ヘルプ和訳]]
-[[README和訳]]
-[[FAQ]](よくある質問)


&#039;&#039;コンテスト&#039;&#039;
-[[Phunコン]]
-[[本家コンテスト&gt;本家Contests]]


&#039;&#039;技術情報&#039;&#039;
//-[[バージョンアップでの変更点]]
-[[Phun力学と技術]]
-[[ツール解説]]
-[[phz形式について]]
-[[phn形式について]]
-[[空気抵抗研究会]]
Thyme関連
-[[スクリプト言語Thyme&gt;Thyme]]
-[[Thyme講座]]
-[[Thyme例文集]]
-[[Thyme実例集]]


&#039;&#039;その他&#039;&#039;
-[[ニュース過去ログ]]
-[[2chスレ過去ログ]]
-[[本家フォーラムの話題]]
-[[シーン集&gt;作品集]]
-[[要望について]]
-[[リンク集&gt;Links]]
-[[phun　年表]]
-[[録画]]
-[[phun界での企業]]
----

**更新履歴
#recent(10)

----
&amp;link_editmenu(text=メニューを編集)

#right(){通算:&amp;counter(total)}
#right(){今日:&amp;counter(today)}
#right(){昨日:&amp;counter(yesterday)}    </description>
    <dc:date>2012-03-30T01:28:38+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/66.html">
    <title>Thyme講座</title>
    <link>http://www6.atwiki.jp/p-phun/pages/66.html</link>
    <description>
      #contents(,option=word)

*&amp;bold(){Thyme講座}
Thymeは初心者やプログラム経験のない方にとってはハードルが高い。思いつきではあるが、ここにThyme講座を書きなぐっていきたいと思う。&amp;br;
尚思いつきかつ、筆者も独学にちかい部分があるため、不明瞭な部分や間違い等があると予想される。&amp;br;
そのような部分を発見した場合、コメントにて指摘いただけるとありがたい。&amp;br;
&amp;br;
*なにはともあれ書き方と例文
まずスクリプトがどのようなものなのか、見ていただこう。&amp;br;

&amp;br;
物質のテキスト文章部分にシミュレーション開始からの経過時間を表示させるスクリプト
 text = { &quot;&quot; + sim.time };

&amp;br;
常に物質の色を変え続けるスクリプト
 color = { [ sim.time % 1.0 , sim.time * 0.5 % 1.0 , sim.time * 0.3 % 1.0 , 1.0 ] };
　このような１処理分の塊を「式」という。&amp;br;
式１つは「○○○ = ○○○」の形をとる。

　ただし、スクリプトメニューをよく見ると「text =」や「color =」は既に記述されている。&amp;br;
このため、１つ目を例を実際に使用したい場合は「{ &quot;&quot; + sim.time }」を「text =」項目の内容部分に記述すれば良い。

尚、各例文の最後についてある「；」は「式がここで終わり」という意味の記号である&amp;br;
１つの式のみをスクリプトメニューに記載した場合、決定した時に「;」が消えてしまうが、これはPhunの仕様である。&amp;br;
どうやら、「式の数にかかわらず、最後の；は省略する」というルールが存在しているようである。&amp;br;
この解説においては、式の数にかかわらず；を表記すると、断りを入れておく。
&amp;br;
*基礎的なあれこれ
**§いつどこでどのようにスクリプトが動くのか
Thymeスクリプトを実行出来る場所は2箇所ある。
+F11キーを押して現れるコンソール画面への直接入力
+物質を選択後、メニューの「スクリプトメニュー」内の各属性値への記述

[[スクリプト言語Thyme]]のページには、onCollide属性内以外への記述については特に述べられていないが&amp;br;
書式さえ守ればどの属性内にも直接スクリプトを記述できる。

onCollide以外の属性へ書き込む場合の注意点としては以下の２つ。
+「{ (スクリプト内容) }」の形式で書き込むこと（{ }で囲む）
+各属性ごとに決められているデータ型と、スクリプトが出力する値の型を合わせる事
どちらかの条件が満たされていない場合、書き込んだあとに決定しても編集前の状態に戻ってしまう。

----
**§値と変数
式に用いる数値や文字のことを総称して値(あたい)と言う。値には定数と変数の2種がある。
-定数とは「値が固定されているもの」であり、明確に数値が表記されているものである。
-変数とは「名前の付けられた箱」であり、その中に入っている値を変更できるものである。
以下に例として4行の計算を示し、解説をする。
|CENTER:80|100|220|c
|行番号|CENTER:内容|CENTER:説明|
|1行目|x := 3;|ｘという変数を内容「 3 」で作成|
|2行目|x = x + 4 - 5;|ｘに『 x + 4 - 5 』の計算結果を入れる|
|3行目|y := x + x;|ｙという変数を内容『 x + x 』で作成|
|4行目|y = x + y;|ｙに『 x + y 』の計算結果を入れる|

&amp;bold(){1行目}&amp;br;
 x := 3;
「ｘを３という内容で作成します」という意味の式。&amp;br;
変数を始めに作成する演算子「:=」を用いている。&amp;br;
変数には必ず初期値が必要であり、この場合は「3」である。&amp;br;

&amp;bold(){2行目}&amp;br;
 x = x + 4 - 5;
「ｘに『 x + 4 - 5 』の計算結果を入れる」という意味の式。&amp;br;
変数の値を変更する演算子「=」を用いている。&amp;br;
ｘの値は３であるため『x+4-5』は２となり、ｘの値が２に変更される。&amp;br;

&amp;bold(){3行目}&amp;br;
 y := x + x;
「ｙという変数を内容『 x + x 』で作成します」という意味の式。&amp;br;
初期値に「すでに作成済みである変数を用いた計算式」を使用しても問題ない。&amp;br;
つまりこの式は「 y := 2 + 2; 」と同義であり、ｙの初期値は４になる。&amp;br;

&amp;bold(){4行目}&amp;br;
 y = x + y;
「ｙに『 x + y 』の計算結果を入れる」という意味の式。&amp;br;
ｘは２でありｙは４であるため、この式は「ｙ＝ 2 + 4;」と同義である。&amp;br;
結果としてｙの値は６になる。&amp;br;

-注意事項
実際に変数を作成し使用する際には、変数名の前に「Scene.my.」をつけなければならない。&amp;br;
この決まりに従って上記の例を実際に使用する場合、以下のようになる&amp;br;
 Scene.my.x := 3;
 Scene.my.x = Scene.my.x + 4 - 5;
 Scene.my.y := Scene.my.x + Scene.my.x;
 Scene.my.y = Scene.my.x + Scene.my.y;
&amp;br;
----
***配列

変数の種類として「配列」がある。&amp;br;
変数は１つに対して１つの値しか持てないが、配列は複数個の値を持つことが出来る。&amp;br;
イメージとしては「１つの名前を共有する複数の箱があり、それは番号で区別される」といったものである。&amp;br;
実際に配列を使用している例を以下に示す。&amp;br;
 Scene.my.x := [ 1 , 5 , 10 , 999 , 7 ];
 Scene.my.y := Scene.my.x(0);
 Scene.my.z := Scene.my.x(2) + Scene.my.x(3);
順を追って解説していこう。&amp;br;
-1行目　ここでScene.my.xという配列を作成している。
--配列を作る際の書式は「 変数名 := [ 配列の内容 ]; 」である。&amp;br;
この配列の内容を書き表すと以下のようになる。&amp;br;
|CENTER:100|CENTER:100|CENTER:100|CENTER:100|CENTER:100|c
|scene.my.x(0)|scene.my.x(1)|scene.my.x(2)|scene.my.x(3)|scene.my.x(4)|
|1|5|10|999|7|
-2行目　変数Scene.my.yを作成し、その内容としてScene.my.xの0番目を指定している。
--配列の内容を指定する書式は「 変数名(番号) 」である。
--この際注意する点は「番号は0から始まる」ということである。つまり、Scene.my.xの中身は0～4番までの5つ存在する。
-3行目　変数Scene.my.zを作成し、その内容として「Scene.my.xの2番目と3番目を加算した値」を指定している。
--Scene.my.xの2番目は10、3番目は999であるため、Scene.my.zの値は1009となる。&amp;br;
&amp;br;

尚、配列の内容を書き換える際には注意が必要である。&amp;br;
 scene.my.x := [ 1 , 2 , 3 ];
 scene.my.x(2) = 99;
上記のスクリプトは「scene.my.x の2番目の内容を99に書き換える」ことを意図したものであるが&amp;br;
これはその意図通りには動かない。&amp;br;

配列の中身を部分的に書き換える際には、非常に面倒くさい式になるが&amp;br;
 scene.my.x := [ 1 , 2 , 3 ];
 scene.my.x = [ scene.my.x(0) , scene.my.x(1) , 99 ];
と、このように書くしかない。&amp;br;
&amp;br;
----
**§データ型
面倒な話だが、これはどうしても避けて通れない

スクリプトで扱う値は４つに分類されている。
分類のされ方は以下のとおり
|CENTER:|||c
|型名|CENTER:内容|CENTER:例|
|文字列型|1文字以上の文字列| &quot;&quot;　&quot;A&quot;　 &quot;B&quot;　&quot;AABB&quot;　&quot;あいうえお&quot;　|
|浮動小数点型|小数点以下を含む数字| 0.0　1.5　1.0001　10000.0 |
|整数型|小数点以下がない数字| 0　1　100　10000|
|ブール型|正か偽を表現| true　 false |
-注意するべきは、整数型と浮動小数点型の違いである。
-「0」は整数だが「0.0」は浮動小数点となる。同様に「1」は整数だが「1.0」は浮動小数点である。
-文字列型の「&quot;&quot;」は「0文字のテキストデータ」を表している。

以下に物質のスクリプトメニュー内の各項目について型を示す。
|CENTER:100|CENTER:200|c
|項目名|データ型|
|airFrictionrMult =|浮動小数点|
|attraction =|浮動小数点|
|collideSet =|整数|
|collideWater =|ブール|
|color =|浮動小数点(配列、要素数４)|
|controllerAcc =|浮動小数点|
|controllerInvertX =|ブール|
|controllerInvertY =|ブール|
|controllerReverseXY =|ブール|
|density =|浮動小数点|
|drawBorder =|ブール|
|friction =|浮動小数点|
|heteroCollide =|ブール|
|immortal =|ブール|
|killer =|ブール|
|onCollide =|関数|
|opaqueBorders =|ブール|
|restitution =|浮動小数点|
|ruler =|ブール|
|text =|文字列|
|textColor =|浮動小数点(配列、要素数４)|
|textScale|浮動小数点|
|texture|文字列|
|textureMatrix|浮動小数点(配列、要素数９)|
----
***式の処理順序、データ型の優先順位
式には細かな処理の順番がある。&amp;br;
たとえば「 x = 1 + 2 + 3 + 4 + 5; 」という式は&amp;br;
「 x = (((( 1 + 2) + 3 ) + 4 ) + 5 ); 」この括弧のもっとも内側から順に処理される。&amp;br;

型にも優先順位があり、以下のようになっている。&amp;br;
-文字列型　＞　浮動小数点型　＞　整数型&amp;br;
-文字列型　＞　ブール型&amp;br;
これは、「異なる型の値同士を処理する際に、結果を何型にするか」というものであり&amp;br;
下位のものと上位のものを同じ式で扱う場合、式の結果は上位の型になる。&amp;br;
例として以下のさまざまな式について、計算結果を見ていこう。&amp;br;
&amp;br;
|CENTER:200|CENTER:100|CENTER:100|c
|式|xに入る値|結果のデータ型|
| x = 1 + 2 + 3; | 6 | 整数 |
| x = 1 + 2 + 3.0; | 6.0 | 浮動小数点 |
整数のみの式は結果も整数。浮動小数点型が１つでも含まれる場合、浮動小数点になる。&amp;br;
&amp;br;
|CENTER:200|CENTER:100|CENTER:100|c
|式|xに入る値|結果のデータ型|
| x = 1 + &quot;A&quot;;| &quot;1A&quot; | 文字列 |
| x = 1.0 + &quot;A&quot;; | &quot;1A&quot; | 文字列 |
| x = &quot;A&quot; + 1.0; | &quot;A1&quot; | 文字列 |
文字列と整数、浮動小数点の演算は、結果文字列となる。&amp;br;
尚この際に1.0や2.0などの小数点以下が0の浮動小数点については、小数点以下は省略される。&amp;br;
&amp;br;
|CENTER:200|CENTER:100|CENTER:100|c
|式|xに入る値|結果のデータ型|
| x = 1 + 2 + 3 + &quot;A&quot;; | &quot;6A&quot; | 文字列 |
| x = 1 + &quot;A&quot; + 2 + 3; | &quot;1A23&quot; | 文字列 |
上の式だと、「1+2+3」が処理されるまでは整数の足し算であり、「+&quot;A&quot;」で最後に文字列型になる。&amp;br;
下の式では、最初の「1+&quot;A&quot;」の結果が「&quot;1A&quot;(文字列型)」となり、それ以降の演算も「文字列型＋整数型」となるため結果が「&quot;1A23&quot;」となる。&amp;br;
&amp;br;
|CENTER:200|CENTER:100|CENTER:100|c
|式|xに入る値|結果のデータ型|
| x = 1 + 2.2 + &quot;A&quot; + &quot;B&quot;; | &quot;3.2AB&quot; | 文字列 |
| x = 1 + 2.2 + &quot;A&quot; + true; | &quot;3.2Atrue&quot; | 文字列 |
上の式は特に解説の必要はないと思われる。&amp;br;
下の式は、「1+2.2+&quot;A&quot;」が「&quot;3.2A&quot;」となり、その後「&quot;3.2A&quot;+ true」つまり「文字列型＋ブール型」の演算となる。&amp;br;
ブール型の値「true」は文字列と演算する際には、そのままの文字「&quot;true&quot;」として扱われるため&amp;br;
結果として「&quot;3.2A&quot; + &quot;true&quot;」と同義である。したがって結果は「&quot;3.2Atrue&quot;」となる。&amp;br;
&amp;br;
|CENTER:200|CENTER:100|CENTER:100|c
|式|xに入る値|結果のデータ型|
| x = 1 + true; | (演算不可) | - |
| x = 1 + &quot;&quot; + true; | &quot;1ture&quot; | 文字列 |
| x = true + 1.0; | (演算不可) | - |
| x = true + &quot;&quot; + 1.0; | &quot;true1&quot; | 文字列 |
整数型とブール型の演算については演算不可となりエラーが起きる。浮動小数点型も同じく。&amp;br;
ただし、整数と文字列型、文字列型とブール型は演算できるため、途中に「&quot;&quot;(空の文字列)」をはさめば演算が行える。&amp;br;
&amp;br;
|CENTER:200|CENTER:100|CENTER:100|c
| x = true + true + &quot;&quot; + 1 | (演算不可) | - |
| x = true + &quot;&quot; + true + 1 | &quot;truetrue1&quot; | 文字列 |
ブール型同士の四則演算も演算不可である。&amp;br;
ただしこれも間に空文字列を挟むことにより演算は行える。&amp;br;

----
**§演算子
演算に使用する記号を総称して「演算子」と呼ぶ。
-演算子の左辺と右辺には値がくる(三項演算子は除外)
-演算子は総じて演算結果である値を残す
要は「+」や「-」などといった計算記号のことである。&amp;br;
以下に演算子を分類ごとに紹介する。&amp;br;

***数値を扱う場合
-算術演算子
|CENTER:80|CENTER:80|CENTER:150|CENTER:150|c
|演算子|意味|例文|演算結果|
|+|加算|3 + 4|7|
|~|~|3 + 4.0|7.0|
|-|減算|5 - 2|3|
|~|~|5 - 2.0|3.0|
|*|乗算|4 * 5|20|
|~|~|4 * 5.0|20.0|
|/|除算|8 / 4|2|
|~|~|8 / 5|1|
|~|~|8 / 5.0|1.6|
|%|剰余|8 % 5|3|
|~|~|8 % 5.0|3.0|
|^|累乗|2 ^ 3|8|
|~|~|10 ^ 3|1000|
-基本的には浮動小数点と整数の演算は、結果が浮動小数点になることに気をつけておけばよい。&amp;br;
-除算の場合は、割る数が整数ならば演算結果も整数だが、割る数が浮動小数点ならば小数点以下も計算される。&amp;br;
-剰余とは割り算の余りのことである。浮動小数点を含む計算でも問題なく余りが求められる。&amp;br;
&amp;br;
-関係演算子
|CENTER:80|CENTER:80|CENTER:150|CENTER:150|c
|演算子|意味|例文|演算結果|
|==|等しい|1 == 1|true|
|~|~|1 == 2|false|
|!=|等しくない|1 != 1|false|
|~|~|1 != 2|true|
| &gt;|大なり|1 &gt; 2|false|
|~|~|2 &gt; 1|true|
|&lt;|小なり|1 &lt; 2|true|
|~|~|2 &lt; 1|false|
|&gt;=|以上|1 &gt;= 1|true|
|~|~|1 &gt;= 2|false|
|&lt;=|以下|1 &lt;= 1|true|
|~|~|2 &lt;= 1|false|
&amp;br;
***文字列を扱う場合
|CENTER:80|CENTER:80|CENTER:150|CENTER:150|c
|演算子|意味|例文|演算結果|
|+|加算|&quot;ABC&quot; + &quot;DE&quot;|&quot;ABCDE&quot;|
|==|等しい|&quot;AB&quot; == &quot;AB&quot;|true|
|!=|等しくない|&quot;AB&quot; != &quot;ab&quot;|true|
-Thymeで文字列に対して行うことがある演算はこの３つしかないと思われる
-大なり小なりの比較演算なども行えるが、行うことはないであろう
-尚、加算以外の算術演算子は全てエラーとなる
&amp;br;
***ブール限定の演算
細かい話は抜きにして「ブール型にのみ用いられる演算でありその結果もすべてブール型である」と覚えておけば良い。&amp;br;
true＝真 か false＝偽 を判断する際に用いる。&amp;br;
以下の表が、その演算内容のすべてである。&amp;br;
-論理演算子
|CENTER:80|CENTER:80|CENTER:150|CENTER:150|c
|演算子|意味|例文|演算結果|
|&amp;&amp;|論理積(and)|true &amp;&amp; true|true|
|~|~|true &amp;&amp; false|false|
|~|~|false &amp;&amp; true|false|
|~|~|false &amp;&amp; false|false|
|｜｜|論理和(or)|true ｜｜ true|true|
|~|~|true ｜｜ false|true|
|~|~|false ｜｜ true|true|
|~|~|false｜｜false|false|
|!|否定(not)|!true|false|
|~|~|!false|true|
-wikiの書式上の問題で論理和の演算子を全角文字で表記している。実際には半角(||)である。&amp;br;
-論理積(and)は「両辺共にtrueならばtrue、それ以外はfalse」
-論理和(or)は「両辺どちらかがtrueならばtrue、共にfalseの場合のみfalse」
-否定(not)は値を一つしか対象とせず「真偽値を逆転させる」
&amp;br;
***配列に対する演算
-演算が要素ごとに行われるもの
|CENTER:80|CENTER:80|CENTER:280|CENTER:250|c
|演算子|意味|例文|演算結果|
|+|加算|[1,2,3] + [1,3,5]|[2,5,8]|
|-|減算|[4,5,6] - [1,2,3]|[3,3,3]|
|*|乗算|[1,2,3] * [2,3,4]|[2,6,12]|
|/|除算|[12,12,12] / [2,3,4]|[6,4,3]|
|&amp;&amp;|論理積|[true,true,false] &amp;&amp; [true,false,true]|[true,false,false]|
|｜｜|論理和|[true,true,false]｜｜[true,false,false]|[true,true,false]|
-演算子の左辺の0番目と右辺の0番目、同様に1番と1番というように、それぞれの要素同士で演算が行われる。
-演算子の両辺が同じ要素数でなければエラーとなり、演算は行われない。
&amp;br;
-演算は配列全体で行われるもの
|CENTER:80|CENTER:80|CENTER:280|CENTER:250|c
|演算子|意味|例文|演算結果|
|*|乗算|2 * [1,2,3]|[2,4,6]|
|*|~|[2,3,4] * 2|[4,6,8]|
|/|除算|2 / [1,2,3]|(error)|
|/|~|[2,4,8] / 2|[1,2,3]|
|==|等しい|[1,2,3] == [1,2,3]|true|
|!=|等しくない|[1,2,3] != [1,2,3]|false|
|++|結合|[1,2,3] ++ [4,5,6]|[1,2,3,4,5,6]|
-乗算については、前後関係に問わず演算可能である。
-除算は、割られる数が配列で割る数が整数もしくは浮動小数点ならば演算が可能である。
-等しいか等しくないかの判断は全体で行われる。ひとつでも要素の内容が違っていれば不等号扱いである。
-結合演算子は両辺の要素全てを左辺→右辺の順に持つひとつの配列を結果とする。
&amp;br;
----
**§その他、覚えておくべきこと
----
***使用できる変数について
スクリプト内で使用できる変数は「そのスクリプトがどこに書かれているものか」によって変わる。&amp;br;
それらを３つに分類し、それぞれについて使用可能な変数をまとめたものが以下。&amp;br;
+F11キーで現れるコンソール画面に書き込んだ場合
--[[スクリプト言語Thyme&gt;Thyme]]のページに記載のある「App.～Sim.」までの全て
---実際に使用する際には「FileInfo.author」や「math.pi」といった表記で用いる
---表の「変数型」の部分については英語表記なので以下の表を参照
|表記|意味|
|decimal|十進数|
|integer|整数|
|value|値|
|positive|正の(0より大きい)|
|true or false|真か偽|
|function|関数(※後述参照)|
|array of |配列である|
|string|文字列|
|constant|定数|
|sub-group|内部に変数や関数を持つグループ名|
|Read only|読み取りのみ可能(値を変更不可)|
---※説明文部分については、各自で翻訳してくださいな。
---※使用頻度の高そうなものについては、応用編にて紹介と解説を行うので、そちらを参照してください
+物質のスクリプトメニューに書き込んだ場合(onCollide以外)
--上記コンソール画面で使用できる変数全てを使用可能
--その物質自身のスクリプトメニュー内の全ての項目をそのまま変数として使用可能。
---表記は項目名をそのまま「density」や「text」と、項目名自体が変数名となる。
+物質のスクリプトメニュー内onCollide部分に書き込んだ場合
--上記の全ての変数を使用可能
--それに加えて、衝突した相手の変数を使用可能
---表記は「e.other.text」や「e.other.color」など、項目名の前に「e.other.」を付け足したものである。
※[[スクリプト言語Thyme&gt;Thyme]]ページの「衝突した相手の物質のタイプを得る」と「e.normalの解説」に興味深い話が載っている&amp;br;
今は理解できないという方でも、講座を最後まで理解したあとで読んでみるべし&amp;br;
&amp;br;
----
*実用的なお話へ
**§条件分岐構造と三項演算子
これ抜きには複雑なThymeスクリプトなど組めない、と言っても過言ではない。&amp;br;
&amp;br;
----
***条件分岐構造
ある変数Aがあり、Aが1ならば処理１を実行し、Aが2なら処理2を実行する。端的に言うとそういうことである。&amp;br;
何はともあれ実例を見ていただきたい&amp;br;
 scene.my.x := 2;
 scene.my.y := ( scene.my.x == 3 )?(  scene.my.x + 3 ):( scene.my.x + 10 );
1行目は特に解説の必要はないと思われる。&amp;br;
2行目はscene.my.y変数を作成しているのだが、その中身に条件分岐を用いている。&amp;br;
2行目の「:=」以降の部分が条件分岐構造になっており&amp;br;
「 『scene.my.x==3』が真ならば『scene.my.x + 3』、そうでなければ『scene.my.x + 10』 」という意味である。&amp;br;
この場合 scene.my.x は 2 なので、『scene.my.x + 10』が選ばれ、scene.my.yの値は12となる。&amp;br;
&amp;br;
----
***三項演算子
先ほどの例で条件分岐のために用いた演算子を「三項演算子」と言う。&amp;br;
使用方法は以下のとおりである。&amp;br;
 判定条件 ? 条件が真の場合の処理内容 : 条件が偽の場合の処理内容
-判定条件の部分は関係演算、もしくは論理演算などを用いてブール型の値でなければならない。&amp;br;
&amp;br;
-処理内容部分は1文であるならば；は省略可能。&amp;br;
-処理内容が複数行ある場合は、それらを｛｝で囲む必要がある。&amp;br;
 (scene.my.x == 2) ? scene.my.y = 5; scene.my.z = 3; : scene.my.y = 1; scene.my.z = 10; ;　(×エラー)
 
 (scene.my.x == 2) ?{ scene.my.y = 5; scene.my.z = 3 }:{ scene.my.y = 1; scene.my.z = 10 };　(○正常動作)
&amp;br;
条件部分で複雑な式を書き、細かな条件判定をすることも可能。&amp;br;
 onCollide = (e) =&gt;{ e.this.density = (( e.other.collideSet == 2 )&amp;&amp;( e.other.density == 100.0 ))?{ 50.0 }:{ 2.0 }; }
条件分岐部分は「『衝突相手の衝突判定がBのみであり、かつ密度が100.0』ならば 50.0 、違うならば 2.0 」という意味である。&amp;br;
それを e.this.density つまりは自分自身の密度へ書き込んでいる。&amp;br;
まとめると「衝突相手の衝突判定がBであり密度が100.0ならば、自分自身が密度50.0になり、違うならば2.0になる」&amp;br;
という動作をするスクリプトである。&amp;br;
&amp;br;
----
**§関数
----
***関数とは何か
さて、だいぶ小難しい話になるところなので、腰を落ち着けてじっくりと読んでいただきたい。&amp;br;
「関数」といきなり言っても通じないであろうから、まずPhun抜きにして以下の事例をごらんいただこう。&amp;br;
+あなたは書類の整理をしていて、一人の友達に手伝ってもらうことになった。
+あなたは友達に2種類の仕事を頼みたい。そのどちらも、かなりの回数あり、順不同に頼みたい。
+2種類の仕事をＡ、Ｂと呼び名をつける。
+そしてＡのときはこういう物を渡すから、こう処理して欲しい。Ｂのときはこう。とそれぞれ内容を定め教える。
+それ以降はあなたは友達に「Ａだよ、はいこれ」と名称と共に物を渡すだけ。
+ひとつの仕事が終わるたび友達はあなたに「できたよ、はいどうぞ」と完成書類を返してくれる。
実に効率的でよろしい話である。&amp;br;
&amp;br;
実は上記の話でＡ、Ｂと名づけたものこそが「関数」なのだ。&amp;br;
つまり「あらかじめ手順と渡すものを決めておくことで、規定された処理を行ってくれるもの」なのである。&amp;br;
&amp;br;
関数を実際に見る前に「引数」と「戻り値」というものについて、上記の話にからめて知っていただこう。&amp;br;

「引数(ひきすう)」とは「Ａを頼む際には大きな書類2枚と小さな書類1枚を渡すよ」といった場合の、その書類である。&amp;br;
関数を実行する際には「0個以上の引数」が必要である。これは関数を作成する際に取り決める。&amp;br;

「戻り値(もどりち)」とは「仕事が終わったら、その完成品を渡してね」といった場合の、その完成品である。&amp;br;
関数は「必ず1つの戻り値」を持つ。&amp;br;
&amp;br;
----
***作成と使用
それでは、実際に関数を作成し、使用する例を見てみよう&amp;br;
 Scene.my.func1 := (var) =&gt; { var % 2 == 0 ? true : false };
 Scene.my.x = Scene.my.func1(2);
1行目で関数を製作し、2行目で使用している。&amp;br;
関数の内容としては「引数が偶数ならばtrue、奇数ならfalseを戻り値とする」である。&amp;br;
つまりは偶数か奇数かを判定するための関数だ。&amp;br;
&amp;br;
関数の書式は以下のとおりである&amp;br;
 関数名 = ( 引数名 ) =&gt; { 処理内容 }
-関数名はもちろん「Scene.my.」をつけることを忘れてはならない
-引数は「0個以上」と定められているので、引数が必要ない関数ならば何も表記しなくてよい。
--引数は2つ以上でも構わなく、その場合は「,」で区切って宣言する。
-処理内容も2行以上でも構わない。その際はきっちり1行ごとに「;」で区切ること。
&amp;br;
尚、関数の作成を行う際にはF11キーで現れるコンソール画面から作成する必要がある。&amp;br;
ちなみに、たとえその関数がonCollide内に書かれていても「e.other.○○」や「e.this.○○」などの変数は使用できない。&amp;br;
関数内で使用したい値については基本的に引数で渡してやらねばならない。&amp;br;
ただし、Phun自体が持っている変数については使用することが出来る。(「Sim.○○」や「App.○○」など)&amp;br;
&amp;br;
以下にいくつかの関数の作成例を示す&amp;br;
&amp;br;
-三角形の高さと幅を引数として渡すと、その面積を求める関数 (引数が2つある関数)
 ◇関数
 　　scene.my.triangle := ( width , height ) =&gt; { width * height * 0.5 };
 
 ◇使用例
 　　scene.my.x = scene.my.triangle( 3.0 , 5.0 );
　　scene.my.x には 3.0 * 5.0 * 0.5 の演算結果 7.5 が入る。&amp;br;
&amp;br;
-シミュレーション経過時間0.5秒ごとに戻り値がtrueとfalseで入れ替わる関数 (引数を持たない関数)
 ◇関数
 　　scene.my.blink := () =&gt; { sim.time % 1.0 &gt;= 0.5 ? true : false };
 
 ◇使用例
 onCollide = (e) =&gt;{
 　　text = { &quot;&quot; + ( scene.my.blink ? &quot;Yes&quot; : &quot;No&quot; ) };
 }
　　書かれた物質のtext属性値が0.5秒ごとに &quot;Yes&quot; と &quot;No&quot; 交互に変わる。&amp;br;
&amp;br;
----
***用意されている関数
あらかじめPhunのシステム上に作成されていて、使用可能な関数はいくつもある。&amp;br;
かなりの量であるが、実際に使用する可能性のあるものは限られる。&amp;br;
使用頻度の高い関数をいくつか書き留めておこう。&amp;br;
&amp;br;
-数学関数
|CENTER:80|CENTER:180|CENTER:180|c
|関数名|引数|戻り値|
|math.asin(x)|浮動小数点型|逆三角関数 arcsin(x)の値|
|math.acos(x)|浮動小数点型|逆三角関数 arccos(x)の値|
|math.atan(x)|浮動小数点型|逆三角関数 arctan(x)の値|
|math.sin(x)|浮動小数点型、単位は[rad]|三角関数 sin(x)の値|
|math.cos(x)|浮動小数点型、単位は[rad]|三角関数 cos(x)の値|
|math.tan(x)|浮動小数点型、単位は[rad]|三角関数 tan(x)の値|

-Scene属関数(主に物質の生成)
|CENTER:140|CENTER:80|CENTER:80|c
|関数名|引数|戻り値|
|scene.addBox{ x }|(後述)|&quot;box&quot;|
|scene.addCircle{ x }|(後述)|&quot;circle&quot;|
|scene.addFixjoint{ x }|(後述)|&quot;fixjoint&quot;|
|scene.addHinge{ x }|(後述)|&quot;hinge&quot;|
|scene.addPen{ x }|(後述)|&quot;pen&quot;|
|scene.addPlane{ x }|(後述)|&quot;plane&quot;|
|scene.addPolygon{ x }|(後述)|&quot;polygon&quot;|
|scene.addSpring{ x }|(後述)|&quot;spring&quot;|
|scene.addWater{ x }|(後述)|&quot;water&quot;|
|scene.EraseWater|(なし)|(なし)|
add****{}タイプの関数の引数については、[[phn形状について]]を参照にしてほしい。&amp;br;
というだけも味気ないので、２つの例を以下に挙げておく&amp;br;
&amp;br;
-位置[10.0,25.5]に、幅15.0 高さ20.0 密度10.0のboxを追加するスクリプト
 scene.addBox{ pos = [ 10.0 , 25.5 ]; size = [ 15.0 , 20.0 ]; density = 10.0 };
&amp;br;
-横長の長方形に、二つの丸をヒンジで接続するスクリプト
 scene.addBox{ pos = [ 0.0 , 0.0 ]; size = [ 6.0 , 2.0 ]; geomID = 100; };
 scene.addCircle{ pos = [ 2.0 , -0.5 ]; radius = 0.8; geomID = 101 };
 scene.addCircle{ pos = [-2.0 , -0.5 ]; radius = 0.8; geomID = 102 };
 scene.addHinge{ geom0 = 100; geom0pos = [ 2.0 , -0.5 ]; geom1 = 101; geom1pos = [ 0.0 , 0.0 ] };
 scene.addHinge{ geom0 = 100; geom0pos = [-2.0 , -0.5 ]; geom1 = 102; geom1pos = [ 0.0 , 0.0 ] };
&amp;br;

※追記
Thymeで物体を発生させる場合、速度と角速度も指定できる。両方共に「じょうほう」メニューで表示されている単位（速度　m/s, 角速度　rad/s）で指定する。
-ｘ速度20ｍ/ｓ、y速度10m/s、角速度30rad/sの円を発生させるスクリプト
 scene.addBox({vel := [20.0, 10.0]; angVel := 30});
&amp;br
----
**§配列の応用
配列の解説部分で作った配列のような1列しかない配列は、1次元配列と言う。&amp;br;
1次元という呼び名があるからには、2次元配列ももちろん存在する。&amp;br;
作成の仕方と使用の仕方を以下に示す。&amp;br;
 scene.my.x := [ [1,2,3] , [4,5,6] ];
これが2行3列の2次元配列である。&amp;br;
配列の0番目の値として「要素３の配列」が入っており、1番目の値にも「要素３の配列」が入っている。&amp;br;

これを使用する際には以下のように書く&amp;br;
 scene.my.y := scene.my.x(0)(1);
scene.my.xの0行目の1番目を指定している。&amp;br;この時scene.my.yに入る値は「2」である。&amp;br;

scene.my.xの内容を視覚的にわかりやすく表にまとめると、以下のようになる。&amp;br;
-scene.my.x(A)(B)
|CENTER:50|CENTER:50|CENTER:50|CENTER:50|c
|＼|B=0|B=1|B=2|
|A=0|1|2|3|
|A=1|4|5|6|

ちなみに、2次元配列を作る際に、列の値は必ずしも全て揃える必要はない。&amp;br;
更に、データ型はそれぞれの要素ごとに記録されるため、揃える必要はない。(これは1次元配列でも同じく)&amp;br;
つまり、以下のような配列も生成可能である。&amp;br;
 scene.my.x := [ [ 11 , 12 , 13 ],[ &quot;welcome&quot; , 2 , &quot;phun&quot;],[ 21 , 22 , 23 , 24 , 25 ] ];
 scene.my.y := [ [ &quot;one&quot; , 2 , &quot;three&quot; ],&quot;welcome&quot;,[ true , &quot;or&quot; , false ],[ &quot;Let&#039;s&quot; , &quot;phun&quot; ] ];
それぞれ内容は以下のようになる。

-scene.my.x(A)(B)
|CENTER:70|CENTER:100|CENTER:100|CENTER:100|CENTER:100|CENTER:100|c
|＼|B=0|B=1|B=2|B=3|B=4|
|A=0|11|12|13|(error)|(error)|
|A=1|&quot;welcome&quot;|2|&quot;phun&quot;|(error)|(error)|
|A=2|21|22|23|24|25|

-scene.my.y(A)(B)
|CENTER:70|CENTER:100|CENTER:100|CENTER:100|c
|＼|B=0|B=1|B=2|
|A=0|&quot;one&quot;|2|&quot;three&quot;|
|A=1|(error)|(error)|(error)|
|A=2|true|&quot;or&quot;|false|
|A=3|&quot;Let&#039;s&quot;|&quot;phun&quot;|error|

-scene.my.x(1)(4) や scene.my.y(3)(2) など、表記が(error)のものは使用することが出来ない。
-scene.my.y の A=1の場合は、そこだけ1次元配列のままなので、&quot;welcome&quot; を参照したければ「scene.my.y(1)」と表記する。

&amp;br;
----
*大きな間違いの訂正とお詫び
　講座の書き出し時点で「ThymeスクリプトをonCollide属性以外にも書き込み可能だ」と書きましたが間違いであることが分かりました。&amp;br;
書いたそのときは動きはすれど、Phunを終了させたりファイルに保存する際に、onCollide以外の属性に書いたスクリプトは保存されない&amp;br;
ことが多いという事実が判明しました。&amp;br;
　紛らわしい文章を載せてしまい、まことに申し訳ありませんでした。(現在は訂正済み)　　　　　　　　　　2010/08/23 08:08 作成主
----
*コメント欄
#pcomment(7)    </description>
    <dc:date>2012-03-26T21:36:52+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/73.html">
    <title>ニュース過去ログ</title>
    <link>http://www6.atwiki.jp/p-phun/pages/73.html</link>
    <description>
      トップページの「ニュース」を、溜まり過ぎた頃に手動でこっちに移そうと思います。
//管理人が勝手にやるつもりです

-2012.03.14 - Algodoo 2.0.2 b11 が公開されました。
-2012.03.02 - Algodoo 2.0.2 b10 が公開されました。
-2012.02.28 - Algodoo 2.0.2 b9 が公開されました。
-2012.02.24 - Algodoo 2.0.2 b8 が公開されました。
-2012.02.10 - Algodoo 2.0.2 b7 が公開されました。
-2012.01.31 - Algodoo 2.0.2 b6 が公開されました。
-2012.01.27 - Algodoo 2.0.2 b5 が公開されました。
-2012.01.24 - Algodoo 2.0.2 b4 が公開されました。
-2012.01.10 - Algodoo 2.0.2 b3 が公開されました。
-2012.01.04 - Algodoo 2.0.2 b2 が公開されました。
-2011.12.29 - Algodoo 2.0.2 b1 が公開されました。

-2011.12.20 - Algodoo 2.0.1 beta15 が公開されました。
-2011.12.16 - Algodoo 2.0.1 beta14 が公開されました。
-2011.12.14 - Algodoo 2.0.1 beta13 が公開されました。
-2011.12.08 - Algodoo 2.0.1 beta12 が公開されました。
-2011.12.06 - Algodoo 2.0.1 beta11 が公開されました。
-2011.11.28 - Algodoo 2.0.1 beta10 が公開されました。
-2011.11.25 - Algodoo 2.0.1 beta9 が公開されました。
-2011.11.23 - Algodoo 2.0.1 beta8 が公開されました。
-2011.11.18 - Algodoo 2.0.1 beta7 が公開されました。
-2011.11.10 - Algodoo 2.0.1 beta6 が公開されました。
-2011.11.08 - Algodoo 2.0.1 beta5 が公開されました。
-2011.11.04 - Algodoo 2.0.1 beta4 が公開されました。
-2011.11.02 - Algodoo 2.0.1 beta3 が公開されました。
-2011.10.30 - Algodoo 2.0.1 beta2 が公開されました。
-2011.10.27 - Algodoo 2.0.1 beta が公開されました。

-2011.10.18 - Algodoo 2.0.0 が公開されました。
 
-2011.10.14 - Algodoo 2.0.0 RC5 (リリース候補版5)が公開されました。
-2011.10.11 - Algodoo 2.0.0 RC4 (リリース候補版4)が公開されました。
-2011.10.07 - Algodoo 2.0.0 RC3 (リリース候補版3)が公開されました。
-2011.10.06 - Algodoo 2.0.0 RC2 (リリース候補版2)が公開されました。
-2011.09.23 - Algodoo 2.0.0 RC1 (リリース候補版1)が公開されました。※対象：Algodoo購入者のみ

-2011.09.07 - Algodoo 2.0 のβ版として、Algodoo v1.9.9.9bが公開されました。
-2011.08.17 - Algodoo 2.0 のβ版として、Algodoo v1.9.9bが公開されました。
-2011.07.22 - Algodoo 2.0 のβ版として、Algodoo v1.9.8bが公開されました。
-2011.06.25 - Algodoo 2.0 のβ版として、Algodoo v1.9.7bが公開されました。2011年9月1日まで無料で(ライセンス登録せずに)遊べます。
-2011.06.02 - Algodoo v1.9.5bが公開されました。現在の安定版であるAlgodoo v1.8.5から大きな変更点を含むβ版なので、比較的不具合が多いと考えられます。

-2011/04/18 2chのスレのアドレスが変りました。 [[【Physical】PhunスレPart9【Sandbox】&gt;http://yuzuru.2ch.net/test/read.cgi/game/1303060025/l50]]

-2011/03/04 64bit Linux版のAlgodoo v1.8.5が公開されました。
&gt;現在利用可能なOSは、 Windows版, Mac版, Linuxです。
&gt;ダウンロードは、[[公式のダウンロードページ&gt;http://www.algodoo.com/wiki/Download/ja]]から。
&gt;上書きインストールにご注意ください。
&gt;変更点に関して詳しくは、[[変更履歴の日本語訳&gt;http://www.algodoo.com/wiki/Changes/ja#Algodoo_1.8.5]]を御覧下さい。
-2011/02/12 Mac OS版のAlgodoo v1.8.5が公開されました。
-2010/12/16 Algodoo v1.8.5が公開されました!
-2010/12/01 Algodoo v1.8.4(β)が公開されました!
-2010/11/26 Algodoo v1.8.3(β)が公開されました!
-2010/11/04 Algodoo v1.8.2(β)が公開されました!

-2010/09/16 Algodoo v1.8.0が公開されました! 約半年ぶりの正式リリースです(β版を除く)。
&gt;ダウンロードは[[公式のダウンロードページ&gt;http://www.algodoo.com/wiki/Download/ja]]から。※ Linux 64bit版用の最新安定版はv1.7.1です。
&gt;（上書きインストールにご注意を。）
&gt;変更点に関して詳しくは、[[変更履歴の日本語訳&gt;http://www.algodoo.com/wiki/Changes/ja#Algodoo_1.8.0]]を御覧下さい。

-2010/09/06 Algodoo v1.7.8(β)のMac OS版も公開されました!
-2010/09/03 Algodoo v1.7.8(β)がリリースされました!
-2010/09/01 Algodoo v1.7.7(β)がリリースされました。
-2010/08/20 Algodoo v1.7.6(β)がリリースされました。
-2010/08/13 Algodoo v1.7.5(β)がリリースされました。
-2chのスレのアドレスが変りました。 [[【Physical】PhunスレPart8【Sandbox】&gt;http://yuzuru.2ch.net/test/read.cgi/game/1274956217/l50]]
-2010/06/18 Algodoo v1.7.4(β)がリリースされました。
-2010/06/14 Algodoo v1.7.3(β)がリリースされました。
-2010/06/09 Algodoo v1.7.2(β)がリリースされました。

-2010/05/27 2chのスレッドのアドレスが変わりました。[[次スレ&gt;http://schiphol.2ch.net/test/read.cgi/game/1274956217/]].

-2010/03/26 Algodoo v1.7.1 がリリースされました。
-2010/03/22 Algodoo v1.7.0 がリリースされました。

-2009/09/01 - Algodoo が公開されました。[[公式サイトHome/ja&gt;http://www.algodoo.com/wiki/Home/ja]]

-2009/08/18 - 2chのスレッドのアドレスが変わりました。[[次スレ&gt;http://schiphol.2ch.net/test/read.cgi/game/1250521264/]].
-2009/05/24 - 第5回Phunコンテストを開催しました。
-2009/03/31 - Phun β5.28が公開されました。更新履歴は[[README和訳]]をご覧ください。
|&amp;bold(){注意}：&amp;br()β5以降でもβ4.22以前のファイルを開くことができますが、β3.5→β4.22のバージョンアップのときと同様、完全な互換性が保障されているわけではないので、動作が変わってしまうのが嫌な場合は、β4.22も残しておきましょう。|
ダウンロードは以下のアドレスから。
※以前のPhunを残しておきたい場合は、インストールする前にバックアップをとりましょう！
[[http://www.phunland.com/wiki/Download/ja]]

-09/03/30 - Phun β5.27が公開されました。
-09/03/24 - Phun β5.26が公開されました。
-09/03/21 - Phun β5.25のシーンデータに対応した[[PhunBox2&gt;http://www.phunland.com/phunbox/jp/]]が日本語に対応しました。
-09/03/19 - Phun β5.25が公開されました！実に7ヵ月ぶりのバージョンアップです。

wiki編集者の方へ(管理人より)
　「基本操作」「メニュー解説」ページは、ベータ5用に新しくページを作成してください。
　GUIなどが大幅に変更されているので、現在の「基本操作」「メニュー解説」ページは、旧バージョン使用者用として残します。
　また、ベータ5の変更点などをまとめたページを一時的に作ろうと思います。

//-09/03/14 - 3月19日(木)にPhun β5 が公開されます![[詳しくはこちら&gt;http://www6.atwiki.jp/p-phun/pages/33.html#id_c24a726b]]
//-09/03/03 - 長らく更新の止まっていたフリーのβ版が更新されそうです。[[詳しくはこちら&gt;http://www6.atwiki.jp/p-phun/pages/33.html#id_7e6fdad6]]
// ニュース欄を勝手に使用させていただきました。&gt;p-phun管理人様
//-08/10/07 - 新しい2chスレ(part5にあたる)が立ちました。[[【Physical】Phunスレ【Sandbox】&gt;http://schiphol.2ch.net/test/read.cgi/game/1223387660/]]
//-08/09/12 - 2chスレのアドレスが板の移転で変わりました。新しいアドレスは[[http://schiphol.2ch.net/test/read.cgi/game/1216662581/]]です。
//-08/10/07 - 新しい2chスレ(part5にあたる)が立ちました。[[【Physical】Phunスレ【Sandbox】&gt;http://schiphol.2ch.net/test/read.cgi/game/1223387660/]]
-08/09/11 - トップページにこのニュースコーナーを作りました。新バージョン･新スレ･Phunコンその他の告知に使用します。
-08/09/11 - p-phun＠ウィキの管理人が変わりました。これからもよろしくお願いします。    </description>
    <dc:date>2012-03-14T23:31:38+09:00</dc:date>
  </item>
    <item rdf:about="http://www6.atwiki.jp/p-phun/pages/77.html">
    <title>Phunコン/第10回</title>
    <link>http://www6.atwiki.jp/p-phun/pages/77.html</link>
    <description>
      #right(){このページ(&amp;this_page())の最終更新日時:&amp;update(j)}
目次
#contents()

如月杯2012
斜面を滑走し、ジャンプします。

*期間
2012年 2月4日(土)-19日(日) &amp;new2(2012/02/04 00:00:00,time=360,show=開催中!,color=red)

*シーンデータ
下記のリンク先(Algobox.com)からコンテスト用のシーンをダウンロードしてください。
[[如月杯2012 ステージ&gt;http://www.algodoo.com/algobox/details.php?id=60647]]
#ref(jump_stage_v3.png)

Algoboxについて詳しくは[[Algoboxについての説明&gt;http://www.algodoo.com/wiki/Algobox/ja]]をご覧ください。

*ルール
-スタートラインの左から始める
-ジャンプして黒い地面に最初に接触したところが成績
-踏切台(黄色)は削除してもかまわない

*部門
本コンテストのメインルールに、ルールを追加したものを「部門」と呼ぶことにします。

**障害物皐月賞規定+バネエンジン部門
***追加ルール

**モーターグライダー部門
***追加ルール

*エントリー方法
+シーンデータをダウンロードして、機体を加えたシーンを作成する
+作成したシーンデータをアップロードするか、[[ニコニコ動画&gt;http://www.nicovideo.jp/search/Phunコン]]へ動画を投稿する(両方しても構いません)
+以下のフォームに記入する

※ シーンデータの投稿は、[[Algobox&gt;http://www.algodoo.com/wiki/Algobox/ja]]の利用を推奨します。[[如月杯2012 ステージ&gt;http://www.algodoo.com/algobox/details.php?id=60647]]へのシーンレスポンスとして投稿することで、シーンにリンクされます。
※ ニコニコ動画へ投稿する際は、「Phunコン如月杯2012」のタグをつけてください。

*エントリー作品
|番号|HN|マシン名|コメント|記録|車体|動画|部門|備考|
|1|MuskMan|二月兎|いろいろ目論見外…|146.2m||なし|ばねエンジン|記録は五回連続試行の平均|

// 2012.02.04 コンテスト主催者ではありませんが、勝手ながら記事を編集しました。Tatt    </description>
    <dc:date>2012-02-17T22:44:43+09:00</dc:date>
  </item>
  </rdf:RDF>

