From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

2.65.10 DNA_Tree AnimData

This is the AnimData struct and sub structs.

Not all the ListBase structs are documented, feel free to make an updated version, dont edit original.

ListBase struct are found by checking code, what allocated structs are passed to the id's, usually via BLI_addtail.

  1. AnimData->bAction->markers
/*
 * ***** BEGIN GPL LICENSE BLOCK *****
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 * The Original Code is Copyright (C) 2009 Blender Foundation
 * All rights reserved.
 *
 * The Original Code is: all of this file.
 *
 * ***** END GPL LICENSE BLOCK *****
 */
 
// AnimData
// source/blender/makesdna/DNA_anim_types.h
----------------------------------------------------------------
struct AnimData				// DATA			ACCESS			COMMENT
	bAction *action;		// bAction*		action			/* active action - acts as the 'tweaking track' for the NLA */
											/* temp-storage for the 'real' active action (i.e. the one used before the tweaking-action */
		 									/* took over to be edited in the Animation Editors) */
	bAction *tmpact;		// bAction*		tmpact
	AnimMapper  *remap;		// AnimMapper*		remap			/* remapping-info for active action - should only be used if needed (for 'foreign' actions that aren't working correctly) */
 
	ListBase nla_tracks;		// NlaTrack		nla_tracks		/* nla-tracks */
	NlaStrip *actstrip;		// NlaStrip*		actstrip		/* active NLA-strip (only set/used during tweaking, so no need to worry about dangling pointers) */
	ListBase drivers;		// FCurve		drivers			/* 'drivers' for this ID-block's settings - FCurves, but are completely separate from those for animation data */
											/* standard user-created Drivers/Expressions (used as part of a rig) */
	ListBase overrides;		// AnimOverride		overrides		/* temp storage (AnimOverride) of values for settings that are animated (but the value hasn't been keyframed) */
	int flag;			// int			flag			/* settings for animation evaluation */ /* user-defined settings */
	int recalc;			// int			recalc			/* depsgraph recalculation flags */
	short act_blendmode;		// short		act_blendmode		/* settings for active action evaluation (based on NLA strip settings) */ /* accumulation mode for active action */
	short act_extendmode;		// short		act_extendmode		/* extrapolation mode for active action */
	float act_influence;		// float		act_influence		/* influence for active action */
----------------------------------------------------------------
 
// bAction
// source/blender/makesdna/DNA_action_types.h
----------------------------------------------------------------
struct bAction				// DATA			ACCESS			COMMENT
	ID id;              		// ID			id			/* ID-serialisation for relinking */
	ListBase curves;    		// FCurve		curves			/* function-curves (FCurve) */
	ListBase chanbase;  		// bActionChannel	chanbase		/* legacy data - Action Channels (bActionChannel) in pre-2.5 animation system */
	ListBase groups;    		// bActionGroup		groups			/* groups of function-curves (bActionGroup) */
	ListBase markers;   		// 			markers			/* markers local to the Action (used to provide Pose-Libraries) */
	int flag;           		// int			flag			/* settings for this action */
	int active_marker;  		// int			active_marker		/* index of the active marker */
	int idroot;         		// int			idroot			/* type of ID-blocks that action can be assigned to (if 0, will be set to whatever ID first evaluates it) */
	int pad;			// int			pad 
----------------------------------------------------------------
 
// AnimMapper
// source/blender/makesdna/DNA_anim_types.h
----------------------------------------------------------------
AnimMapper					// DATA			ACCESS		COMMENT
	struct AnimMapper *next, *prev;		// AnimMapper*		next, prev
	bAction *target;			// bAction*		target		/* target action */
	ListBase mappings;			// bAnimMapPair		mappings	/* remapping table (bAnimMapPair) */
----------------------------------------------------------------
 
// NlaTrack
// source/blender/makesdna/DNA_anim_types.h
----------------------------------------------------------------
struct NlaTrack					// DATA			ACCESS		COMMENT
	struct NlaTrack *next, *prev;		// NlaTrack*		next, prev
	ListBase strips;			// bActionStrips	strips		/* bActionStrips in this track */
	int flag;				// int			flag		/* settings for this track */
	int index;				// int			index		/* index of the track in the stack (NOTE: not really useful, but we need a pad var anyways!) */
	char name[64];				// char			name		/* short user-description of this track */
----------------------------------------------------------------
 
// NlaStrip
// source/blender/makesdna/DNA_anim_types.h
----------------------------------------------------------------
struct NlaStrip					// DATA				ACCESS			COMMENT
	struct NlaStrip *next, *prev;		// NlaStrip*			next, prev
	ListBase strips;            		// (NlaStrip,bActionStrips)	strips			/* 'Child' strips (used for 'meta' strips) */
	bAction *act;               		// bAction*			act			/* Action that is referenced by this strip (strip is 'user' of the action) */
	AnimMapper *remap;          		// AnimMapper*			remap			/* Remapping info this strip (for tweaking correspondence of action with context) */
	ListBase fcurves;        		// FCurve			fcurves			/* F-Curves for controlling this strip's influence and timing */    // TODO: move out?
	ListBase modifiers;        		// FModifier			modifiers		/* F-Curve modifiers to be applied to the entire strip's referenced F-Curves */
	char name[64];              		// char				name			/* User-Visible Identifier for Strip */
	float influence;            		// float			influence		/* Influence of strip */
	float strip_time;          		// float			strip_time		/* Current 'time' within action being used (automatically evaluated, but can be overridden) */
	float start, end;          		// float			start, end		/* extents of the strip */
	float actstart, actend;     		// float			actstart, actend	/* range of the action to use */
	float repeat;               		// float			repeat			/* The number of times to repeat the action range (only when no F-Curves) */
	float scale;                		// float			scale			/* The amount the action range is scaled by (only when no F-Curves) */
	float blendin, blendout;    		// float			blendin, blendout	/* strip blending length (only used when there are no F-Curves) */
	short blendmode;            		// short			blendmode		/* strip blending mode (layer-based mixing) */
	short extendmode;           		// short			extendmode		/* strip extrapolation mode (time-based mixing) */
	short pad1;				// short			pad1
	short type;                 		// short			type			/* type of NLA strip */
	void *speaker_handle;       		// void*			speaker_handle		/* handle for speaker objects */
	int flag;                   		// int				flag			/* settings */
	int pad2;				// int				pad2
----------------------------------------------------------------
 
// FCurve
// source/blender/makesdna/DNA_anim_types.h
----------------------------------------------------------------
struct FCurve					// DATA			ACCESS		COMMENT
	struct FCurve *next, *prev;		// FCurve*		next, prev
											/* group */
	bActionGroup *grp;			// bActionGroup*	grp			/* group that F-Curve belongs to */
 
											/* driver settings */
	ChannelDriver *driver;			// ChannelDriver*	driver			/* only valid for drivers (i.e. stored in AnimData not Actions) */
											/* evaluation settings */
	ListBase modifiers;			// FModifier		modifiers		/* FCurve Modifiers */
 
						 					/* motion data */
	BezTriple *bezt;			// BezTriple*		bezt			/* user-editable keyframes (array) */
	FPoint *fpt;				// FPoint*		fpt			/* 'baked/imported' motion samples (array) */
	unsigned int totvert;			// unsigned int		totvert			/* total number of points which define the curve (i.e. size of arrays in FPoints) */
 
											/* value cache + settings */
	float curval;				// float		curval			/* value stored from last time curve was evaluated */
	short flag;				// short		flag			/* user-editable settings for this curve */
	short extend;				// short		extend			/* value-extending mode for this curve (does not cover  */
 
											/* RNA - data link */
	int array_index;			// int			array_index		/* if applicable, the index of the RNA-array item to get */
	char *rna_path;				// char*		rna_path		/* RNA-path to resolve data-access */
 
											/* curve coloring (for editor) */
	int color_mode;				// int			color_mode		/* coloring method to use (eFCurve_Coloring) */
	float color[3];				// float		color			/* the last-color this curve took */
----------------------------------------------------------------
 
// AnimOverride
// source/blender/makesdna/DNA_anim_types.h
----------------------------------------------------------------
struct AnimOverride				// DATA			ACCESS		COMMENT
	struct AnimOverride *next, *prev;	// AnimOverride*	next, prev
	char *rna_path;				// char*		rna_path	/* RNA-path to use to resolve data-access */
	int array_index;			// int			array_index	/* if applicable, the index of the RNA-array item to get */
	float value;				// float		value		/* value to override setting with */
----------------------------------------------------------------

File structs.

----------------------------------------------------------------
source/blender/makesdna/DNA_anim_types.h
	FModifier
	FMod_Generator
	FMod_FunctionGenerator
	FCM_EnvelopeData
	FMod_Envelope
	FMod_Cycles
	FMod_Python
	FMod_Limits
	FMod_Noise
	FMod_Stepped
	DriverTarget
	DriverVar
	ChannelDriver
	FPoint
	FCurve
	AnimMapPair
	AnimMapper
	NlaStrip
	NlaTrack
	KS_Path
	KeyingSet
	AnimOverride
	AnimData
	IdAdtTemplate
 
source/blender/makesdna/DNA_action_types.h
	bMotionPathVert
	bMotionPath
	bAnimVizSettings
	bPoseChannel
	bPose
	bIKParam
	bItasc
	bActionGroup
	bAction
	bDopeSheet
	SpaceAction
	bActionChannel
----------------------------------------------------------------