diff --git a/trunk/LipSync/LipSync.sln b/trunk/LipSync/LipSync.sln
index 136543e..77b5f5a 100644
--- a/trunk/LipSync/LipSync.sln
+++ b/trunk/LipSync/LipSync.sln
@@ -2,6 +2,9 @@
 Microsoft Visual Studio Solution File, Format Version 10.00
 # Visual C# Express 2008
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LipSync", "LipSync\LipSync.csproj", "{15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}"
+	ProjectSection(ProjectDependencies) = postProject
+		{604390C3-BA02-4583-8C41-7B3B14437D6F} = {604390C3-BA02-4583-8C41-7B3B14437D6F}
+	EndProjectSection
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPlugin", "IPlugin\IPlugin.csproj", "{FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}"
 EndProject
@@ -25,6 +28,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bocoree", "..\bocoree\bocor
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.Swf", "..\Boare.Lib.Swf\Boare.Lib.Swf.csproj", "{D861973B-3BC6-4F52-83BE-49A8C269C09F}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OverlayImpeller", "OverlayImpeller\OverlayImpeller.csproj", "{604390C3-BA02-4583-8C41-7B3B14437D6F}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -79,6 +84,10 @@ Global
 		{D861973B-3BC6-4F52-83BE-49A8C269C09F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D861973B-3BC6-4F52-83BE-49A8C269C09F}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D861973B-3BC6-4F52-83BE-49A8C269C09F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{604390C3-BA02-4583-8C41-7B3B14437D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{604390C3-BA02-4583-8C41-7B3B14437D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{604390C3-BA02-4583-8C41-7B3B14437D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{604390C3-BA02-4583-8C41-7B3B14437D6F}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/trunk/LipSync/LipSync/LipSync.csproj b/trunk/LipSync/LipSync/LipSync.csproj
index 32196c8..75e92ce 100644
--- a/trunk/LipSync/LipSync/LipSync.csproj
+++ b/trunk/LipSync/LipSync/LipSync.csproj
@@ -434,6 +434,10 @@
       {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}
       NicoComment
     
+    
+      {604390C3-BA02-4583-8C41-7B3B14437D6F}
+      OverlayImpeller
+    
     
       {E5F9AD85-0C02-4286-AC4C-F5B34EA10650}
       VFlip
diff --git a/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs b/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs
new file mode 100644
index 0000000..2cce77d
--- /dev/null
+++ b/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs
@@ -0,0 +1,84 @@
+using System;
+using Plugin;
+using System.Drawing;
+using System.Windows.Forms;
+
+public class OverlayImpeller : IPlugin {
+    private string m_config;
+
+    /// 
+    /// フレームに加工を施す関数
+    /// 
+    /// 加工の対象
+    /// ビデオの先頭からの時刻(秒)
+    /// エントリの開始時刻
+    /// エントリの終了時刻
+    /// エントリの設定値
+    public void Apply( ref Bitmap frame, float time, float e_begin, float e_end, ref string e_body ) {
+        double rpm = 11.5821;
+        int centerx = 135;
+        int centery = 135;
+        int impeller_diameter = 153;
+        int impeller_height_half = 12;
+        double theta0 = 0.0;
+
+        double omega = 2.0 * Math.PI / (60.0 / rpm);
+        double theta = theta0 + time * omega;
+        int current_width = Math.Abs( (int)(impeller_diameter * Math.Cos( theta ) / 2.0) );
+        using ( Graphics g = Graphics.FromImage( frame ) ) {
+            g.DrawRectangle( new Pen( Color.Black, 2 ), new Rectangle( centerx - current_width, centery - impeller_height_half, current_width * 2, impeller_height_half * 2 ) );
+        }
+    }
+
+    public void ApplyLanguage( string lang ) {
+    }
+
+    /// 
+    /// プラグインの名称
+    /// 
+    public string Name {
+        get {
+            return "OverlayImpeller";
+        }
+    }
+
+    /// 
+    /// プラグインの簡潔な説明文。
+    /// 
+    public string Abstract {
+        get {
+            return "OverlayImpeller";
+        }
+    }
+
+    /// 
+    /// プラグイン用の設定値を格納した文字列を指定します。
+    /// 
+    /// 
+    public string Config {
+        get {
+            return m_config;
+        }
+        set {
+            m_config = value;
+        }
+    }
+
+    public DialogResult BaseSetting() {
+        return DialogResult.Cancel;
+    }
+
+    public DialogResult EntrySetting( ref string entry_setting ) {
+        return DialogResult.Cancel;
+    }
+
+    public void Render( Graphics g, Size size, float time, string mouth, string Reserved ) {
+    }
+
+    public ulong Type {
+        get {
+            return Constants.LS_NO_EVENT_HANDLER | Constants.LS_ENABLES_ENTRY_SETTING;
+        }
+    }
+}
+
diff --git a/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj b/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj
new file mode 100644
index 0000000..64835d9
--- /dev/null
+++ b/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj
@@ -0,0 +1,56 @@
+
+
+  
+    Debug
+    AnyCPU
+    9.0.21022
+    2.0
+    {604390C3-BA02-4583-8C41-7B3B14437D6F}
+    Library
+    Properties
+    OverlayImpeller
+    OverlayImpeller
+    v2.0
+    512
+    
+    
+  
+  
+    true
+    full
+    false
+    bin\Debug\
+    DEBUG;TRACE
+    prompt
+    4
+  
+  
+    pdbonly
+    true
+    bin\Release\
+    TRACE
+    prompt
+    4
+  
+  
+  
+  
+    
+      {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}
+      IPlugin
+    
+  
+  
+    
+  
+  
+    
+    
+  
+
\ No newline at end of file